Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String in einem Aufruf verwenden... (https://www.delphipraxis.net/108594-string-einem-aufruf-verwenden.html)

abx 16. Feb 2008 01:14


String in einem Aufruf verwenden...
 
Hi,

Ich würde gerne einen String Teil eines Aufrufs werden lassen,
Ich mache das mal an einem Beispiel deutlicher:

Delphi-Quellcode:
string := '5';
Label[Hier soll der String hin].Caption := 'Hallo Welt';
In dem Beispiel mit 5 wäre der Aufruf also "Label5.Caption := ......". Wenn ich den String anders definiere, entsprechend ("Label1....", "Label3....").
Ich weiß, dass sowas auch mit Bedingungen geht, aber ich wollte mich nicht tot tippen, weil es sich um sehr viele Zahlen handelt.

Und wie sieht das gleiche mit z.B. Integern aus? Könnt man schön mit Schleifen kombinieren.....


Vielen Dank für eure Hilfe.

abx.

Christian Seehase 16. Feb 2008 01:34

Re: String in einem Aufruf verwenden...
 
Moin abx,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Zu Deinem Problem:
Such' hier mal nach Hier im Forum suchenFindComponent

Die Frage taucht hier immer mal wieder auf ;-)

Nuclear-Ping 16. Feb 2008 13:31

Re: String in einem Aufruf verwenden...
 
Warum packst du 50 Labels (klingt laut deiner Aussage zumindest so ^^) auf eine Form, statt eine ListView-Komponente zu verwenden und dort die Einträge reinzuschreiben?

mkinzler 16. Feb 2008 14:33

Re: String in einem Aufruf verwenden...
 
Oder ein StringGrid

Tumm 16. Feb 2008 14:39

Re: String in einem Aufruf verwenden...
 
Delphi-Quellcode:
TLabel(FindComponent('Label' + s)).Caption := 'Hallo Welt';
Dabei S für deinen String.

Und natürlich herzlich Willkommen in der DP ;)!

abx 16. Feb 2008 14:58

Re: String in einem Aufruf verwenden...
 
Hi, danke für die Antworten.
Also ich lerne Delphi in der Schule. Ich finde das Lerntempo dort sehr gering. Wir haben in etwas mehr als einem Halbjahr nur folgende Dinge behandelt:
-Button
-Label
-Edit
-Schleifen
-Bedingungen

Ich wollt mich mal ein bischen mehr wagen und ein Programm schreiben, das mir Nullstellen von Funktionen beliebigen Grades berechnet. Wenn die Funktion zum Beispiel 4, Grades ist. Sollten die Inhalte der Editfelder 1-5 aus gelesen werden (a*x^4+b*x^3+c*x^2+d*x+e).

Um das mit FindComponent auszuprobieren, habe ich ein paar Zeilen geschrieben:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
a, s: String;
begin
s := Form1.Edit0.Text;
a := TEdit(FindComponent('Form1.Edit'+s)).Text;
Form1.Label1.Caption := a;
end;

end.
Der Variable a soll der String von Edit[s].Text zugewiesen werden. das [s] wird durch Edit0.Text bestimmt. War nur zum antesten gedacht, aber nach dem Kompilieren wird a immer ein leerer Wert zugewiesen, also gar keiner.
Woran liegt das?

Und inwiefern sind ist es für mich sinnvoll mir StringGrid oder ListView anzuschauen? Es geht um das oben beschriebene Projekt.
Ich habe übrigens Delphi 5.0

Und Danke nochmal an Tumm für das gute Beispiel.
Grüße, abx.

Tumm 16. Feb 2008 15:05

Re: String in einem Aufruf verwenden...
 
Zitat:

Delphi-Quellcode:
a := TEdit(FindComponent('Form1.Edit'+s)).Text;

Du kannst das Form1 weglassen, da du dich in der Klasse "befindest", weil TForm1.Button1Cick zu dieser Klasse gehört, also:

Delphi-Quellcode:
a := TEdit(FindComponent('Edit'+s)).Text;
Daran liegt es allerdings nicht (denke ich). Guck doch nochmal nach ob in dem Edit wirklich was drinsteht ;)!

taaktaak 16. Feb 2008 15:11

Re: String in einem Aufruf verwenden...
 
Nee, daran wird es nicht liegen. Der Code ist schon richtig - es funktioniert!
Sind die Benennungen der beiden Edits / des Labels denn richtig?

Tumm 16. Feb 2008 15:17

Re: String in einem Aufruf verwenden...
 
Zitat:

Daran liegt es allerdings nicht (denke ich)
;)

abx 16. Feb 2008 17:49

Re: String in einem Aufruf verwenden...
 
Hi,

also ich weiß nicht woran es lag, aber ich hab ein neues Projekt gemacht. Mit dem neuen Projekt hat es dann auch funktioniert.... Danke!
FindComponent sucht mir ja Komponenten, also Buttons, Editfelder, Labels und alles andere, was ich mit Delphi auf das Fenster packe.
Gibt es da eine Entsprechung für ganz normale Variablen? Ein Beispiel:
Delphi-Quellcode:
var
s: String;
a,b, c, d, e, f, g, h, (das ganze ABC eben): Real;
begin
s := Edit1.Text; //ein Buchstabe wird bestimmt
FindVariable(s) := 7;
end;
Mit sowas könnte ich das Programm nach meinen Vorstellungen mit einem recht kurzen Quellltext umstetzen...

Grüße, abx.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:38 Uhr.
Seite 1 von 2  1 2      

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