![]() |
String in Befehl konvertieren
Hallo Leute!!!
Ich möchte gerne den Text "HALLO!" auf Umwegen in Label2 anzeigen Der einfachste Weg wäre natürlich
Delphi-Quellcode:
Aber da ich den Ort ,sprich "label2", aus einem array auslese, kann ich das nicht direkt in das Programm schreiben, sondern erhalte den Ort als String. Wie kann ich nun aus dem String einen teil aus der Befehlszeile machen ? Gibt es so etwas wie StrTo"Befehl" ??
label2.caption:='HALLO!';
Delphi-Quellcode:
begin
ort:='label2'; text:='HALLO!'; ...... ???????? end; |
Re: String in Befehl konvertieren
so einfach ist das ganze
Delphi-Quellcode:
var LComponent: TComponent;
begin LComponent := FindComponent('Label2'); if (LComponent <> nil) and (LComponent is TLabel) then TLable(LComponent).Caption := 'deine Caption'; |
Re: String in Befehl konvertieren
Delphi ist kein Interpreter, sondern ein Compiler. Wenn du ein Array of TLabel hast, warum kannst du dan nicht machen:
Delphi-Quellcode:
LabelArray[5].Caption := 'Hallo';
|
Re: String in Befehl konvertieren
Luckies Variante ist die bessere da FindComponent eben die Componente erst finden muss. Besser als ein Array fände ich allerdings da eine TList wenn man ohne TComponent arbeitet, das ist besser wenn man die anzahl der Labels später noch ändert.
|
Re: String in Befehl konvertieren
Leute, ich setz mich ran und werd von meinen Erfolg oder auch nicht berichten!
Wie ihr ja gesehen habt war das nur das kleine Testprog :-D |
Re: String in Befehl konvertieren
Hallo Leute!
Ich hab eure Tipps alle mit meinem bessten "Können" eingebaut! Die Namen der Edit-Felder werden in einer externen CSV-datei mit der folgenden Formatierung gespeichert: Name1 Name2 Name3 .... Ich hab jetzt Edit-Felder statt Labels genommen... Da Delphi bei cfg_edit[i]:= cfg_dat.strings[i]; gemeckert hat, hab ich wie unten zu sehen ist noch ein Tedit() davor gesetzt... Gehe ich richtig in der Annahme, dass der STring dann in einen Tedit-Wert geändert wird ?? Nun kommt mein Problemm... bei der letzten Zeile kommt es leider zum Programmabsturz, da "cfg_edit[7].text" wohl nicht dem vom mir erwarteten Wert entspricht ... Was macht ich falsch ??
Delphi-Quellcode:
procedure TForm1.FormActivate(Sender:TObject);//beim Starten des Programms
var cfg_dat : TStrings; i: integer; begin //Auslesen der CFG-Datei cfg_dat:=TStringList.Create; //StringList erzeugen cfg_dat.LoadFromFile('CFG.csv'); for i:=0 to 8 do begin cfg_edit[i]:= Tedit(cfg_dat.strings[i]); end; cfg_dat.Free ; cfg_edit[7].text:='kdhkjdh'; // ----> FEHLER ! end; |
Re: String in Befehl konvertieren
Du willst doch einen Edit-Text verändern, aber was du tust, ist das Edit direkt verändern ;)
So sollte es funktionieren:
Delphi-Quellcode:
procedure TForm1.FormActivate(Sender:TObject);//beim Starten des Programms
var cfg_dat : TStrings; i: integer; begin //Auslesen der CFG-Datei cfg_dat:=TStringList.Create; //StringList erzeugen cfg_dat.LoadFromFile('CFG.csv'); for i:=0 to 8 do begin cfg_edit[i].text:= cfg_dat.strings[i]; end; cfg_dat.Free ; cfg_edit[7].text:='kdhkjdh'; end; |
Re: String in Befehl konvertieren
Nein, eigentlich möchte ich nur meinem
leeren array ( cfg_edit: array [0..8] of TEdit; )aus der Datei cfg.csv jeweils einen namen zuweisen! Bisher siecht mein Quelltext bei Schreiben in das 2Dimensionale Array BigTemp so aus:
Delphi-Quellcode:
diese ansich schon in der Test-phase langen 8Zeilen ( es kommen später noch mehr Fächer hinzu )
BigTemp[b,0] := Nachname.Text;
BigTemp[b,1] := Vorname.Text; BigTemp[b,2] := Deutsch.Text; BigTemp[b,3] := Englisch.Text; BigTemp[b,4] := Mathe.Text; BigTemp[b,5] := Franz.Text; BigTemp[b,6] := Latein.Text; BigTemp[b,7] := Russisch.Text; BigTemp[b,8] := Werken.Text; ...... wollte ich durch folgenden Eintrag verkürzen:
Delphi-Quellcode:
Nur ist leider in meinen vorhergeposteten Quelltext als Beispiel Nachname nicht gleich cfg_edit[0]
begin
for i:=0 to 8 do begin BigTemp[b,i] := cfg_edit[i].Text; :? PS: MEIN ESSEN IS GRAD ANGEBRANNT ---Lecker :lol: :lol: :lol: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 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