![]() |
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:
In dem Beispiel mit 5 wäre der Aufruf also "Label5.Caption := ......". Wenn ich den String anders definiere, entsprechend ("Label1....", "Label3....").
string := '5';
Label[Hier soll der String hin].Caption := 'Hallo Welt'; 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. |
Re: String in einem Aufruf verwenden...
Moin abx,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS. Zu Deinem Problem: Such' hier mal nach ![]() Die Frage taucht hier immer mal wieder auf ;-) |
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?
|
Re: String in einem Aufruf verwenden...
Oder ein StringGrid
|
Re: String in einem Aufruf verwenden...
Delphi-Quellcode:
Dabei S für deinen String.
TLabel(FindComponent('Label' + s)).Caption := 'Hallo Welt';
Und natürlich herzlich Willkommen in der DP ;)! |
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:
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.
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. 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. |
Re: String in einem Aufruf verwenden...
Zitat:
Delphi-Quellcode:
Daran liegt es allerdings nicht (denke ich). Guck doch nochmal nach ob in dem Edit wirklich was drinsteht ;)!
a := TEdit(FindComponent('Edit'+s)).Text;
|
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? |
Re: String in einem Aufruf verwenden...
Zitat:
|
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:
Mit sowas könnte ich das Programm nach meinen Vorstellungen mit einem recht kurzen Quellltext umstetzen...
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; Grüße, abx. |
Re: String in einem Aufruf verwenden...
Hallo abx,
welchen Sinn sollte das haben? statt umständlich
Delphi-Quellcode:
kannst du doch kürzer
FindVariable(s) := 7;
Delphi-Quellcode:
schreiben! Oder?
s:=7
|
Re: String in einem Aufruf verwenden...
Das meine ich nicht ganz. Je nach Fall soll entweder a oder b oder c oder ,,,,,, der Wert 7 zugewiesen werden.
Ich brauche etwas das mir diese Variable sucht. s ist in dem Fall ein String. Ist s := 'f', dann sollte der Variable f der Wert 7 zugewiesen werden. Grüße, abx. |
Re: String in einem Aufruf verwenden...
Auch diese Frage taucht immer wieder auf. Die DP-Suche funktioniert ausgezeichnet, wenn man die richtigen Schlüsselworte kennt. Um die Frage zu beantworten: Da musst du dir selbst einen Mechanismus implementieren. Variablennamen sind im Kompilat nicht mehr zu finden.
|
Re: String in einem Aufruf verwenden...
Wie es ausschaut wäre Ord und Chr vieleicht was für Dich.
|
Re: String in einem Aufruf verwenden...
Wow Blackheart!
Diese Odr und Chr sind ja echt cool. Davor hab ich mir eine Riesenfunktion geschrieben um den nächsten Buchstaeben im Alphabeth zu finden. Diese Funktionen werde ich sehr gut für mein Projekt verwenden können. Aber woher krieg ich denn jetzt sowas wie "FindVariable"? Oder gibt es sowas gar nicht? Grüße, abx. |
Re: String in einem Aufruf verwenden...
Spreche ich so undeutlich? Wenn du es verwenden willst, musst du es selbst schreiben.
|
Re: String in einem Aufruf verwenden...
Sorry. Ich hab deinen Post übersehen.
Ich glaube, dann sind erstmal alle meine Fragen beantwortet. Ihr habt hier echt ein schönes Board! Dann nochmal Danke für die Hilfe, bis die Tage, abx. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 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