Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Variable Timer (https://www.delphipraxis.net/113928-variable-timer.html)

Matze 16. Mai 2008 22:28

Re: Variable Timer
 
Achso, wenn du die Timer dann ansprechen möchtest, müsstest du über Delphi-Referenz durchsuchenFindComponent gehen.

Nachtrag: Dein Array ist im Prinzip dann überflüssig.

Ansprechen kannst du sie so. Das setzt voraus, dass die Timer "Timer1", "Timer2", ... heißen. Sie müssen einen fortlaufenden Index besitzen.

Delphi-Quellcode:
FindComponent('Timer' + IntToStr(NR)) as TTimer).Enabled := ...

FGD 16. Mai 2008 23:05

Re: Variable Timer
 
Zitat:

Zitat von Matze
Delphi-Quellcode:
FindComponent('Timer' + IntToStr(NR)) as TTimer).Enabled := ...

Ist das so gemeint:
Delphi-Quellcode:
(FindComponent('Timer' + IntToStr(NR)) as TTimer).Enabled := false;

Fehlermeldungen des Compilers
Code:
[Fehler]: Undefinierter Bezeichner: 'FindComponent'
Code:
[Fehler]: Operator ist auf diesen Operandentyp nicht anwendbar*
*bei Markierung zwischen TTimer).Enabled

Matze 16. Mai 2008 23:10

Re: Variable Timer
 
Ja genau, ich habe die erste Klammer vergessen, sorry. FindComponent ist in der Unit Classes definiert, die Delphi automatisch einbinden sollte (sie müsste in den uses stehen).

Bei mir funktioniert der Code.

Medium 17. Mai 2008 03:48

Re: Variable Timer
 
FindComponent ist nicht wirklich einfach so in Classes deklariert, sondern der Vorfahre der Klassen, die Komponenten beinhalten können ist in Classes deklariert. In diesem Fall soll wohl Form1.FindComponent() gemeint sein, was du in einer klassenlosen Funktion auch voll qualifizieren musst. Da das aber reichlich unschön, und an der OOP vorbei ist, empfehle ich die Funktion zu einer Methode deines Formulars zu machen. Dort wird implizit "self" referenziert, und du kannst unqualifiziert FindComponent() benutzen, bzw. sollte man es dort dann auch tunlichst!

FGD 17. Mai 2008 12:13

Re: Variable Timer
 
Zitat:

Zitat von Medium
In diesem Fall soll wohl Form1.FindComponent() gemeint sein, was du in einer klassenlosen Funktion auch voll qualifizieren musst.

Das Form1 hat gefehlt.
Zitat:

Zitat von Medium
Da das aber reichlich unschön, und an der OOP vorbei ist, empfehle ich die Funktion zu einer Methode deines Formulars zu machen. Dort wird implizit "self" referenziert, und du kannst unqualifiziert FindComponent() benutzen, bzw. sollte man es dort dann auch tunlichst!

Methoden muss ich mir noch angucken.

:dp: Es ist schön wie schnell einem hier geholfen wird :thumb:

Fussball-Robby 17. Mai 2008 12:17

Re: Variable Timer
 
Zitat:

Zitat von FGD
Zitat:

Zitat von Medium
Da das aber reichlich unschön, und an der OOP vorbei ist, empfehle ich die Funktion zu einer Methode deines Formulars zu machen. Dort wird implizit "self" referenziert, und du kannst unqualifiziert FindComponent() benutzen, bzw. sollte man es dort dann auch tunlichst!

Methoden muss ich mir noch angucken.

Du musst die Prozedur im private-Abschnitt der Form deklarieren. Siehe #7.

DeddyH 17. Mai 2008 12:19

Re: Variable Timer
 
Prozedur:
Delphi-Quellcode:
procedure SayHello;
begin
  ShowMessage('Hello World');
end;
Methode:
Delphi-Quellcode:
type
  TFormWuppdi = class(TForm)
  ...
  private
    procedure SayHello;
  ...
  end;

...

procedure TFormWuppdi.SayHello;
begin
  ShowMessage('Hello World');
end;
[edit] Zu langsam, dafür ausführlicher *gg* [/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr.
Seite 2 von 2     12   

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