GTK# EventHandler?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

GTK# EventHandler?

Beitrag von BeS » 28.11.2004 15:42:12

Hallo,
ich bin gerade auf eine Frage gestoßen für die ich keine Antwort finden konnte.
Ich habe hier ein kleines GTK# Programm, dieses sammelt u.a. Daten in einem ListArray. Jetzt habe ich eine zusätzliche Klasse die ein Fenster öffnet indem ich durch ein button.click() Event ein Datum aus dem ListArray löschen kann. Wenn das letzte Datum gelöscht wurde, dann will ich bei dem "löschen-button" in der ursprünglichen Klasse sensitive auf false setzen.
Soweit kein Problem. Meine Lösung sieht derzeit so aus.
Von der Ursprungsklasse wird die Klasse erzeugt die das Fenster zum löschen eines Elements erstellt. Als Argument wird eine Referenz auf die Ursprungsklasse übergeben.
Wenn ich jetzt durch das button.click() event ein Element aus dem ListArray lösche werden zwei Funktionen aufgerufen:
1. Eine Funktion in der Klasse, die ein Element aus dem ListArray löscht.
2. Eine Funktion in der Ursprungsklasse die überprüft ob noch ein Element in dem ListArray ist und gegebenenfalls sensetive auf false setzt.

Das funktioniert soweit auch, die Frage ist jetzt ob das Zufall ist?

Es werden bei einem button.click() zwei Funktionen aufgerufen. Kann man sagen in welcher Reihenfolge die beiden aufgerufen werden? Da sie sich ja gegenseitig beeinflussen. Wenn Funktion 2 zuerst abgearbeitet werden würde, dann würde sie nicht merken das der ListArray leer ist, weil das letzte Element erst kurz danach gelöscht wurde.

Deswegen meine Frage: Wie werden mehrere Funktionen die durch ein Event ausgelöst werden abgearbeitet und in wie weit beeinflussen sie sich gegenseitig?

Danke!
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Antworten