Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Probleme beim zuweisen von StringList zu RadioButton (https://www.delphipraxis.net/63167-probleme-beim-zuweisen-von-stringlist-zu-radiobutton.html)

allshoot 14. Feb 2006 20:37

Re: Anfänger sucht....
 
Ich schätze mal, dass du das hier sehen willst?!:
Delphi-Quellcode:
     
      RbAntw[0].caption := 'A';                    // --------------------
      RbAntw[1].caption := 'B';                    //
      RbAntw[2].caption := 'C';                    // Belegen der Antwortbuttons mit Text!!
      RbAntw[3].caption := 'D';                    //
      RbAntw[4].caption := (Fragenlist.strings[6]); //----------------------
Das zuweisen direkt mit einem String geht, jedoch das mit der Stringlist nicht?????
allshoot

ken_jones 14. Feb 2006 20:48

Re: Anfänger sucht....
 
Die Fragenlist hast du ebenfalls erzeugt?

Alexander Roth 14. Feb 2006 20:51

Re: Anfänger sucht....
 
Also:
- du initialisierst jeden TRadiobutton
- du initialisierst die Stringlist


wie schreibst du denn in die Stringlist? (vielleicht ist es ja das, unwahrscheinlich)

allshoot 14. Feb 2006 20:54

Re: Anfänger sucht....
 
Jap, sie wird geladen und ich kann sie so
Delphi-Quellcode:
    Fragenlist := TStringList.Create;
    Fragenlist.LoadFromFile('Fragen.txt');
    Fragenlist.SaveToFile('Fragen2.txt');
auch wieder abspeichern, ist dann eine genau Kopie davon.

Die Textdatei besteht dann aus einzelnen unterschielich langen Zeilen mit CR und LF.

allshoot

leddl 14. Feb 2006 20:54

Re: Anfänger sucht....
 
Ich möchte gerade noch einmal darauf hinweisen:
Zitat:

Zitat von leddl
Zum ersten: Editiere deinen Post und gib dabei dem Thread einen aussagekräftigen Titel.


allshoot 14. Feb 2006 20:56

Re: Anfänger sucht....
 
Editieren? Habe den Code doch als Code gekennzeichnet, noch mehr??
allshoot

Khabarakh 14. Feb 2006 21:00

Re: Anfänger sucht....
 
Zitat:

Zitat von allshoot
Ich schätze mal, dass du das hier sehen willst?!:

Ich habe die Zeilen gemeint, in denen du die Radiobuttons zuweist (RbAntwort[0] := ...), aber du kannst ja sonst auf sie zugreifen, daran sollte es doch nicht liegen. Versuchsweise kannst du auch mal die Bereichsprüfung anschalten.

leddl 14. Feb 2006 21:01

Re: Anfänger sucht....
 
Zitat:

Zitat von allshoot
Editieren? Habe den Code doch als Code gekennzeichnet, noch mehr??
allshoot

Es geht nicht um irgendwelchen Code (obwohl du den in deinem ersten Post natürlich auch noch in Delphi-Tags packen könntest :stupid:), sondern um den Titel dieses Threads. "Anfänger sucht..." ist nicht besonders aussagekräftig, aber genau das ist hier für einen Threadtitel Pflicht. ;) Also mach das doch bitte einfach. Wie Chäffe sagen würde: "Es wäre zuckersüß von dir, wenn du jetzt noch den Titel anpassen könntest" :mrgreen:

ken_jones 14. Feb 2006 21:02

Re: Anfänger sucht....
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Fragenlist : TStringlist;
  RbAntw    : Array[0..4] of TRadioButton;
  ii        : Integer;
begin
  For ii := Low(RbAntw) to High(RbAntw) do
    RbAntw[ii] := TRadioButton.Create(Form1);
  Fragenlist := TStringList.Create;
  Fragenlist.LoadFromFile('C:\Fragen.txt');
  Fragenlist.SaveToFile('C:\Fragen2.txt');
  try
    RbAntw[0].Caption := 'A';
    RbAntw[1].Caption := 'B';
    RbAntw[2].Caption := 'C';
    RbAntw[3].Caption := 'D';
    RbAntw[4].Caption := Fragenlist.Strings[6];
  finally
    Fragenlist.Free;
    For ii := Low(RbAntw) to High(RbAntw) do
      (RbAntw[ii] as TRadioButton).Free;
  end;
end;
Funktioniert einwandfrei...

allshoot 14. Feb 2006 21:11

Re: Probleme beim zuweisen von StringList zu RadioButton
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:34 Uhr.
Seite 2 von 3     12 3      

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