Autor Beitrag
Nagelbrett
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Sa 10.05.03 15:46 
also ich hab eine Klasse, in die ich einen Timer eingebaut habe..:
ausblenden Quelltext
1:
2:
3:
4:
type TKlasse = class
  KlasseTimer: TTimer;
  procedure TimerKlasseTimer(Sender: TObject);
end;

jede instanz der klasse hat also quasi ihren eigenen timer
und das ganze als array angelegt:
ausblenden Quelltext
1:
Blubb: Array[0..50] of TKlasse;					

wenn die Klasse dann erzeugt wird (und der Timer), wird jedem timer auch ein gleiches OnTimer event zugewiesen...
wenn nun dieser timer abgelaufen ist und die procedure TKlasse.TimerKlasseTimer aufgerufen wird, wie kann ich dann innerhalb dieser prozedur herausfinden, von welcher array-instanz von "Blubb" der timer ausgelöst wurde? (mit dieser soll nämlich dann etwas gemacht werden.. aber irgendwie muss ich ja auf sie verweisen können)

ist das überhaupt möglich, oder muss ich da irgendwie anders rangehn?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 10.05.03 16:03 
Kannst Du in der Eigenschaft "Tag" eines jeden Timers nicht den Index hinterlegen, den die Instanz im Array hat?

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Nagelbrett Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Sa 10.05.03 16:08 
hmm, tatsächlich, das wäre eine möglichkeit

danke :D
Nagelbrett Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Sa 10.05.03 16:23 
hm, mal noch eine dumme frage...:

wie kann ich schaun ob schon eine gewisse array-instanz "Blubb[x]" vorhanden ist, oder ob die mit index x noch frei ist? weil wenn's die noch nicht gibt und man versucht darauf zuzugreifen bekommt man ja eine accessviolation
gibts da irgend einen befehl? oder muss ich das mit ...fehlerbehandlung machen?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 10.05.03 16:35 
Zitat:
hm, mal noch eine dumme frage...:
Die gibt es nicht.

Es sollte mit
ausblenden Quelltext
1:
if Blubb[x] <> nil then					

gehen.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Nagelbrett Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Sa 10.05.03 20:55 
jup, das klappt, thx
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 12.05.03 10:06 
Hi!

Eine kleine Anmerkung:
Wenn du deine Klasse von TComponent ableitest, kannst du den Timer ja mit Timer:=TTimer.Create(self) erstellen. Damit ist dann also dein Objekt der Owner des Timers. Du kannst dann im OnTimer-Ereignis dein objekt ohne vorherige Tagzuweisung bestimmen, indem du auf den Owner zugreifst: TKlasse(TTimer(Sender).Owner).

Cu,
Udontknow