AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Große String-Liste out of Memory - Hilfe?
Thema durchsuchen
Ansicht
Themen-Optionen

Große String-Liste out of Memory - Hilfe?

Ein Thema von Pogoner · begonnen am 20. Apr 2014 · letzter Beitrag vom 23. Apr 2014
 
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#32

AW: Große String-Liste out of Memory - Hilfe?

  Alt 22. Apr 2014, 22:25
Nur mal zum Verständnis ein Beispiel für Rekursion:

Delphi-Quellcode:
  procedure SubOdInfo(WC, ExcludeWC: TWinControl; CtrlOd: Tod; var Deep: Integer); // diese Funktion ruft sich evtl. selbst wieder auf
  var
    I: Integer;
    SC: TControl;
    SWC: TWinControl;

    function DataSetInfoOd(C: TComponent; CtrlOd: Tod): Boolean;
    begin
      Result := False;
      ...
    end;

  begin
    Inc(Deep);
    if (WC = ExcludeWC) or not DataSetInfoOd(WC, CtrlOd) then
      begin
        I := 0;
        while I <= WC.ControlCount - 1 do
          begin
            SC := WC.Controls[I];
            if SC is TWinControl then
              begin
                SWC := (SC as TWinControl);
                SubOdInfo(SWC, ExcludeWC, CtrlOd, Deep); // hier rekursiver Aufruf
              end;
            Inc(I);
          end;
      end;
    Dec(Deep);
  end;
Eine Funktion ruft sich bei Rekursion selbst wieder auf.
Man hat dadurch mehrere Ebenen (hier in Deep nachvollziehbar) der Aufrufe, die dann wieder rückläufig verlassen werden.
Das kann nützlich sein, wenn man bei einem durch eine Funktion gefundenen Ergebnis die gleiche Aktion wieder durchführen will.
Jeder Durchgang hat seine eignen lokalen Variablen (z.B. I: Integer), die nach Beendigung des Durchlaufs wieder freigegeben werden.
Wurden 100 Rekursionen ausgeführt wurde Deep bis 100 gezählt und wieder zurück und es wurden 100 mal die Variable I erzeugt und wieder freigegeben.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz