AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Eigene Event-Handler für Objekte zur Laufzeit
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene Event-Handler für Objekte zur Laufzeit

Ein Thema von odin1337 · begonnen am 27. Jul 2005 · letzter Beitrag vom 27. Jul 2005
Antwort Antwort
odin1337

Registriert seit: 16. Apr 2005
1 Beiträge
 
#1

Eigene Event-Handler für Objekte zur Laufzeit

  Alt 27. Jul 2005, 00:00
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;
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Eigene Event-Handler für Objekte zur Laufzeit

  Alt 27. Jul 2005, 07:26
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
  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 04:19 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