Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ListBox & Edit (https://www.delphipraxis.net/76585-listbox-edit.html)

CorsaGsi16v 6. Sep 2006 16:25


ListBox & Edit
 
Hallo,
habe in einer ListBox einige Strings. Beim Anklicken eines Strings soll dieser zerteilt werden und auf die memos aufgeteilt werden. So z.B.

1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9

Jetzt soll das Item in 9Edits aufgeteilt werden wobei die Zahlen hier im Programm durch Wörter ersetzt sind und nicht immer gleich lang sind!

Also das soll dann im Endeffekt herauskommen:

Edit1.Text := '1';
Edit2.Text := '2';
...
Edit9.Text := '9';

Ich habe schon einige Sachen ausprobiert komme aber nicht drauf wie ich das umsetzen muss!

Kann mir jemand behilflich sein?

MfG
Christian

Danke schon mal für die Hilfe...

Neutral General 6. Sep 2006 16:38

Re: ListBox & Edit
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender:TObject);
var i: Integer;
begin
 for i:= 0 to ListBox1.Items.Count-1 do
 begin
   (FindComponent('Edit' + IntToStr(i+1) as TEdit).Text := ListBox1.Items[i];
 end;
end;
So müsste es gehn. Vorraussetzung: Es muss so viele Edits geben wie es Einträge in der ListBox gibt!

Gruß
Neutral General

CorsaGsi16v 6. Sep 2006 17:21

Re: ListBox & Edit
 
danke.. aber nicht falsch verstehen ich will wenn ich auf irgendein item in der ListBox klicke das den inhalt...

1 _ 2 _ 3 _ 4 _ 5 _ 6 _ 7 _ 8 _ 9

hat, den inhalt dieser einen Zeile auf die 9 vorhandenen Edits aufteilen!


MfG
Christian

Neutral General 6. Sep 2006 17:28

Re: ListBox & Edit
 
Ach so.. ups :oops:
Moment muss mal überlegen :)

Gruß
Neutral General

Neutral General 6. Sep 2006 17:39

Re: ListBox & Edit
 
Delphi-Quellcode:
procedure TForm1.ListBox1Click(Sender: TObject);
var i: Integer;
    tmp: String;
begin
  i:= 1;
  tmp := ListBox1.Items[ListBox1.ItemIndex] + '_';
  repeat
    if FindComponent('Edit' + IntToStr(i) = nil then exit;
    (FindComponent('Edit' + IntToStr(i)) as TEdit).Text := copy(tmp,1,pos('_',tmp)-1);
    delete(tmp,1,pos('_',tmp));
    inc(i);
  until Length(tmp) = 0;
end;
Ich habe fertig :)

Gruß
Neutral General

hoika 6. Sep 2006 17:40

Re: ListBox & Edit
 
Hallo,

in ListBox.Items[ListBox.ItemIndex]; steht der String.

Ich würde ne TStringList benutzen mit Delemiter und DelimitedText

also
Delphi-Quellcode:
var
  SL: TStringList;
  iWord: Integer;
  Edit: TEdit;
  iEdit: Integer;
begin
  for iEdit:= 1 to 9 do
  begin
    Edit:= FindComponent('Edit'+IntToStr(iEdit));
    if Edit<>NIL then Edit.Text:= '';
  end;

  SL:= TStringList.Create;
  try
    SL.Delimiter:= ' '; // Leerzeichen
    SL.DelimitedText:= ListBox.Items[ListBox.ItemIndex];

    for iWord:= 0 to SL.Count-1 do
    begin
      if iWord>8 then break; // bis 9 hattest du gesagt ?
                             // wir beginnen bei 0 ...

      Edit:= FindComponent('Edit'+IntToStr(iWord+1));
      if Edit<>NIL then
      begin
        Edit.Text:= SL[iWord];
      end;
    end;
  finally
    SL.Free;
  end;
end;
Heiko

CorsaGsi16v 6. Sep 2006 19:13

Re: ListBox & Edit
 
Ihr seid die besten DANKE!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:37 Uhr.

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