Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Liste abarbeiten (https://www.delphipraxis.net/53233-liste-abarbeiten.html)

N47R0N 12. Sep 2005 19:20


Liste abarbeiten
 
hi @ all

ich habe in einer listbox ungefäir 20 verschiedene einträge drinne und möchte das wenn ich auf weiter klicke immer der jeweils näste eintrag in ein edit feld geschrieben wird .

könnte mir jemand sagen wie ich das möglich machen kann?

( sorry ich weiß das das ne dumme frage ist bin halt noch ein anfänger )

Mr_G 12. Sep 2005 19:39

Re: Liste abarbeiten
 
Du machst dir einfach eine Zählvariable und wenn du auf "Weiter" klickst wir diese um 1 erhöht falls der neue Wert nicht über der Anzahl der Einträge in der Listbox ist. Dann brauchst du nur noch das Element mit dem Index der Zählvariable ins Edit schreiben...

N47R0N 12. Sep 2005 19:42

Re: Liste abarbeiten
 
kannste mir bitte nen beispiel machen ( bin total neu :-D )

100nF 12. Sep 2005 19:42

Re: Liste abarbeiten
 
hi,

Delphi-Quellcode:
if (listbox1.itemindex <> -1) and (listbox1.itemindex < listbox1.items.count) then
edit1.text := listbox1.items.strings[listbox1.itemindex+1]
else
edit1.text := '';
habs nicht getestet, sollte aber laufen

gruss
urbanbruhin

N47R0N 12. Sep 2005 19:58

Re: Liste abarbeiten
 
danke erstma .

ich habe das teil nu mit ner Listbox ausgestattet und meine daten darin aufgelistet dann hab ich deinen code in die onKlick funktion von einem button integriert dat funst aber net

Luckie 12. Sep 2005 20:07

Re: Liste abarbeiten
 
Zitat:

Zitat von N47R0N
funst aber net

Dat is keene hilfreiche Fäählerbeschreibung. :wall:

Mr_G 12. Sep 2005 20:07

Re: Liste abarbeiten
 
Das was urbanbruhin geschrieben hat könnte dein Problem vielleicht etwas einfacher lösen: Er lässt das makierte Elemet anzeigen.
Wobei
Zitat:

and (listbox1.itemindex < listbox1.items.count)
hätte man doch auch weglassen können, oder?

So wie du es beschrieben hast könnte man es vielleicht so umsetzen:
Delphi-Quellcode:
...
type
  TForm1 = class(TForm)
    ListBox: TListBox;
    ButtonWeiter: TButton;
    Edit: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure ButtonWeiterClick(Sender: TObject);
  private
    { Private-Deklarationen }
    Zaehler: Integer;
    procedure GibAus(Sprung: Integer);
  public
    { Public-Deklarationen }
  end;

...

procedure TForm1.GibAus(Sprung: Integer);
begin
  if ((Zaehler + Sprung) < ListBox.Count) and ((Zaehler + Sprung) > -1) then
  begin
    Zaehler := Zaehler + Sprung;
    Edit.Text := ListBox.Items[Zaehler];
  end
  else
    beep;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Zaehler := 0;
end;

procedure TForm1.ButtonWeiterClick(Sender: TObject);
begin
  GibAus(1);
end;
Das sollte so funktionieren wie du willst... Außerdem kannst du mittels GibAus auch beliebig weit vor oder zurückspringen.

P.S.: ... ungetestet ...

100nF 12. Sep 2005 20:08

Re: Liste abarbeiten
 
ich hab jetzt mein code noch etwas geändert, so funktionierts:
Delphi-Quellcode:
if (listbox1.itemindex <> -1) and (listbox1.itemindex < listbox1.items.count) then
begin
  listbox1.ItemIndex := listbox1.itemindex+1;
  edit1.text := listbox1.items.strings[listbox1.itemindex] ;
end
else
edit1.text := '';
Zitat:

Zitat von Mr_G
Wobei
Zitat:

and (listbox1.itemindex < listbox1.items.count)
hätte man doch auch weglassen können, oder?

nein, wenn der itemindex grösser wird als der count, gibts eine fehlermeldung

Luckie 12. Sep 2005 20:09

Re: Liste abarbeiten
 
Und wenn sie leer ist krachts:
Delphi-Quellcode:
if ((Zaehler + Sprung) < ListBox.Count) and ((Zaehler + Sprung) > -1) then

N47R0N 12. Sep 2005 20:14

Re: Liste abarbeiten
 
so alles hinbekommen danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:15 Uhr.
Seite 1 von 2  1 2      

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