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...


Anmelden zum Antworten