Autor Beitrag
ZeroJoker
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 24.03.06 15:20 
Hallo,

ich bin ein Neuling in Delphi und brächte eine Hilfestellung bei folgendem Problem:


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
type
  VArray= Array [1..6of integer;
...

procedure TForm1.Bu_StartClick(Sender: TObject);
var i:integer;
    tipp:VArray;
begin
  for i:= 1 to 6 do
  Tipp[i]:=form1.spinedit(>><<).value;
  end;
end;


Ich möchte, dass an der Stelle (>><<) die Variable i eingesetzt wird, sodass im 1. Schleifendurchlauf Spinedit1.value ansgelesen wird, im 2. Duchlauf dann Spinedit2.value,...


Ist das möglich?



Danke

ZeroJoker

Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt
Moderiert von user profile iconTino: B- durch Highlight-Tags ersetzt
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Fr 24.03.06 15:25 
Schau dir mal FindComponent(); an ;)


greetz

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
ZeroJoker Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 24.03.06 16:20 
Hi,

danke schonmal, brauche aber nochmal Hilfe.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Bu_StartClick(Sender: TObject);
var i:integer;
    tipp:VArray;
    spineditname:string;
begin
  spineditname:='Spinedit'+inttostr(i);
  for i:= 1 to 6 do
  begin
  Tipp[i]:=strtoint (form1.FindComponent(spineditname)as TSpinEdit.value);
  end;
end;


Ich bekomme als Fehlermeldung: "Methodenbezeichner erwartet".


Danke

ZeroJoker

Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt
Waldteufel
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 24.03.06 16:42 
Hi ZeroJoker. :wave:

Ich bin mir nicht sicher, aber vielleicht klappts, wenn du noch eine Klammer um den As-Ausdruck setzt.
Außerdem solltest du das setzen von spineditname in die Schleife verschieben, da spineditname sonst immer 'Spinedit0' enthält.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Bu_StartClick(Sender: TObject);
var
  i : integer;
  tipp : VArray;
  spineditname : string;
begin
  for i := 1 to 6 do
  begin
    spineditname := 'Spinedit' + IntToStr(i);
    Tipp[i] := (Form1.FindComponent(spineditname) as TSpinEdit).Value;
  end;
end;


Edit@Born-To-Frag: :oops: Das kommt davon, wenn man vor dem Posten nicht in die Onlinehilfe schaut... :oops: Habs korrigiert.


Zuletzt bearbeitet von Waldteufel am Fr 24.03.06 17:04, insgesamt 1-mal bearbeitet
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Fr 24.03.06 16:54 
user profile iconWaldteufel hat folgendes geschrieben:
Hi ZeroJoker. :wave:

Ich bin mir nicht sicher, aber vielleicht klappts, wenn du noch eine Klammer um den As-Ausdruck setzt.
Außerdem solltest du das setzen von spineditname in die Schleife verschieben, da spineditname sonst immer 'Spinedit0' enthält.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Bu_StartClick(Sender: TObject);
var
  i : integer;
  tipp : VArray;
  spineditname : string;
begin
  for i := 1 to 6 do
  begin
    spineditname := 'Spinedit' + IntToStr(i);
    Tipp[i] := StrToInt((Form1.FindComponent(spineditname) as TSpinEdit).value);
  end;
end;


Stimmt auch nicht nicht ganz:

Value ist schon ein Integer, also ist StrToInt(); überflüssig ;)

Wenn du es in eine Zeile schreiben willst kannst du auch

ausblenden Delphi-Quelltext
1:
2:
  for i := 1 to 6 do
    Tipp[i] := TSpinEdit(Form1.FindComponent('SpinEdit' + IntToStr(i))).Value;


schreiben.. mit As geht natürlich auch in eine Zeile ..

@Waldteufel: Wenn er i ganz oben schreibt ist i nicht unbedingt 0 ;)


greetz

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
ZeroJoker Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 24.03.06 17:27 
Hi,

japs, geht wunderbar, ich danke für die schnelle Hilfe.



Danke

ZeroJoker