Announcement

Collapse
No announcement yet.

Formulare einer Anwendung auflisten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Formulare einer Anwendung auflisten

    Wie kann ich alle Formulare einer Application erfragen ?
    Ich hab´s mit Application.Copmonents... versucht, da kommen aber nicht alle Formulare (die Application hat 90 Formulare, nur 5 werden automatisch erzeugt, der Rest dynamisch..)


    Danke

    Andreas

  • #2
    Hallo,

    sag mir doch bitte, was genau du machen willst! Willst du die Namen zur Laufzeit erfragen?

    Gruß

    Heiko

    Comment


    • #3
      Hallo Heiko,

      wir benutzen eine Komponente die die "Internationalisierung" ermöglicht. Auf jedem Formular sitzt eine solche Komponente. Um eine Update-Funktion dieser Komponente aufzurufen, muss ich nun jedes Formular einmal erzeugen (.CREATE) , danach wieder schliessen, dann sind alle Spracheinträge "upgedatet".
      Ich will das nun halbwegs automatisieren (habe Anwendungen mit über 90 Formularen...) und dazu im Quellcode, bevor das Programm initialisiert wird (zumindest bevor "Application.Run" ausgeführt wird) alle Formulare einmalig erzeugen....

      Gruss

      Andreas

      Comment


      • #4
        Und wieso das? Der Kunde "freut" sich das die Anwendung ewig zum starten braucht. Mach das doch bei jedem Formular vor dem ersten Anzeigen. Und wenn du deine Formulare nicht von TForm sondern von einer eigenen TMyForm ableitest kannst du das zentral implementieren.

        Comment


        • #5
          Hallo Bernhard,

          das Update der Sprachdatenbank läuft nur im Zusammenhang mit grösseren Programm-Updates, ca. einmal pro Jahr...
          Zu Erklären warum es nun gerade so laufen soll, würde den Rahmen dieses Forums sicherlich sprengen. Ich habe aus dem kompletten Kontext heraus den unseres Erachtens richtigen Lösungsansatz gefunden, mir fehlt aber die Umsetzung, also zurück zur ursprünglichen Frage; "Wie kann ich alle Formulare einer Applikation erfragen ?"

          Gruss

          Andreas

          Comment


          • #6
            Ok. Es wird irgendwo (DB, Ini, Textdatei, Registry) beim Update einmalig was gespeichert und dazu müsstest Du (unabhänigig davon ob es eine Instanz des Formulares gibt) dieses Formular einmal erzeugen und die Update-Methode aufrufen.

            Comment


            • #7
              Hi,

              ich fürchte, du wirst um eine Anpassung deiner Formularunits nicht herumkommen.
              Denn für das Erzeugen der Formulare über den Name müssen diese IMHO mit RegisterComponents registriert werden.
              Also macht es sicher Sinn, im Initialization eine Routine unterzubringen, die das RegisterComponents übernimmt. Dabei kannst du die FormClass auch gleich in einer Liste unterbringen, welche für dein Vorhaben ausreichend ist.
              Dann kannst du durch die Liste iterieren und mit TFormClass(FormList[i]).Create ... die Forms erzeugen.

              Cu, Frank

              Comment

              Working...
              X