Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   ClockUtils.pas (https://www.delphipraxis.net/31972-clockutils-pas.html)

Dax 16. Okt 2004 14:29


ClockUtils.pas
 
Liste der Anhänge anzeigen (Anzahl: 1)
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. MSDN-Library durchsuchenWndProc 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]

Luckie 16. Okt 2004 14:35

Re: ClockUtils.dll
 
Eine Demo hat man doch automatisch, wenn man die DLL schreibt. :gruebel:

DP-Maintenance 30. Okt 2004 16:05

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Freeware" nach "Open-Source" verschoben.
Auf Wunsch von Dax verschoben.

sailxia 13. Jun 2006 02:59

Re: ClockUtils.pas
 
can anyone show a DEMO with this unit ?

Daniel G 13. Jun 2006 13:29

Re: ClockUtils.pas
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

that's really a quick'n'dirty Demo, but it works.

sailxia 14. Jun 2006 01:07

Re: ClockUtils.pas
 
Zitat:

Zitat von Daniel G
Hi,

that's really a quick'n'dirty Demo, but it works.

Thank you very much!

Sascha L 14. Jun 2006 06:44

Re: ClockUtils.pas
 
Hab mir jetzt nur die Prozedur-Parameter angesehen und ich würde die Typen ändern!

Es ist doch umständlich, wenn ich z.B.

Delphi-Quellcode:
procedure DrawClockText(PChar('TEST')):
aufrufen muss.

Besser wäre, wenn man dort direkt einen String angeben kann, und du dann in der Prozedur selbst die Umwandlung vornimmst.

Daniel G 14. Jun 2006 16:53

Re: ClockUtils.pas
 
Zitat:

Zitat von Sascha L
Besser wäre, wenn man dort direkt einen String angeben kann, und du dann in der Prozedur selbst die Umwandlung vornimmst.

Kann man doch, siehe Demo. Zumindestens der Typ "TCaption" klappt ohne weiteres... :gruebel:

Tueti 4. Jul 2006 02:01

Re: ClockUtils.pas
 
Ich finde die Unit klasse, aber mich würde interessieren ob es irgendwie möglich ist, die Größe des Anzeigefensters der TrayUhr zu ändern. So dass man Beispeilsweise Strings mit 50 Zeichen anzeigen kann. Es ist etwas übertrieben, es soll aber verdeulichen was ich meine.
Danke schon mal im vorraus.

Cyberbob 4. Jul 2006 02:27

Re: ClockUtils.pas
 
Wenn ich einen Text in den TNA geschrieben habe und will dann einen neuen Text schreiben, wird der alte Text nicht gelöscht, sodass beide Texte nun übereinander sichtbar sind.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz