Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Unterschiedliche Ergebnisse im Prog / Ü-Fenster (https://www.delphipraxis.net/98305-unterschiedliche-ergebnisse-im-prog-ue-fenster.html)

chrlauer 24. Aug 2007 18:14


Unterschiedliche Ergebnisse im Prog / Ü-Fenster
 
Guten Tag,

Kurze Beschreibung:
Ein Fenster hat eine Pagekomponente mit mehreren Pages (aus der JVCL-Bibliothek). Jede Page hat eine eigene Aufgabe aber weitgehend gleiche Komponenten (je ein StringGrid und ein RichEdit), also möchte ich die Komponenten über Variable ansprechen, was auch funktioniert, wenn ich die entsprechenden Arrays für die Objekte "per Hand" anlege (die Komponenten sind bereits auf der form vorhanden).

Nun möchte ich die Arrays, in denen die page-Objekte und die Objekte auf den Pages gespeichert sind in einer Schleife aufbauen. Das mache ich folgendermaßen (verkürzt):
Delphi-Quellcode:
procedure ...
  var
    intCount: Integer;
    intCompo: Integer;
    intPageIndex: Integer;
    intRecordCount: Integer;
    compoType: TComponent;

  begin
    intRecordCount := ...;
    SetLength(arrGrid, intRecordCount);
    for intCount := 0 to intRecordCount - 1
    do begin
      compoType := FindComponent('grid' + arrCatNames[intCount, 0]);
      intCompo := compoType.ComponentIndex;
      if (Components[intCompo] is TJvStringGrid)
        then arrGrid[intCount] := TJvStringGrid(Components[intCompo].Name);
    end;
  end;
Das Array arrCatNames ist erstellt und hat die richtigen Inhalte, arrGrid ist als Private deklariert.

Nun zum Problem:
compoType ist immer nil, d.h. der Ausdruck FindComponent('grid' + arrCatNames[intCount, 0]) liefert wohl nil zurück. Das tut er aber nur im Programm, im Überwachungsfenster bzw. im Debug-Modus liefert er jedoch einen korrekten, nicht-nil Wert zurück:

compoType: nil
FindComponent('grid' + arrCatNames[intCount, 0]): ([csInheritable])

Die Arrays werden entweder im Activate bzw. im FormPaint Ereignis erzeugt, in beiden Fällen das gleiche Verhalten.

Kann mich jemand von meiner Ratlosigkeit befreien? Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz