![]() |
Eigene Event-Handler für Objekte zur Laufzeit
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; |
Re: Eigene Event-Handler für Objekte zur Laufzeit
Hallo odin,
herzlich willkomen in der Delphi-PRAXiS. um einer Form einen onClick() event handler zuweisen zu können, musst du einen Methodenzeiger übergeben, nicht irgendeine procedure. Am besten ist es, wenn du ein von TForm abgeleitetes Formular TMyForm entwirfst und dort den event-handler im private Abschnitt deklarierst. Im OnCreate() kannst du dann den handler der Eigenschaft OnClick zuweisen. Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:12 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 by Thomas Breitkreuz