![]() |
Timereigenschaften in selbsterstellter procedure ändern
Ich glaube, dass leichteste wäre, das ganze einfach mit Quellcode zu erklären und deshalb werd ich das jetzt auch so machen :coder: :
Delphi-Quellcode:
Es geht um Procedure right, welche später so aussieht: :nerd:
TKuken = class(TImageSprite)
Public Constructor Create(aparent:Tsprite);override; Procedure right; end;
Delphi-Quellcode:
Wenn ich das nun starten will, dann kommt die Fehlermeldung und die Zeile wird rot makiert :cry: :
procedure TKuken.right;
begin Timer1.enabled:=true; end; [Fehler] Unit1.pas(170): Undefinierter Bezeichner: 'Timer1' Habe auch schon probiert, einfach Procedure right(Sender: TObject) bei TKuken zu schreiben, hat aber trotzdem nicht geklappt. Wie kann ich also den Timer in eine selbsgeschriebene procedur einbinden?? :?: PS: Habe es auch schon das versucht:
Delphi-Quellcode:
Aber dann kommt folgende Nachricht:
procedure TKuken.right;
var Timer1:TTimer; begin Timer1.enabled:=true; end; [Warnung] Unit1.pas(172): Variable 'Timer1' wurde wahrscheinlich nicht Initialisiert |
Re: Timereigenschaften in selbsterstellter procedure ändern
du hast ja timer1 auch nicht definiert
Delphi-Quellcode:
und im constructor dann noch
TKuken = class(TImageSprite)
private Timer1: TTimer; Public Constructor Create(aparent:Tsprite);override; Procedure right; end;
Delphi-Quellcode:
und im Destructor dann
Timer1 := TTimer.Create;
[...]
Delphi-Quellcode:
Timer1.Free;
|
Re: Timereigenschaften in selbsterstellter procedure ändern
Probier's mal mit Form1.timer1.enabled aus.
Aber: Sowas ist nicht gerade schön. Um nicht zu sagen ziemlich hässlich. Falls du jemals wieder diese Procedure benutzen willst (oder jemandem geben willst) wirst du sie (fast) nie benutzen können, da du dann immer eine Komponente mit diesem Namen auf einem Formular mit diesem Namen bräuchtest. Also übergib der Procedure lieber einen Timer, dessen Namen du dann immer wenn du diese Procedure nutzt, ändern kannst, also sowas:
Delphi-Quellcode:
// ungeteste, sollte aber funzen
TKuken = class(TImageSprite)
Public Constructor Create(aparent:Tsprite);override; Procedure right(timer: Ttimer); end; |
Re: Timereigenschaften in selbsterstellter procedure ändern
Danke, die Antworten sind ja ziemlich schnell gekommen.
Hab zurest herumprobiert beim ertsen Vorschlag herumprobiert, aber irgendwie hats nie so richtig geklappt. Zum Starten ist es meistens, wenn ich was verändert habe, gegangen, aber irgendeine Fehlermeldung kam immer. Dann hab ich einfach die 2 Lösung mit Form1.Timer1.... versucht und es ging. An das habe ich gar nicht gedacht, aber wie heisst es so schon. Die einfachste Lösung ist immer die Beste!! |
Re: Timereigenschaften in selbsterstellter procedure ändern
Das mit Form1.Timer1. ist sicher nicht die Beste Lösung aus den o.g. Gründen. Übergib lieber den gewünschten Timer als Parameter und bearbeite ihn dann.
Delphi-Quellcode:
TKuken = class(TImageSprite)
Public Constructor Create(aparent:Tsprite); override; Procedure right(timer: Ttimer); end; . . procedure TKuken.rigth(timer: Ttimer); begin timer.enabled:=true; end; . . //aufrufen: VarTKuken.right(Form1.Timer1); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 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