![]() |
Globale Funktion Zugriff auf Timer in Class
Hi,
hab hier nun eine kleine (warscheinlich) einfach Frage eines Beginners: Ich habe einen Timer:
Delphi-Quellcode:
dieser is hier definiert:
procedure TfrmMain.DelayTimer(Sender: TObject);
begin Delay.Enabled := False; end;
Delphi-Quellcode:
nun habe ich eine globale Funktion:
TfrmMain = class(TForm)
DelayShortcut2: TTimer; published procedure DelayShortcut2Timer(Sender: TObject); end
Delphi-Quellcode:
In dieser Funktion will ich nun den Enable + Interval setzen. Aber natürlich kennt er DelayShortcut2 in der Funktion nicht.
function DoMyThing(var i:Integer):Boolean;
begin end; 1. Ansatz war die DoMyThing Funktion auch in die TfrmMain Class zu bringen. Dann habe ich aber das Problem, dass ich noch eine andere Class habe die auch die DoMyThing Funktion aufrufen soll. Dies geht dann aber auch nicht mehr. Komm nicht weiter... |
Re: Globale Funktion Zugriff auf Timer in Class
Erweitere die freie Funktion durch einen Parameter für die Form.
Aber geanu verstehe ich dein Problem nicht. |
Re: Globale Funktion Zugriff auf Timer in Class
entweder du machst deine Funktion zu einer Funktion deiner Klasse, oder du greifst in der Funktion über dem Klassenvariable auf den Timer direkt zu
Delphi-Quellcode:
oder du übergibst als weiteren Parameter der Funktion den Timer.
TfrmMain.DelayShortcut2.Enabled := False;
....
Delphi-Quellcode:
Ich würde grundsätzlich prüfen, ob die Funktion unbedingt global sein muss. Wenn ja, würde ich die 3. Variante bevorzugen. Wenn nein, die erste. Zweite ist nicht sehr elegant und imho eher schlechter Code.
function DoMyThing(var i:Integer; ATimer : TTimer):Boolean;
begin ATimer.Enabled := True; ... end; Gruß oki |
Re: Globale Funktion Zugriff auf Timer in Class
In deiner zweiten Lösung müsstest du auf die Instanz zugreifen:
Delphi-Quellcode:
frmMain.DelayShortcur2.Enabled := False;
|
Re: Globale Funktion Zugriff auf Timer in Class
Ups, sorry, Copy&Waste :oops:
so wars auch gemeint.
Delphi-Quellcode:
Dank für die Berichtigung.
frmMain.DelayShortcur2.Enabled := False;
Gruß oki |
Re: Globale Funktion Zugriff auf Timer in Class
Danke für die super schnelle Hilfe!!
Manchmal bleib ich einfach bei den einfachsten Dingen hängen... :spin2: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 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