Aus Klasse auf Object auf Formball zugreifen
spacer
Autor Nachricht
t3h
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
Beiträge: 20



BeitragVerfasst: Fr 19.10.07 00:11 
Hi ich habe eine Klasse TAmpel von der Klasse TPanel abgeleitet.
Diese hat die function GetPhase die für jede Phase einen String zurückliefert so jetzt möchte ich eine Prozedur für die Klasse TAmpel schreiben die auf die Andere Ampel reagiert. Allerdings funktioniert das so nicht

ausblenden Delphi-Quelltext markieren
1:
2:
3:
function ReactOn (s: string);
if TAmpel(FindComponent(s)).GetAmpelPhase = 'RotPhase'
then GruenPhase


Was ja auch klar ist da man ja nicht einfach auf das Formblatt zugreifen kann. Wie kriege ich das jetzt zum laufen?
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 19.10.07 08:29 
Wenn andere Klasse direkt den selben Eigentümer hat:
ausblenden Delphi-Quelltext markieren
1:
if TAmpel(Owner.FindComponent(s)).GetAmpelPhase = 'RotPhase'

Sonst halt rekursive die Owner durchsuchen bis Owner das Formular ist.

_________________
Markus Kinzler.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
freak4fun
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 549

Win XP Pro SP3
Delphi 7 Personal & TD Explorer, PHP, Java
BeitragVerfasst: Fr 19.10.07 10:35 
Ich würde das anders lösen. Du hast deine Instanzen einer Ampel, zB Ampel1. Und dann die zweite Ampel zB Ampel2, die auf die erste reagiert. Wenn die Ampel1 ihre Phase ändert muss sie das der anderen mitteilen. Dafür muss sie die andere Ampel kennen. Da Ampeln an einer Kreuzung zusammen geschaltet sind, solltest du über eine Ampelverwaltungsklasse nachdenken, die alle Ampeln kennt, die miteinander agieren. Diese Klasse sorgt dann für die synchronisation. (siehe Observer-Pattern)

MfG
freak

_________________
Ich war hier!
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
home home