OSD Erscheinungsort...
Ich habe beim suchen in der DP folgenden Code gefudnen mit dem man ein OSD erzeugen kann welches nach 2 Sekunden wieder verschwindet..
Delphi-Quellcode:
Nun zu meiner Frage wie kann ich erreichen das der Text immer Rechts Unten über der Taskbar erscheint...
procedure WriteText(TransText: string);
var MyHand: HWND; MyDc: HDC; MyCanvas: TCanvas; Start : Longint; begin MyHand := GetDesktopWindow; MyDc := GetWindowDC(MyHand); MyCanvas := TCanvas.Create; MyCanvas.Handle := MyDC; BeginPath(MyCanvas.Handle); MyCanvas.Font.Color := clred; MyCanvas.Font.Name := 'Arial'; MyCanvas.Font.Size := 15; SetBkMode(MyCanvas.Handle,TRANSPARENT); EndPath(MyCanvas.Handle); MyCanvas.TextOut(20, 20, TransText); //Hier die Positionsdaten mit X und Y, wo der Text beginnen soll Start := GetTickCount; repeat Application.ProcessMessages until (GetTickCount - Start > 2000); InvalidateRect(0, nil, true); end;
Delphi-Quellcode:
MyCanvas.TextOut(20, 20, TransText); //Hier die Positionsdaten mit X und Y, wo der Text beginnen soll
|
Re: OSD Erscheinungsort...
|
Re: OSD Erscheinungsort...
Kann ich nicht auch mit
Delphi-Quellcode:
arbeiten und dann jeweils 50 abziehen oder so?...
MyCanvas.TextOut(Screen.Width, Screen.Height, TransText);
Wie stell ich das an |
Re: OSD Erscheinungsort...
Hi.
Zitat:
Das stimmt schon, was hier steht... ;-) Wenn schon, dann so:
Delphi-Quellcode:
:coder: *klackerdiklackerdicklack* Autsch! Meine Hand! :(
var
SysTray : THandle; Rect : TRect; x, y, iTaskBar, iScreenHeight, iScreenWidth : Integer; TransText : string; MyHand: HWND; MyDc: HDC; MyCanvas: TCanvas; Start : Longint; begin TransText := 'Huhu! Ich bin ein OSD-Text!'; SysTray := FindWindow('Shell_TrayWnd', nil); if SysTray <> INVALID_HANDLE_VALUE then begin if GetWindowRect(SysTray, Rect) then iTaskbar := Rect.Bottom - Rect.Top; end; // Bildschirmmaße erhalten iScreenHeight := Screen.Height; iScreenWidth := Screen.Width; // direkt über der Uhr platzieren x := iScreenWidth - { hier die Breite des Textes einsetzen!!! }; y := (iScreenHeight - iTaskbar) - { hier die Höhe des Textes einsetzen!!! }; MyHand := GetDesktopWindow; MyDc := GetWindowDC(MyHand); MyCanvas := TCanvas.Create; MyCanvas.Handle := MyDC; BeginPath(MyCanvas.Handle); MyCanvas.Font.Color := clred; MyCanvas.Font.Name := 'Arial'; MyCanvas.Font.Size := 15; SetBkMode(MyCanvas.Handle,TRANSPARENT); EndPath(MyCanvas.Handle); MyCanvas.TextOut(x, y, TransText); // <-- Start := GetTickCount; repeat Application.ProcessMessages until (GetTickCount - Start > 2000); InvalidateRect(0, nil, true); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:55 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