![]() |
Laufschrift auf dem Desktop
Hallo Gemeinde!
Ich möchte ein Programm realisieren, bei welchem eine Laufschrift (nach möglichkeit Transparent) über der Taskleiste von rechts nach links verläuft - Als Beispiel fällt mir da die Laufschrift von NTV ein ;-). Meine Suchen im Internet haben mir für dergleichen Situation nicht wirklich viele verwehrtbare Information erbracht, sodass ich mich hoffnungsvoll an euch wende. Meine Suche geht über vorschläge und evtl. Beispiele. Also, wer diese liefer kann, ist sich meines Dankes sicher! :thumb: |
Re: Laufschrift auf dem Desktop
Mit
Delphi-Quellcode:
Bekommst du ein HDC (Handle auf Device Context) des Desktops. Das ist zwar unsauber, aber damit geht sowas.
GetDC(Getdesktopweindow())
Besser isses, wenn du ein neues Fenster erstellst, dass in der Taskleiste drinsitzt. (= SetParent() ) |
Re: Laufschrift auf dem Desktop
Hier der Code zur Laufschrift:
![]() ![]() musst du halt nur noch auf deinen Code anpassen. Für Die Taskleiste könntest du nen Deskband nehmen. Sonst kannst du mit folgendem Code auch direkt auf dem Desktop schreiben:
Delphi-Quellcode:
EDIT: Der Code ist aber nicht gerade der feinste es kann da ab und zu zu anzeigefehlern kommen!
procedure TForm1.Button1Click(Sender: TObject);
var DCanvas: TCanvas; DHandle: HWND; begin DHandle:=GetDC(0); if DHandle<>0 then begin try DCanvas:=TCanvas.Create; try DCanvas.Handle:=DHandle; DCanvas.Font.Color:=clRed; DCanvas.Font.Size:=24; DCanvas.Brush.Style:=bsClear; DCanvas.TextOut(100, 100, 'Ich will ein Spiel spielen!!!'); finally DCanvas.Free; end; finally if ReleaseDc(0, DHandle)<>1 then end; end; end; |
Re: Laufschrift auf dem Desktop
Zitat:
Was bedeutet "unsauber"? Ich gehe richtig davon aus, das ich dann mit hilfe eines Canvas zeichnen kann? Vielen Dank BullsEye für die schnelle Antwort und hilfreichen Links! |
Re: Laufschrift auf dem Desktop
Zitat:
|
Re: Laufschrift auf dem Desktop
Zitat:
Hiermit kannst du die Taskbarposition ermitteln. Nunja, das mit dem "dadrüber" ist sone Sache. Ich z.B. habe meine oben sprich da passt nichts drüber. Also ne kleine Abfrage basteln wo du guckst ob die oben oder unten sitzt und du passt da dann halt deine Position dran an ;)
Delphi-Quellcode:
Zum Thema unsauber: Gut, ist nun nicht transparent, aber das solltest du denke ich auch einfach hinbekommen. Aber optisch sieht das ab und zu nicht sehr fein aus. Und manchmal verzerrt die Schrift wenn nen Fenster dahinter ist.
var
H: HWnd; Rect: TRect; begin H:= FindWindow('Shell_TrayWnd', nil); if H<>0 then begin GetWindowRect(H, Rect); Label1.Caption:= 'Left: ' + IntToStr(Rect.Left); Label2.Caption:= 'Right: ' + IntToStr(Rect.Right); Label3.Caption:= 'Top: ' + IntToStr(Rect.Top); Label4.Caption:= 'Bottom: ' + IntToStr(Rect.Bottom); end; Vllt mal mit "Doublebuffered" arbeiten ;) |
Re: Laufschrift auf dem Desktop
Da kann man doch eine eigene Symbolleiste definieren. So wie die Schnellstartleiste, oder den Desktop Manager etc. Dann bekommt diese Leiste ihren vom Benutzer oder Dir definierbaren Platz und gut ist. Das nur als Anregung, denn wie man das macht...weiss ich leider nicht :D
Sherlock |
Re: Laufschrift auf dem Desktop
Zitat:
Ich bin mir gerade nicht sicher aber vllt geht das auch mit dem ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz