Autor Beitrag
bf109g.01
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84



BeitragVerfasst: Di 23.08.11 10:55 
Hallo, ich wusste nicht genau, wie ich den Titel treffender gestalten sollte.
Ich habe folgendes Problem:
Ich habe in meinem Programm folgendes Array mit Records:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
type TFrage = record
                NR   : integer;
                Kateg: Shortstring;
                Frag : Shortstring;
                Ant1, Ant2, Ant3, Ant4, Ant5, Ant6: Shortstring;
                Richtig1, Richtig2, Richtig3, Richtig4, Richtig5, Richtig6:boolean;
                Diffic: integer;
                Loesung: Text;
              end;

var AFragen: array[1..150of TFrage;

Die Werte werden aus einer Eingabemaske übernommen. Um den Programmcode zu raffen, würde ich gerne mit FindComponent und einer Schleife arbeiten, sodass Edit1.text in Array[xy].Ant1, Edit2.text in Array[xy].Ant2 geschrieben wird usw. (Bei den Boolean-Werten per Checkbox).
Jetzt weiß ich aber nicht, wie ich die record-Eigenschaft an der bestimmten Arraystelle per Schleife aufrufen soll. :(
Meine "Versuche" funktionieren natürlich nicht, verdeutlichen aber, was ich vorhabe:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
for I := 1 to 6 do
    if TEdit(FFragen.FindComponent('FrEAnt'+i)).text<>'' then
      AFragen[Stelle].FindComponent('Ant'+i):= TEdit(FFragen.FindComponent('FrEAnt'+i)).text;

  for I := 1 to 6 do
    if TCheckbox(FFragen.FindComponent('FrCBAnt'+i)).checked=true then
      AFragen[Stelle].FindComponent('Richtig'+i):=true;
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Di 23.08.11 11:45 
das Konzept finde ich zwar ungeeignet, aber das dürfte für Dich am nächsten dran sein:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
type TFrage = record
                NR   : integer;
                Kateg: Shortstring;
                Frag : Shortstring;
                Ant :array[1..6of Shortstring;
                Richtig : array[1..6of boolean;
                Diffic: integer;
                Loesung: Text;
              end;


mit

ausblenden Delphi-Quelltext
1:
2:
3:
for I := 1 to 6 do
    if TEdit(FindComponent('FrEAnt'+IntToStr(i))).text<>'' then
      AFragen[Stelle].Ant[i]:= TEdit(FindComponent('FrEAnt'+IntToStr(i))).text;


etc....

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS

Für diesen Beitrag haben gedankt: bf109g.01