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 vom HTML-Formular in Delphi nachbauen (https://www.delphipraxis.net/141647-listbox-vom-html-formular-delphi-nachbauen.html)

RWarnecke 13. Okt 2009 10:42


Listbox vom HTML-Formular in Delphi nachbauen
 
Hallo zusammen,

wenn ich folgenden Code in einem HTML-Formular habe :
Code:
<select name="test" multiple="multiple" size="4">
  <option value="100">Eintrag 1</options>
  <option value="101">Eintrag 2</options>
  <option value="102">Eintrag 3</options>
  <option value="103">Eintrag 4</options>
</select>
Wie kann ich jetzt diese Listbox in einem Delphi-Programm nachbauen ? Bei der einfachen Listbox habe ich keine Möglichkeit gefunden. Wenn es irgendwie geht, würde ich gerne den Einsatz von Fremdkomponenten vermeiden.

Andreas L. 13. Okt 2009 10:57

Re: Listbox vom HTML-Formular in Delphi nachbauen
 
Wo ist da ein Unterschied zur TListBox? Geht es dir ums Multi-Select? Da hat die ListBox die Eigenschaft MultiSelect.

EDIT: Oder meinst du das zu jedem Eintrag noch ein Wert existiert? Geht z. B. so:
Delphi-Quellcode:
var
  Index: Integer;
begin
  Index := ListBox1.Items.Add('Eintrag 1');
  ListBox1.Items.Objects[Index] := TObject(100);
end;

RWarnecke 13. Okt 2009 11:17

Re: Listbox vom HTML-Formular in Delphi nachbauen
 
Zitat:

Zitat von Andreas L.
EDIT: Oder meinst du das zu jedem Eintrag noch ein Wert existiert? Geht z. B. so:
Delphi-Quellcode:
var
  Index: Integer;
begin
  Index := ListBox1.Items.Add('Eintrag 1');
  ListBox1.Items.Objects[Index] := TObject(100);
end;

Das ist genau nachdem ich gesucht habe. Das ich jedem Eintrag in der Listbox noch einen Wert zuweisen kann. Kann ich dann später auch wieder auf diesen Wert zugreifen, bei Auswahl des entsprechenden Eintrags ? Wenn ja wie ?

schlecki 13. Okt 2009 11:20

Re: Listbox vom HTML-Formular in Delphi nachbauen
 
Zitat:

Zitat von RWarnecke
Zitat:

Zitat von Andreas L.
EDIT: Oder meinst du das zu jedem Eintrag noch ein Wert existiert? Geht z. B. so:
Delphi-Quellcode:
var
  Index: Integer;
begin
  Index := ListBox1.Items.Add('Eintrag 1');
  ListBox1.Items.Objects[Index] := TObject(100);
end;

Das ist genau nachdem ich gesucht habe. Das ich jedem Eintrag in der Listbox noch einen Wert zuweisen kann. Kann ich dann später auch wieder auf diesen Wert zugreifen, bei Auswahl des entsprechenden Eintrags ? Wenn ja wie ?

In diesem Beispiel dann mit

Delphi-Quellcode:
var
  wert: Integer;

wert := Integer(ListBox1.Items.Objects[Index]);

RWarnecke 13. Okt 2009 11:34

Re: Listbox vom HTML-Formular in Delphi nachbauen
 
Danke erstmal euch beiden für die schnellen Antworten. Nur eines verstehe ich noch nicht ganz, was läuft da im Hintergrund ab ? Was macht der Befehl Integer im Grunde mit meinem Object ?

schlecki 13. Okt 2009 14:37

Re: Listbox vom HTML-Formular in Delphi nachbauen
 
Zitat:

Zitat von RWarnecke
Danke erstmal euch beiden für die schnellen Antworten. Nur eines verstehe ich noch nicht ganz, was läuft da im Hintergrund ab ? Was macht der Befehl Integer im Grunde mit meinem Object ?

Das ist ein Cast ;)
Der macht erstmal gar nix. Du sagst an der Stelle nur, "Ich weiß, da ist ein Integer und nichts anderes"; und wenn doch mal was anderes da ist, dann kracht es bestenfalls :D

Wenn du schreibst:

Delphi-Quellcode:
  Listbox1.Items.Objects[Index] := TObject(5);
Hier wird kein Objekt erzeugt. Du schreibst da einfach eine 5 hin und sagst dem Compiler, da sei ein TObject. Umgekehrt ist es genauso.

RWarnecke 13. Okt 2009 14:48

Re: Listbox vom HTML-Formular in Delphi nachbauen
 
Danke für Deine Erklärung, wenn ich das soweit richtig verstanden habe, könnte ich auch hergehen und das gleiche mit einem String oder einem anderen Typ machen oder ?

uligerhardt 13. Okt 2009 14:55

Re: Listbox vom HTML-Formular in Delphi nachbauen
 
Zitat:

Zitat von RWarnecke
Danke für Deine Erklärung, wenn ich das soweit richtig verstanden habe, könnte ich auch hergehen und das gleiche mit einem String oder einem anderen Typ machen oder ?

Nö. Nur mit Typen, die ohne Verrenkungen in 32 Bit passen, also Zeiger, Integer <= 32bit, Enum-Typen, (Ansi)Char...

String würde ich nicht probieren: Ein String ist zwar eigentlich auch nur ein Zeiger, aber halt mit Compiler magic drumrum, so dass das Ganze ziemlich frickelig wird.

RWarnecke 13. Okt 2009 15:16

Re: Listbox vom HTML-Formular in Delphi nachbauen
 
Ok, jetzt habe ich es verstanden. Das hat mir sehr weitergeholfen. Danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 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