Announcement

Collapse
No announcement yet.

Speicheroptimierung/Speicherverwaltung

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

  • Speicheroptimierung/Speicherverwaltung

    Hallo!<br>
    Ich habe wieder einmal ein großes Problem<br>
    Ich möchte in meinen Programm eine optimale Speicherverwaltung erreichen. Ich weiß aber absolut nicht wie!!!
    Men Programm ist folgendermaßen aufgbaut.<br>
    Es besteht aus einem Hauptformular.Von diesen können dann weitere Formulare geöffnet werden. Dazu muß der Name des Formulars als Includedatei im Hauptformular angegeben werden.<br>

    #include "kundenstamm.h"<br>
    Der Aufruf des Formulars erfolgt dann so<br>
    Form3_Kundenstamm->Show();<br>
    Form1_mainmenue->Visible=false;<br>

    Meine Frage ist es nun, ob es noch andere Möglichkeiten zur Formulardef. gibt? Und ob ich überhaupt, über diesen Weg eine Speicheroptimierung erhalte.

    Danke für jede Hilfe Timo

  • #2
    Was willst du optimieren??
    Christian

    Comment


    • #3
      Hallo Christian!

      Ich möchte mein Programm so optimieren, daß es nicht mehr so viele Speicherresourcen (unter Win98 ca. 80%) in Anspruch nimmt.
      Ich weiß aber nicht, ob es an den Includedateien liegt. Darum meine Frage. Ich kenne mich auf den Gebiet der Speicheroptimierung nicht so aus!
      Kannst Du mir da weiter helfen?

      Danke Tim

      Comment


      • #4
        Ich weiß nicht warum 80% deiner Resourcen weg sind, aber an den Include-Dateien kann es nicht liegen.

        Die haben nämlich einen Include-Wächter, der dafür sorgt, dass das Include nur 1 x eingebunden wird. Die maschinell vom C++Builder erzeugten Header-Dateien fangen so an:

        <pre>
        #ifndef UnitNameH
        #define UnitNameH
        ....
        #endif

        </pre>

        damit kann die Unit mit dem Namen UnitName beliebig oft irgendwo eingebunden werden. Durch die Anweisungen für den Präprozessor wird dafür gesorgt, dass der Programmcode tatsächlich nur 1 x eingebunden wird.

        Für eigene Header-Dateien kannst du ebenfalls so einen Wächter anlegen
        Christian

        Comment


        • #5
          Hi,<br>
          Formulare, die z.B. automatisch angelegt werden, bleiben immer mit einer Instanz im Speicher - ausser, Du vernichtest diese (was natuerlich speicher spart). Du kannst dazu in das OnFormClose Event sowas wie:
          <pre>
          Action = caFree;
          </pre>
          schreiben.<p>
          Wenn ich mehrere Forms habe, lass ich die nie automatisch erzeugen, sondern gehe immer wie folgt vor:
          <pre>
          if (!Form1) Form1 = new TForm1(this);
          try {
          if (Form1-&gt;ShowModal() == mrOk){
          // mach irgendwas
          }
          } __finally {
          delete Form1;
          }
          </pre>
          Das solltest Du allerdings nur bei Forms machen, die nicht viele Daten Cachen - sonst dauert es eine Ewigkeit, bis die Form dargestellt wird.

          CU Chri

          Comment

          Working...
          X