String zu TObject? [Delphi]

Feuerkelch

Grünschnabel
Hallo Leutz,

ich hab nen Problem mit meinem Delphi-Programm...
Ich soll für die Schule ein Memory Programmieren und hab einige Ideen, das Script zu vereinfachen, aber ich kenne nicht die richtigen Befehle...

Was ich brauche ist eine Funktion wie IntToStr nur halt um Strings in TObjects zu verwandeln... ich will nämlich z.B. den visible-Wert in arrays Speichern. Wenn die Form erstellt wird, sollen dann mit einer FOR-Schleife alle Felder sichtbart gemacht werden. Gedacht hab ich mir das so:

Code:
var
 i,j: Integer;
 cardvisible: array[0..4] of array[0..3] od Boolean;

procedure TForm1.FormCreate(Sender: TObject)
 begin
 for i:=0 to 4 do    // die Horizontale des Spielfeldes
 begin
  for j:=0 to 3 do    // die Vertikale des Spielfeldes
  begin
   StringToTObject('feld'+inttostr(i)+inttostr(j))+'.visible') := cardvisible[i,j];
     // StringToObject ist der Befehl, den ich gern in der Form hätte,
     // aber nicht kenne...
  end;
 end;
end;

feld00 ist mein erstes Feld ganz unten links in der Ecke. Das geht dann wie im Koordinatensystem durch das ganze Spielfaled nach oben rechts zu feld43...

Ich hoffe es ist ersichtlich geworden, was ich möchte...
 
Versuchs mal mit FindComponent, ich glaub, das ist der Befehl, den du suchst. Hab aber leider weder meine Unterlagen noch Delphi hier. Bei Bedarf würd ich das noch nachreichen (ab morgen Abend dann).

Grüße
Hellie
 
Hab noch meine alten Delphi-Projekte gefunden:

FindComponent hat folgenden Aufbau:

MeinBild:= TImage(findcomponent( Objektname ));
--> MeinBild ist dabei eine Variable des Objekttyps, den du benutzt
--> weil das in dem Fall ein TImage ist, steht vor FindComponent auch TImage
--> Der Objektname ist ein String

Code:
for i:= 1 to 50 do
   TLabel(findcomponent('Label'+Inttostr(i))).Caption:= Inttostr(i);

Schreibt z.B. in jedes Label von Label1 bis Label50 die entsprechende Zahl von 1 bis 50.
Hilft das weiter?

Grüße
Hellie
 
genial, danke...
ich hab das memory jetzt zwar etwas umständlicher hinbekommen, aber der befehl ist in zukunft bestimmt nützlich, danke :D
 
Zurück