Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Listboxen auf Edit aufteilen... (https://www.delphipraxis.net/79130-listboxen-auf-edit-aufteilen.html)

Knotti 16. Okt 2006 22:02


Listboxen auf Edit aufteilen...
 
Hallo,

ich versuche schon die ganze Zeit zwei Stringlisten unabhängig von einander, zufallsweise auf gerade und ungerade EditFelder zu verteilen, leider Funktioniert mein Code nicht so wie ich das mir gedacht habe was mach ich falsch? Es sollen alle Einträge egal ob es mehr Mädchen oder Jungen sind gesetzt werden...

Stringliste1 -> ungerade EditFelder
Stringliste2 -> gerade EditFelder

Delphi-Quellcode:
 begin
   E:=TStringList.Create;   //JUNGEN
   E.LoadFromFile(form1.OpenDialog1.FileName);
   E2:=TStringList.Create;  //MAEDCHEN
   E2.LoadFromFile(form1.OpenDialog2.FileName);
   for i:=1 to 30 do //für 30 Edits
    begin
    ID:=Random(E.Count); //Index raussuchen
    ID:=Random(E2.Count); //Index raussuchen
    if E.Count=0 and E2.Count=0 then Break;
    if odd(i)= false then TEdit(FindComponent('Edit'+IntToStr(i))).Text:=E[ID]; //JUNGEN in ungerade Edits
    if odd(i)= true then TEdit(FindComponent('Edit'+IntToStr(i))).Text:=E2[ID]; //Meadchen in gerade Edits
    E.Delete(ID); //Text auf SL löschen
    E2.Delete(ID); //Text auf SL löschen
    form2.caption:= 'Seatplan Designer';
    end;
  E.Free;
  E2.Free;
end;
end;

DennisHB 16. Okt 2006 23:06

Re: Listboxen auf Edit aufteilen...
 
Delphi-Quellcode:
for i:=1 to 30 do //für 30 Edits
begin
    if (E.Count>0) and (odd(i)= false) then begin
        //JUNGEN in ungerade Edits
        ID:=Random(E.Count); //Index raussuchen
        TEdit(FindComponent('Edit'+IntToStr(i))).Text:=E[ID];
        E.Delete(ID); //Text auf SL löschen
    end else if (E2.Count>0) then begin
        //Meadchen in gerade Edits
        ID:=Random(E2.Count); //Index raussuchen
        TEdit(FindComponent('Edit'+IntToStr(i))).Text:=E2[ID];
        E2.Delete(ID); //Text auf SL löschen
    end else
        // Beide Listen sind leer (bzw. ein Mädchen wäre dran aber die Mädchenliste ist leer)
        Break;
end;
Ich weiss ja nicht genau was er machen soll, aber ich denke ein Prob könnte es gewesen sein, das auch wenn ein Junge gewählt wurde, in der Liste der Mädchen gelöscht wurde... zumal die ID für Jungen immer überschrieben wurde.

Knotti 17. Okt 2006 14:04

Re: Listboxen auf Edit aufteilen...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Mit deinem Code bekomm ich leider immer folgenden Fehler..

Der Code sieht jetzt so aus
Delphi-Quellcode:
procedure TForm2.dxButton1Click(Sender: TObject);
var   i, ID:Integer;
begin
  if form6.CheckBox7.Checked then
  begin
  E:=TStringList.Create;   //Datei 1
  E.LoadFromFile(form1.OpenDialog1.FileName);
  E2:=TStringList.Create;  //Datei 2
  E2.LoadFromFile(form1.OpenDialog2.FileName);
  E.AddStrings(E2);        //Zusammenführen
  E2.Free;  //Datei 2 kann weg
  for i:=1 to 30 do //für 24 Edits
    begin
    ID:=Random(E.Count); //Index raussuchen
    if E.Count=0 then Break;
    TEdit(FindComponent('Edit'+IntToStr(i))).Text:=E[ID]; //Text in Edit
    E.Delete(ID); //Text auf SL löschen
    form2.caption:= 'Seatplan Designer';
    end;
  E.Free;
end
else
begin
for i:=1 to 30 do //für 30 Edits
begin
    if (E.Count>0) and (odd(i)= false) then begin
        //JUNGEN in ungerade Edits
        ID:=Random(E.Count); //Index raussuchen
        TEdit(FindComponent('Edit'+IntToStr(i))).Text:=E[ID];
        E.Delete(ID); //Text auf SL löschen
    end else if (E2.Count>0) then begin
        //Meadchen in gerade Edits
        ID:=Random(E2.Count); //Index raussuchen
        TEdit(FindComponent('Edit'+IntToStr(i))).Text:=E2[ID];
        E2.Delete(ID); //Text auf SL löschen
    end else
        // Beide Listen sind leer (bzw. ein Mädchen wäre dran aber die Mädchenliste ist leer)
        Break;
end;
end;
end;
Wenn die Checkbox aktiviert ist werden sie Namen warlos verteilt falls nicht geordnet...


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz