StringGrid <edit>beim Programmstart füllen, ohne Formanzeige zu verzögern</edit>



  • Hallo guten Morgen,

    habe eine Denkproblem mit der Ansicht der Komponente.
    Damit die auf der Form enthaltene Komponente sofort anzuzeigen und danach das laden der Einträge in das StringGrid erfolgt, habe ich zum laden der Einträge einen Timer mit einer Verzögerung von 10 ms genutzt. Der Timer wird in FormShow Bereich aktiviert.
    Ich möchte aber jetzt vom Timer abkommen, weis aber nicht wie und wo ich dies erledige. Application->ProcessMessages() funktioniert auch nicht. Die procedur in FormActivate einzubinden, ist doch nicht die richtige Position, obwohl dies funktioniert.

    Habe vergessen, Das laden der Einträge kann bis zu 2 Sek. benötigen.

    Gruß Siegfried

    Edit:
    Bitte aussagekräftige Überschriften wählen. Danke!



  • OnCreate



  • Zusatz

    OnActivate nicht der richtige Ort, weil dann immer die Daten geladen werden, wenn das Formular den Focus verliert und wiederbekommt

    OnShow nicht der richtige Ort, weil dann immer die Daten geladen werden, wenn das Formular visible / nicht visible ist.

    Sofern dir die Wartezeit zu lange erscheint (2 Sek. würde ich für vertretbar halten), belibt dann nur die Timerlösung mit einem bool der anzeigt, ob die Daten schon mal geladen wurden.



  • Hallo,

    bei OnCreate ist das gleiche Problem.

    Richtig, OnActivate nicht der richtige Ort, weil dann immer die Daten geladen werden, wenn das Formular den Focus verliert und wiederbekommt, aber mit einem static bool vieleicht eine alternative.

    Gruß Siegfried



  • Hallo

    statt OnCreate aber besser den Konstruktor nehmen.

    /Edit :

    bei OnCreate ist das gleiche Problem.

    Warum sollte OnCreate/Konstruktor das gleiche Problem sein?

    bis bald
    akari



  • Hallo,

    statt OnCreate aber besser den Konstruktor nehmen.

    jetzt passe ich. Warscheinlich kein guter Tag.

    Gruß Siegfried 😞 😞



  • OnActivate ist der richtige Ort, es muss halt über ein Flag o.ä. sichergestellt werden, dass der Code nur einmal ausgeführt wird.
    Und OnCreate sollte, wie schon erwähnt, gar nicht verwendet werden.



  • Hallo,

    also doch kein guter Tag für mich.

    Gruß Siegfried


Anmelden zum Antworten