AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Auf dem Desktop zeichnen?

Ein Thema von Phoenix · begonnen am 30. Sep 2002 · letzter Beitrag vom 30. Sep 2002
Antwort Antwort
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#1

Auf dem Desktop zeichnen?

  Alt 30. Sep 2002, 09:19
Hi Leute,

ich weiss leider _gar nicht_, ob ich hier in dem Thread eigentlich richtig bin, aber das werdet ihr mir schon sagen.

Ich will möglichst Systemunabhängig (sprich es soll unter Win95 genauso laufen wie unter NT, 2k und XP) auf dem Desktop einen Schriftzug anzeichnen. Wenn möglich, sollte dieser Schriftzug sogar auf 'always on Top' geschaltet werden können.

Hintergrund: Es gibt bis heute keine Option, das Datum im Tray anzuzeigen, und ich möchte gerne über der Systemuhr das Datum eingeblendet haben.

Wie löse ich das am einfachsten, ohne das mir ein System um die Ohren fliegt? Ein 'unsichtbares' Fenster nur mit dem Text drauf ist auch nicht unbedingt das, was ich wollte, denn dieses Ding verschwindet automatisch, wenn man z.B. Win+D drückt (2k und XP) und das sollte eben nicht passieren.

Schonmal Danke,

Sebastian
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Auf dem Desktop zeichnen?

  Alt 30. Sep 2002, 09:27
Zitat von Phoenix:
Hintergrund: Es gibt bis heute keine Option, das Datum im Tray anzuzeigen, und ich möchte gerne über der Systemuhr das Datum eingeblendet haben.
Stimmt nicht ganz. Wenn Du die Taskleiste auf mindestens zwei Zeilen in der Höhe vergrößerst, dann erscheint rechts das Datum:

Das sollte eigentlich unter allen von Dir genannten Windows-Versionen funktionieren, kommt aber aus meiner Sicht nur bei einer entsprechend hohen Bildschirmauflösung in Frage, da man sich sonst zu sehr den verbleibenden Platz einengt.

[edit]...nun gut...Dies scheint ausschliesslich Windows XP zu funktionieren...[/edit]
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 30. Sep 2002, 09:35
Moin Daniel,

also ich kann die Taskleiste komplett aufziehen und erhalte weiterhin nur die Uhr. (W2K SP2)
Hast Du weitere Einstellungen?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#4
  Alt 30. Sep 2002, 09:36
... dann geht das tatsächlich erst ab Windows XP? Kaum zu glauben, aber wahrscheinlich wahr....
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 30. Sep 2002, 09:42
Moin Daniel,

falls es Dir eine Beruhigung ist:

Unter W2K erscheint aber ein Hint mit dem Datum, wenn man den Cursor über die Uhrzeit führt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#6
  Alt 30. Sep 2002, 10:17
@Daniel: nur (erst ab) XP wird das Datum eingeblendet - *IchAuchHabenWollen*

Die Lösung mit dem "unsichtbaren" Form dürfte die beste Variante sein. Wenn das Form minimiert wird (z.B. Win-D), dann sollest Du einfach das OnMinimize (Application oder Form ) Ereignis abfangen und eine WM_RESTORE Nachricht ein Dein Form senden.

Auf den Desktop zeichnen hat Nachteile, da beim Verschieben von Fenstern dasselbige oft nicht neu gezeichnet wird, sondern lediglich der sichtbare Bereich im wahrsten Sinne des Wortes verschoben wird. Dann hast Du am Ende Dein Datum mehrmals auf dem Bildschirm - bis die Fenster wirklich neu gezeichnet werden.

Um die Frage aber noch zu beantworten:
Code:
var
  C: TCanvas;
begin
  C := TCanvas.Create;
  C.Handle := GetDC(0);
  try
    C.DrawText(0, 0, DateTimeToString(Now));
  finally
    ReleaseDC(C.Handle, 0);
    C.Free;
  end;
end;
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#7
  Alt 30. Sep 2002, 14:34
Habs gerade gemerkt. Das mit den verschieben ist echt blöd. Zudem reicht es ein Fenster über den Text zu schieben, und weg isser

Was mich wieder zum transparenten Fenster bringt. Aber die gibts unter Win95 bis NT ja leider nicht, sondern nur unter 2k und XP. Oder gibt es eine andere Möglichkeit ein Fenster (nur den Hintergrund und die ganzen Statusleisten und Titelleiste) unsichtbar zu lassen und nur ein einziges Objekt (in unserem Falle ein TLabel) darauf sichtbar sein zu lassen? Die Steuerung liesse sich dann ja vie Kontext-Menu erledigen.

Ich mag Win, aber ab und an kann man dabei echt die Krätze kriegen
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 30. Sep 2002, 14:40
Es gibt bei Torry Komponenten, die setzen die Fensterform entsprechend einer Bitmap-Vorgabe. Das könnte Dir weiterhelfen. Text aufs Bitmap, Fensterform neu berechnen, fertig.
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#9
  Alt 30. Sep 2002, 15:27
Moin Phoenix,

wobei noch zu ergänzen wäre, dass die von Sakura angesprochenen Komponenten mit ziemlicher Sicherheit auf Regions basieren.
Das nur noch als Stichwort, unter dem Du (z.B. auch im PSDK) mal nachsehen kannst.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#10
  Alt 30. Sep 2002, 16:23
Jupp, tun sie. Ich habe sogar von Anton Grigoriev eine Komponente gefunden, die eine Region aus einem Text direkt auf das Form invertiert. Demnach besteht meine Form hinterher nur noch aus dem Text

Der Text ist dann das Datum und wird ganz einfach auf dem Desktop als Always on Top frei hin und hergeschoben werden können. Sobald das Ding fertig ist, poste ich hier mal ne URL wo's dann die Sourcen gibt.

Dürfte dann sogar ggf. eine eigene Komponente geben, so ne Art 'OnlyTextForm'. Ich geb mir selber mal 3 Tage. Mailt mich an, wenn ihr das Ding haben wollt und ich vergess es hier reinzustellen

Danke für die Tipps. War genau das was ich gesucht hab *g*
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  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 00:45 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