Registriert seit: 14. Feb 2006
Ort: Starnberg
9 Beiträge
|
Re: Probleme beim zuweisen von StringList zu RadioButton
14. Feb 2006, 22:11
Danke ken_jones,
aber nimmt er nicht an, kommt die selbe Fehlermeldung, wenn ich meinen Quellcode so anpasse.
Ist wohl etwas viel Text hier, aber ich poste mal das kompl. Ding:
Delphi-Quellcode:
type
TForm1 = class(TForm)
LbText: TLabel;
Ikreuz: TImage;
BtWeiter: TButton;
LbName: TLabel;
LbDstGrd: TLabel;
LbEinheit: TLabel;
LbTE: TLabel;
EdName: TEdit;
EdDstGrd: TEdit;
EdEinheit: TEdit;
EdTE: TEdit;
LbPK: TLabel;
EdPK: TEdit;
procedure BtWeiterClick(Sender: TObject);
procedure BtSchliessenClick(Sender: TObject);
procedure Lb_change (name : TLabel; Beschriftung : string; l, t, w, h :integer);
{procedure n_RB_create (Anzahl, L, T, Abstand, W, H : integer);}
procedure AntwSpeichern;
procedure FragenLaden;
private
public
Zaehler:integer;
FragenList : tStringlist;
end;
var
Form1: TForm1;
RbAntw: array[0..4] of TRadioButton; // AntwortButtons erstellen
Druckform : String; // Abgelegte Prüfung speichern
Pruefung : TStringList; // Zum abspeichern der eingegeben Daten
implementation
uses UFuGerBed2;
{$R *.DFM}
{---------------------------Laden des Fragekatalogs----------------------------}
procedure TForm1.Fragenladen;
begin
Fragenlist := TStringList.Create;
Fragenlist.LoadFromFile('Fragen.txt');
Fragenlist.SaveToFile('Fragen2.txt');
end;
{---------------------------Abfragen der Radio-Buttons-------------------------}
procedure TForm1.AntwSpeichern;
var
i : integer;
begin
Pruefung.Add(LbText.Caption);
for i := 0 to 4 do
begin
If RbAntw[i].Checked then
begin
Pruefung.Add(RbAntw[i].caption);
Pruefung.Add(' ');
Pruefung.SaveToFile(Druckform);
end;
end;
end;
{{---------------------------Erstellen von n RadioButtons----------------------
procedure TForm1.n_RB_create (Anzahl, L, T, Abstand, W, H : integer);
var
NewButton : TRadioButton;
i : integer;
begin
For i:=0 to ((Anzahl)-1) do
begin
NewButton := TRadioButton.create(Form1);
With NewButton Do
begin
Parent := Form1;
Left := (L);
Top := (T + (i * Abstand));
Width := (W);
Height := (H);
Name := 'RbAntw' + inttostr(i+1);
Caption := 'Antwort' + inttostr(i+1);
visible := true;
end;
end;
end; }
{---------------------------Ändern eines beliebigen Labels---------------------}
procedure TForm1.Lb_change (name : TLabel; Beschriftung : string; l, t, w, h :integer);
begin
with name do
begin
left := (l);
top := (t);
width := (w);
height := (h);
caption := Beschriftung;
end;
end;
{---------------------------Schließen-Knopf------------------------------------}
procedure TForm1.BtSchliessenClick(Sender: TObject);
begin
AntwSpeichern;
pruefung.Free;
close;
end;
{---------------------------Weiter-Knopf---------------------------------------}
procedure TForm1.BtWeiterClick(Sender: TObject);
var
i : integer; // Zählvariable für die Schleifen
begin
if zaehler = 2 then
begin
AntwSpeichern;
Lb_change(LbText, 'Frage 1.274: An welchem Schalter mache ich die Annanas?', 56, 48, 761, 137);
RbAntw[0].caption := 'A'; // --------------------
RbAntw[1].caption := 'B'; //
RbAntw[2].caption := 'C'; // Belegen der Antwortbuttons mit Text!!
RbAntw[3].caption := 'D'; //
RbAntw[4].caption := 'E'; //----------------------
Form2.visible := true;
BtWeiter.Caption := 'Schließen'; //Text auf dem "Weiter"-Button ändern
BtWeiter.OnClick := BtSchliessenClick; //Hier festlegen des neuen Handelns
end; // beim klicken auf den Button
if zaehler=1 then // Eingabeseite Name
begin
Druckform := ((EdName.Text) + '.txt');//Legt Namen der Datei fest
Pruefung := TStringlist.Create; // Erstellen eine TStringList
try
pruefung.Add(LbName.Caption + ' ' + EdName.Text); //----------------
pruefung.Add(LbDstGrd.caption + ' ' + EdDstGrd.Text); //
pruefung.add(LbPK.caption + ' ' + EdPK.Text); //
pruefung.Add(LbEinheit.caption + ' ' + EdEinheit.Text); // Abspeichern der Inhalte
pruefung.Add(LbTE.caption + EdTE.Text); // der Inhalte der Edit-Fenster
pruefung.Add(' '); //
pruefung.Add(' '); //
pruefung.Add(' '); //
pruefung.SaveToFile(Druckform); //----------------
finally
{pruefung.Free; // Löschen der TStringList}
end;
Lb_change(LbText, 'Frage', 56, 48, 761, 137); // Ändern eines beliebigen Labels
LbText.Font.Style := [];
LbName.free; //-------------------------
EdName.free; //
LbDstGrd.free; //
EdDstGrd.free; //
LbPK.free; //
EdPK.Free; //Löschen der Eingabe-Felder
LbEinheit.free; //
EdEinheit.free; //
LBTE.free; //
EdTE.free; //-------------------------
{----------Erstellen der Antwortbuttons----------}
for i := 0 to 4 do
begin
RbAntw[i] := TRadioButton.create(Form1); //Erstellen des jeweiligen Buttons in Array[i]
with RbAntw[i] do
begin
parent := Form1; // Besitzer festlegen
Left := 112; // |
Top := 220+ (i * 70); // |Größe und Position
Width := 601; // |festlegen!
Height := 41; // |
Caption := 'Antw' + inttostr(i+1); // Angezeigter Text zu dem Button festlegen!
end;
end;
inc(zaehler);
end;
if zaehler=0 then //Startseite
begin
Lb_change(LbText, 'Bitte geben sie hier die geforderten Daten ein:', 172, 96, 513, 27); // Ändern eines beliebigen Labels
LbText.Font.Style := [fsunderline]; // Text des Labels wird unterstrichen!!
Ikreuz.free; // Bild mit dem Kreuz löschen
LbName.Visible := true; //----------------------------------------
EdName.Visible := true; //
LbDstGrd.Visible := true; //
EdDstGrd.Visible := true; //
LbPK.visible := true; // Labels + Edits der
EdPK.Visible := true; // Namensabfrage
LbEinheit.Visible := true; // sichtbar machen
EdEinheit.Visible := true; //
LBTE.Visible := true; //
EdTE.Visible := true; //----------------------------------------
inc(zaehler);
end;
end;
end.
Vielleicht (oder bestimmt) erkennt einer den Bug.
THX
allshoot
|
|
Zitat
|