11.04.2016, 20:37
Dzięki komponentowi IpHtmlPanel można zrobić fajny gadżet na pulpit. Mój programik wyświetla jakieś ważne informacje/przypomnienia na pulpicie. Tak alternatywa dla żółtych karteczek... Program napisany w środowisku Lazarus. Jak komuś będzie się chciało rozwinąć ten programik to chętnie zapoznam się z kodem/propozycją. Poniżej kod, fotka i pytanie
Do prawidłowego wyświetlania treści potrzebny jest jeszcze plik html o nazwie: Przypomnienia na pulpicie.html . Tu zapisujemy notatki.
Szablon pliku:
.
Mam jedno pytanie... jak zbadać szerokość i położenie paska zadań Windows?
Kod:
unit InfoPulpit_modul1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, IpHtml, Forms,
Dialogs,ShlObj, Controls, Menus, Windows, LCLType;
type
{ TForm1 }
TForm1 = class(TForm)
IpHtmlPanel1: TIpHtmlPanel;
MenuItem1: TMenuItem;
MenuItem2: TMenuItem;
PopupMenu1: TPopupMenu;
procedure FormCreate(Sender: TObject);
procedure MenuItem1Click(Sender: TObject);
procedure MenuItem2Click(Sender: TObject);
private
{ private declarations }
protected
procedure CreateParams(var Params: TCreateParams); override;
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
// Okno programu "zawsze nieaktywne"
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle:= Params.ExStyle or WS_EX_NOACTIVATE;
end;
// Pobranie sciezki do Moich dokumentów - tutaj plik z informacjami/przypomnieniami w html
// Folder Moje dokumeny parametr = 5
function MojeDokumentySciezka(const Folder: Integer): string;
var
Path: array[0..MAX_PATH] of Char;
begin
SHGetSpecialFolderPath(0, Path, Folder , False);
Result := Path;
end;
// Ustawienie okna - pionowy pasek po prawej stronie ekranu
procedure UstawienieOknaProgramu;
begin
Form1.Left:= Screen.DesktopWidth - 300;
Form1.Top := 0;
Form1.Height:= Screen.DesktopHeight - 30;
end;
procedure PobranieNotatek;
var
SL : TStringList;
begin
SL := TStringList.Create;
try
SL.LoadFromFile(MojeDokumentySciezka(5)+'\Przypomnienia na pulpicie.html');
Form1.IpHtmlPanel1.SetHtmlFromStr(SL.Text);
finally
SL.Free;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
UstawienieOknaProgramu;
if not FileExists(MojeDokumentySciezka(5)+'\Przypomnienia na pulpicie.html') then
begin
ShowMessage('Brak pliku z informacjami lub zmieniona nazwa (lokalizacja pliku musi być w Moich dokumentach).');
Application.Terminate;
end else
begin
PobranieNotatek;
end;
end;
// Menu rozwijane prawoklikiem - EDYCJA
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
Shellexecute(0,'Open','notepad.exe',PChar(MojeDokumentySciezka(5)+'\Przypomnienia na pulpicie.html'),nil,1);
end;
// Menu rozwijane prawoklikiem - ODSWIEŻ
procedure TForm1.MenuItem2Click(Sender: TObject);
begin
PobranieNotatek;
UstawienieOknaProgramu;
end;
end.
Do prawidłowego wyświetlania treści potrzebny jest jeszcze plik html o nazwie: Przypomnienia na pulpicie.html . Tu zapisujemy notatki.
Szablon pliku:
Kod:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body style="background: #303030; color: #A6A6A6">
<div> </div>
<div></div>
<div></div>
</body>
</html>
.
Mam jedno pytanie... jak zbadać szerokość i położenie paska zadań Windows?
Post sprawdzony przez Arcabit Internet Security