AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte ClockUtils.pas
Thema durchsuchen
Ansicht
Themen-Optionen

ClockUtils.pas

Ein Thema von Dax · begonnen am 16. Okt 2004 · letzter Beitrag vom 4. Jul 2006
Antwort Antwort
Dax
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]
Angehängte Dateien
Dateityp: pas clockutils_464.pas (8,6 KB, 79x aufgerufen)
 
Benutzerbild von Luckie
Luckie

 
Delphi 2006 Professional
 
#2
  Alt 16. Okt 2004, 14:35
Eine Demo hat man doch automatisch, wenn man die DLL schreibt.
Michael
  Mit Zitat antworten Zitat
30. Okt 2004, 16:05
Dieses Thema wurde von "Sharky" von "Freeware" nach "Open-Source" verschoben.
Auf Wunsch von Dax verschoben.
sailxia
 
#4
  Alt 13. Jun 2006, 02:59
can anyone show a DEMO with this unit
  Mit Zitat antworten Zitat
Daniel G
 
#5
  Alt 13. Jun 2006, 13:29
Hi,

that's really a quick'n'dirty Demo, but it works.
Angehängte Dateien
Dateityp: zip tnaclockdemo_161.zip (205,1 KB, 62x aufgerufen)
  Mit Zitat antworten Zitat
sailxia
 
#6
  Alt 14. Jun 2006, 01:07
Zitat von Daniel G:
Hi,

that's really a quick'n'dirty Demo, but it works.
Thank you very much!
  Mit Zitat antworten Zitat
Sascha L

 
Delphi 2006 Professional
 
#7
  Alt 14. Jun 2006, 06:44
Hab mir jetzt nur die Prozedur-Parameter angesehen und ich würde die Typen ändern!

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

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.
Sascha
  Mit Zitat antworten Zitat
Daniel G
 
#8
  Alt 14. Jun 2006, 16:53
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...
  Mit Zitat antworten Zitat
Tueti

 
Delphi 7 Personal
 
#9
  Alt 4. Jul 2006, 02:01
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.
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

 
Delphi XE7 Architect
 
#10
  Alt 4. Jul 2006, 02:27
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.
Christian
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 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