On close funktionalität
-
Hallo zusammen,
ich habe folgendes problem;
Mein Hauptformular führt beim öffnen diversen code aus, z.b. werte aus datei lesen und anzeigen. das funktioniert allerdings habe ich das problem, wenn ich in einem Unterformular die Datei ändere, das ich nach schließen des unterformulars (seperate unit) die geänderten werte nicht anzegen kann.
Meine fragen:
1. mit welchem befehl kann ich eine nach dem schließen des unteformulars
eine erneute Abarbeitung meines nicht ereignissabhängigen codes erreichen?
2. wie kann ich bei einer Combobox nach starten meines programms verhindern das ein leeres feld erscheint?(es soll ein default wert angegeben werden)noch eine frage welche mit der oberen sache nichts zu tun hat:
wie kann ich instanzen von Strukturen erstellen deren variablenname sich nur durch einen laufenden Index unterscheiden?(struktvar + index)im vorraus schon mal danke
-
Ich bin nicht sicher, ob ich dein Problem richtig verstanden habe, aber zu 1.:
Tu doch deinen Code, den du beim Öffnen ausführst in eine public-Methode und ruf' sie bei onClose auf. Wenn du den Code dann nach dem Ändern die Werte aktualisieren willst, rufst du die Methode erneut auf, z.B. bei OnClose des Unterformulars.
Gruß
Marc
-
Und zu 2.:
Die Combobox hat eine Property "Items" (siehe Objektinspektor), da kannst du die default-Werte reinschreiben.
Noch'n Gruß
Marc
-
Scooby schrieb:
noch eine frage welche mit der oberen sache nichts zu tun hat:
wie kann ich instanzen von Strukturen erstellen deren variablenname sich nur durch einen laufenden Index unterscheiden?(struktvar + index)Wie war das mit nur einer Frage pro Thema?
Ansonsten schreit das doch geradezu nach (dynamischen) Arrays. Wozu so umständlich?
-
Hallo, danke für die tipps, allerdings haperts bei mir noch an der ausführung.
@MarcE
Ich will die standartfunktion
__fastcall TMain(TComponent* Owner);
die BCB automatisch in public eingetragen hat erneut beim onclose des unterformulars aufrufen.
Ich habe das so probiert:
void __fastcall TNeue_Anlage::FormClose(TObject Sender,
TCloseAction &Action)
{
void __fastcall TMain(TComponent Owner);
}
leider tut sich nichts.
der code den ich hier
__fastcall TMain::TMain(TComponent* Owner)
: TForm(Owner)
drinstehen habe wird nicht erneut ausgeführt.
was ist falsch?@Dasd: Ich kann keine Arrays verwenden da er mir als index keine variable erlaubt sondern einen integer wert verlangt.
mfg
-
Hallo
TMain(...) ist ein Konstruktor und sollte/kann nicht anders aufgerufen werden.
Verschieb die notwendigen Befehle in eine neue Funktion, die du dann vom Konstruktor und anderen Funktionen aus anrufen kannst.bis bald
akari
-
Und was spricht dagegen, den Index in einer Variable zu speichern?
Ich kann deiner Problembeschreibung nicht ganz folgen...