AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Event-Typen und warum deren Inhalte manchmal nicht stimmen
Thema durchsuchen
Ansicht
Themen-Optionen

Event-Typen und warum deren Inhalte manchmal nicht stimmen

Ein Thema von BAMatze · begonnen am 22. Jul 2009 · letzter Beitrag vom 3. Aug 2009
 
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#1

Event-Typen und warum deren Inhalte manchmal nicht stimmen

  Alt 22. Jul 2009, 15:00
Hallo,

Hab nochmal eine Verständnisfrage zu Events. Lustiger Weise funktionieren sie irgendwann genau immer so, wie ich das will aber hab hier zum x.ten mal Anfangschwierigkeiten bei dem Einfügen eines neuen Events. Folgender Maßen führe ich in eine meiner Komponenten die Events ein:

Delphi-Quellcode:
Type TOnTischChange = procedure of Object;

Type TTischsteuerung = class(TWinControl)
  private
    ...
    // Variablen für Events
    FOnTischChange: TOnTischChange;
  published
    // OnTischChange soll dem Programm die Möglichkeit geben alle Eigenschaften auf den
    // ausgewählten Tisch auszurichten.
    property OnTischChange: TOnTischChange read FOnTischChange write FOnTischChange;
    ...
end;

...

// irgendwo in der createwnd-Procedure
  FCombBoxTischauswahl := CreateComboBox(17,35, 200);
  FCombBoxTischauswahl.Items.Add('Test1');
  FCombBoxTischauswahl.Items.Add('Test2');
  FCombBoxTischauswahl.Items.Add('Test3');
  FCombBoxTischauswahl.ItemIndex := 0;
  FCombBoxTischauswahl.OnChange := Tischaenderung;

// Die Procedure Tischaenderung
procedure TTischsteuerung.Tischaenderung(Sender: TObject);
begin
  case FCombBoxTischauswahl.ItemIndex of
  0: Komponentenanpassung(1);
  1: Komponentenanpassung(2);
  2: Komponentenanpassung(3);
  end;
  if assigned(OnTischChange) then OnTischChange;
end;
Also ich habe sicherlich in der Art und Weise schon mehrfach Events eingeführt und irgendwie funktioniert das am Anfang immer überhaupt nicht (so wie jetzt) und irgendwann ohne für mich ersichtlichen Grund (derzeit) funktioniert es. Ich habe schon das OnTischChange := nil gesetzt und trotzdem bleibt assigned(OnTischChange) = false.

Der Sinn hinter dem Event ist eigentlich, dass ich in meinem Composite Control das onChange-Event der Combonox weitergeben will.
Dafür habe ich auch schon die Komponente deinstalliert und neu installiert (verwende hier auf Arbeit Rad2007, nicht wie in Profil TD2006).

Kann mir jemand vieleicht sagen, warum das anscheinend derart flüchtig ist, was aus assigned(On...) herauskommt?

Vielen Dank BAMatze
2. Account Sero
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:51 Uhr.
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