mit dem Problem schlage ich mich nun schon einen geschlagenen Tag rum, naja komme nicht 1 Byte weiter.
die folgende Funktion ist eigentlich immer wunderbar in der Lage Mitteilungen auf dem Bildschirm auszugeben.
Sie dient mir als Antwort auf gedrückte Tastaturkürzel, wie Lautstärke lauter, leiser und sowas.
Leider habe ich das Problem, dass um die Statusmeldung ein neues Form zur Laufzeit generiert wird und wenn ich nun in einem Spiel bin und ein Lied in Winamp weiter skippe und dann zufällig auf den Bestätigungstext klicke, fliege ich aus dem Spiel raus.
Ich würde nun gerne ein generierten Form ein OnClick erereignis zuweisen, um dann sofort wieder dem Spiel SetWindowForeground() zuzuweisen, leider ist bisher alles gescheitert, meinem TempForm ein OnClick := Bla
Ereignis zuzweisen.
Ich hoffe jemand hat eine Idee für meinen Quelltext.
Lieber Gruß odin
Delphi-Quellcode:
procedure Out2Screen(X, Y, Duration : Integer; FontName :
String; FontColor : TColor; FontSize : Byte; ShowText :
String);
var
TempTime : Cardinal;
TempForm : TForm;
begin
TempForm := TForm.Create(Form1);
with TempForm
do
begin
BorderStyle := bsNone;
Brush.Style := bsClear;
with Canvas
do
begin
Font.
Name := FontName;
Font.Color := FontColor;
Brush.Style := bsclear;
Font.Size := FontSize;
Font.Style := [fsBold];
Width := TextWidth(ShowText);
Height := TextHeight(ShowText);
Left := round(X-(Width/2));
Top := round(Y-(Height/2));
end;
Show;
SetWindowPos(
Handle,HWND_TOPMOST,0,0,0,0, SWP_NOACTIVATE
or SWP_NOMOVE
or SWP_NOSIZE);
TempTime := GetTickCount;
repeat
Canvas.TextOut(0, 0, ShowText);
until (GetTickCount-TempTime >= Duration);
Hide;
FreeAndNil(TempForm);
end;
end;