Einzelnen Beitrag anzeigen

allshoot

Registriert seit: 14. Feb 2006
Ort: Starnberg
9 Beiträge
 
#20

Re: Probleme beim zuweisen von StringList zu RadioButton

  Alt 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
  Mit Zitat antworten Zitat