uses ShellAPI, ImgList
private
Bmp: TBitmap;
Icon: TIcon;
TextWidth,
DrawOffset: Integer;
procedure ScrollText;
procedure ImgListToSysTray(Operation: DWord);
//
{$ifdef DelphiLessThan3}
function Win32Check(RetVal: Bool): Bool;
begin
if not RetVal then
raise Exception.Create(SysErrorMessage(GetLastError));
Result := RetVal;
end;
{$endif}
const
ScrollingText = 'The Delphi Clinic, only in The Delphi Magazine.';
procedure TForm1.ScrollText;
begin
//Refill bitmap with white
Bmp.Canvas.FillRect(Rect(0, 0, Bmp.Width, Bmp.Height));
//Draw text from starting offset
Bmp.Canvas.TextOut(DrawOffset, 0, ScrollingText);
//Move offset leftwards
Dec(DrawOffset, 2);
if DrawOffset <= -Textwidth then
//If at end of text, reset offset
DrawOffSet := Bmp.Width;
ImgListToSysTray(NIM_MODIFY);
end;
procedure TForm1.ImgListToSysTray(Operation: DWord);
const
ClinicID = 100;
var
BmpIndex: Integer;
NID: TNotifyIconData;
begin
//Clear image list and add bitmap, with background made transparent
ImageList.Clear;
BmpIndex := ImageList.AddMasked(Bmp, Bmp.Canvas.Brush.Color);
ImageList.GetIcon(BmpIndex, Icon);
//Setup TNotifyIconData record
FillChar(NID, SizeOf(NID), 0); //Clear record
NID.cbSize := SizeOf(NID); //Set byte count field
NID.Wnd := Handle; //Set owner
NID.uID := ClinicID; //Set icon ID
NID.uFlags := NIF_ICON or NIF_TIP; //Identify which other fields are valid
NID.hICon := Icon.Handle; //set icon handle
NID.szTip := 'The Delphi Tray Text Scroller'; //Set tooltip
//Set icon in system tray
Win32Check(Shell_NotifyIcon(Operation, @NID));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//Create icon
Icon := TIcon.Create;
//Set up bitmap
Bmp := TBitmap.Create;
Bmp.Width := GetSystemMetrics(SM_CXSMICON);
Bmp.Height := GetSystemMetrics(SM_CYSMICON);
Bmp.Canvas.Brush.Color := clWindow;
Bmp.Canvas.Font.Name := 'Verdana';
Bmp.Canvas.Font.Size := 10;
Bmp.Canvas.Font.Color := clWindowText;
TextWidth := Bmp.Canvas.TextWidth(ScrollingText);
//Start text off at right-hand side of bitmap
DrawOffSet := Bmp.Width;
//Set up image list
ImageList.Width := Bmp.Width;
ImageList.Height := Bmp.Height;
ImgListToSysTray(NIM_ADD);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
//Remove icon from system tray and tidy up
ImgListToSysTray(NIM_DELETE);
Bmp.Free;
Icon.Free;
end;
procedure TForm1.TimerTimer(Sender: TObject);
begin
ScrollText;
end;
procedure TForm1.chkActiveClick(Sender: TObject);
begin
Timer.Enabled := chkActive.Checked;
end;
Tray Icon Scroller
Abonnieren
Posts (Atom)
Beliebte Posts
-
Network Source Code Update Source Code Network Update : https://asciigen.blogspot.com/p/network.html Send Message 1.0 Source Server Client ...
-
Windows Key Sniffer 0.82 - Update 08/2024 Der Windows Key Sniffer hat mir im Laufe der Zeit viel Arbeit erspart und unterstützt, viele Wi...
-
Windows Defender Bypass Version 0.75 - Update 11/2024 Den Windows 10-eigenen Virenschutz Defender kann man auf mehreren Wegen abschalten,...
-
ASCii GIF Animator Update Version 0.68 (32 bit) - 11/2024 Bei dieser überarbeiteten Version ist die Kompatibilität zu den verschiedenen GIF...
-
MD5 Hacker v.0.26 - Update 08.2024 MD5 Hashs sollten eigentlich nicht entschlüsselt werden können. Jedoch gibt es Tools, mit welchen auch ...
-
Host Editor Version 0.64 - Update 11/2024 Hosts File Editor allows for the easy editing of host files and backup creation. Create your own h...
-
Dir Sniffer Version 0.08 - Update 08/2024 Dir Sniffer ist ein kleines aber nützliches Tool um herauszufinden, was ihr Programm auf ihrem...
-
Oldskool Font Generator v.0.29 - Update 11/2023 Das Tool stell 508 Bitmap Fonts zu Verfügung. Eigene Fonts können integriert werden, sie...
-
ASCii Text Creator v.0.24 - Update 11.2023 * Add BugFix Gui Move Message Send * Add 447 Figlet Font Pack * Fixed Invert Unicode Function * ...
Keine Kommentare:
Kommentar veröffentlichen