Announcement

Collapse
No announcement yet.

Speicherproblem

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

  • Speicherproblem

    Folgendes, ich habe ein Proggi das ein 2. Formular mit Form2 -> Show(); aufruft.
    So weit, so gut.
    Will ich das Programm schliessen, so ist es zwar nicht mehr sichtbar, aber irgendwie immer noch da.
    Ich sehe das ganz gut in der Entwicklungsumgebung, da wenn ich das Programm ''beendet'' habe, kann ich nicht weiter an dem Proggi arbeiten, da kein Design-Formular zu sehen ist.
    Mein einziger Ausweg ist das Programm zurückzusetzen.
    Weiss jemand wo der Fehler liegt und wie ich den Speicher wieder frei bekomme und somit das Programm ordnungsgemäß beende?

    mfg Cre@or
    Zuletzt editiert von Cre@or; 07.08.2008, 21:59. Reason: Erläuterung erweitert...

  • #2
    Ohne weiteren Quellcode ist das eine heitere Raterunde.

    Comment


    • #3
      Wie kann das sein? Sofern du nicht irgendow manuall eingegriffen hast, wie ein Formular ordnungsgemäß bei Klick auf "Schließen" geschlossen und das Programm beendet
      Christian

      Comment


      • #4
        Eigentlich sollte der Quelltext in diesem Fall ohne Belang sein, aber bitte...
        Christian sollte ihn eigentlich schon kennen, ist ne erweiterung von meiner letzten Frage... allerdings läuft das jetzt und steht hier auch schon nicht mehr zur Debatte.
        Danke noch mal für die Hilfe Christian!

        Code:
          Starten_Shreek(Sender);
        
          Form2 -> Memo -> Font = Memo -> Font;
        
          Form2 -> Memo -> Color = Memo -> Color;
        
          ProgressBar -> Max = Memo -> GetTextLen() + 1;
        
          Form2 -> Memo -> Clear();
        
               for (Anzahl = 0; Anzahl < 255; Anzahl++)
        
                    Zeichen[Anzahl] = 0;
        
               for (Anzahl = 1; Anzahl < Memo -> GetTextLen() + 1; Anzahl++)
               {
        
                AsciiZeichen = Memo -> Text[Anzahl];
        
                Zeichen[AsciiZeichen]++;
        
                ProgressBar -> Position++;
        
               }
        
          Maximal = 0;
        
          Form2 -> Memo -> Lines -> Add("Häufigstes Zeichen von " + IntToStr(Memo -> GetTextLen()) + ":");
        
          Form2 -> Memo -> Lines -> Add("");
        
               for (Anzahl = 0; Anzahl < 255; Anzahl++)
        
                    if (Zeichen[Anzahl] > Maximal)
        
                        Maximal = Zeichen[Anzahl];
        
               for (Anzahl = 0; Anzahl < 255; Anzahl++)
        
                    if (Zeichen[Anzahl] == Maximal)
                    {
        
                     ZeichenAusgabe = (char)Anzahl;
        
                     Form2 -> Memo -> Lines -> Add("  - '" + ZeichenAusgabe + "': " + IntToStr(Zeichen[Anzahl]));
        
                    }
        
          Maximal = 0;
        
               for (Anzahl = 65; Anzahl < 91; Anzahl++)
        
                    Maximal += Zeichen[Anzahl] + Zeichen[Anzahl + 32];
        
          Form2 -> Memo -> Lines -> Add("");
        
          Form2 -> Memo -> Lines -> Add("");
        
          Form2 -> Memo -> Lines -> Add("Häufigster Buchstabe von " + IntToStr(Maximal) + ":");
        
          Form2 -> Memo -> Lines -> Add("");
        
          Maximal = 0;
        
               for (Anzahl = 65; Anzahl < 91; Anzahl++)
        
                    if (Zeichen[Anzahl] + Zeichen[Anzahl + 32] > Maximal)
        
                        Maximal = Zeichen[Anzahl] + Zeichen[Anzahl + 32];
        
               for (Anzahl = 65; Anzahl < 91; Anzahl++)
        
                    if (Zeichen[Anzahl] + Zeichen[Anzahl + 32] == Maximal)
                    {
        
                     ZeichenAusgabe = (char)Anzahl;
        
                     Form2 -> Memo -> Lines -> Add("  - '" + ZeichenAusgabe + "' | '" + LowerCase(ZeichenAusgabe) + "': " + IntToStr(Maximal));
        
                    }
        
          Maximal = 0;
        
               for (Anzahl = 48; Anzahl < 58; Anzahl++)
        
                    Maximal += Zeichen[Anzahl];
        
          Form2 -> Memo -> Lines -> Add("");
        
          Form2 -> Memo -> Lines -> Add("");
        
          Form2 -> Memo -> Lines -> Add("Häufigste Ziffer von " + IntToStr(Maximal) + ":");
        
          Form2 -> Memo -> Lines -> Add("");
        
          Maximal = 0;
        
               for (Anzahl = 48; Anzahl < 58; Anzahl++)
        
                    if (Zeichen[Anzahl] > Maximal)
        
                        Maximal = Zeichen[Anzahl];
        
               for (Anzahl = 48; Anzahl < 58; Anzahl++)
        
                    if (Zeichen[Anzahl] == Maximal)
                    {
        
                     ZeichenAusgabe = (char)Anzahl;
        
                     Form2 -> Memo -> Lines -> Add("  - '" + ZeichenAusgabe + "': " + IntToStr(Maximal));
        
                    }
        
          Form2 -> Show();
        
          Beenden_Shreek(Sender);
        ...

        Code:
         void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
         {
        
          EndeClick(Sender);
        
          Form2 -> Close();
        
         }

        Comment


        • #5
          Form2 -> Close();

          Schließt das Fenster, beendet nicht das Programm

          Application->Terminate();

          sollte helfen
          Christian

          Comment

          Working...
          X