Ich habe hier eine
Unit, die Texte in den Bereich zeichnen kann, der normalerweise von der Windows-Uhr belegt ist, mit entsprechenden Kentnissen kann man auch t.B. über die TCanvas selbst zeichnen.
Die
Unit hat 7 Methoden:
- procedure Create(Parent: HWND): Der erste Aufruf in der Unit muss diese Prozedur sein, ansonsten sind die restlichen Funktionen wertlos. Als Parent muss das Fenster-Handle des Aufrufers übergeben werden, ansonsten wird die Uhr nach dem schließen des Programms nicht wieder auftauchen.
- procedure Destroy: Setzt alles in den Urzustand zurück: Uhr in der TNA, vorheriger gezeichneter Inhalt weg.
- procedure DrawClockText(Text: PChar): Der Inhalt von Text wird in den Uhrbereich gezeichnet, wenn es nicht in eine Zeile passt, wird umgebrochen.
- procedure ChangeFont(FontName: PChar; Bold, Italic, Underline, Strikeout: Boolean; Size: DWORD; Width: DWORD = 0): Verändert die Schriftart des Textes anhand der Übergeben Parameter. Width ist die Weite der einzelnen Zeichen, mit 0 seid ihr gut beraten.
- procedure ChangeFont(Font: HFONT): Selbe Funktion wie oben, nur muss hier ein Font-Handle übergeben werden, z.B. ein TFont.Handle.
- function GetClockDC: HDC : Gibt das Canvas-Handle des Zeichenbereiches zurück, darauf könnt ihr euch austoben. Nie zerstören!
- function GetClockHandle: HWND : Gibt das Fensterhandle des Zeichenbreiches zurück. Nie zerstören!
Es gibt auch zwei Vaiablen:
- MouseProc: TWndProc ist eine Fensterprozedur, wie sie in der Windows-API verwendet wird.
WndProc Procedure
- UpdateTime: Cardinal ist der temporäre Abstand zwischen zwei kompletten Repaints des Zeichenfeldes. Beim Verändern der Taskbar wird automatisch neu gezeichnet.
So, jetzt aber genug der Worte, schreiten wir zur Tat. Eine Demo habe ich leider noch nicht fertig, und wenn Fehler auftreten, bitte sagts mir.
[edit]Nachdem es mit der
DLL Probleme gab, wird jetzt die
Unit veröffentlicht. @MODs: Bitte nach OpenSource verschieben.

[/edit]