AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String in einem Aufruf verwenden...

Offene Frage von "abx"
Ein Thema von abx · begonnen am 16. Feb 2008 · letzter Beitrag vom 16. Feb 2008
Antwort Antwort
Seite 1 von 2  1 2      
abx

Registriert seit: 16. Feb 2008
8 Beiträge
 
#1

String in einem Aufruf verwenden...

  Alt 16. Feb 2008, 01:14
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.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: String in einem Aufruf verwenden...

  Alt 16. Feb 2008, 01:34
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
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#3

Re: String in einem Aufruf verwenden...

  Alt 16. Feb 2008, 13:31
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: String in einem Aufruf verwenden...

  Alt 16. Feb 2008, 14:33
Oder ein StringGrid
Markus Kinzler
  Mit Zitat antworten Zitat
Tumm

Registriert seit: 17. Jun 2006
Ort: Celle
171 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: String in einem Aufruf verwenden...

  Alt 16. Feb 2008, 14:39
TLabel(FindComponent('Label' + s)).Caption := 'Hallo Welt'; Dabei S für deinen String.

Und natürlich herzlich Willkommen in der DP !
Code Gear = Kot Gier
  Mit Zitat antworten Zitat
abx

Registriert seit: 16. Feb 2008
8 Beiträge
 
#6

Re: String in einem Aufruf verwenden...

  Alt 16. Feb 2008, 14:58
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.
  Mit Zitat antworten Zitat
Tumm

Registriert seit: 17. Jun 2006
Ort: Celle
171 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: String in einem Aufruf verwenden...

  Alt 16. Feb 2008, 15:05
Zitat:
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:

a := TEdit(FindComponent('Edit'+s)).Text; Daran liegt es allerdings nicht (denke ich). Guck doch nochmal nach ob in dem Edit wirklich was drinsteht !
Code Gear = Kot Gier
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#8

Re: String in einem Aufruf verwenden...

  Alt 16. Feb 2008, 15:11
Nee, daran wird es nicht liegen. Der Code ist schon richtig - es funktioniert!
Sind die Benennungen der beiden Edits / des Labels denn richtig?
Ralph
  Mit Zitat antworten Zitat
Tumm

Registriert seit: 17. Jun 2006
Ort: Celle
171 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: String in einem Aufruf verwenden...

  Alt 16. Feb 2008, 15:17
Zitat:
Daran liegt es allerdings nicht (denke ich)
Code Gear = Kot Gier
  Mit Zitat antworten Zitat
abx

Registriert seit: 16. Feb 2008
8 Beiträge
 
#10

Re: String in einem Aufruf verwenden...

  Alt 16. Feb 2008, 17:49
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:35 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