AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

zusatzinformationen in tlistbox

Ein Thema von eric - the master · begonnen am 26. Apr 2009 · letzter Beitrag vom 30. Apr 2009
Antwort Antwort
Seite 1 von 2  1 2      
eric - the master

Registriert seit: 15. Mär 2009
Ort: Radeberg
6 Beiträge
 
#1

zusatzinformationen in tlistbox

  Alt 26. Apr 2009, 19:47
Hallo,
ich möchte gerne einen array
Delphi-Quellcode:
type ttest = record //verbund
        wert1: string[50];
        wert2: string[50];
        wert3: string[60];
    
end;
 tttest = array[1..800] of ttest;


public
    myarray : tttest;
in einer listbox ausgeben. Die Werte sollen dann mit einem Klick auf die entsprechende zeile bearbeitet werden können.

Delphi-Quellcode:
Form1.Ausgabe.items.add ( myarray[1].wert1) ; //in listbox eintragen
Form1.Ausgabe.items.add ( myarray[1].wert2) ;
Form1.Ausgabe.items.add ( myarray[1].wert3) ;
Form1.Ausgabe.items.add ( myarray[2].wert1) ;
...
dazu muss ich an die einzelnen items zusätzliche (für den Nutzer unsichtbare)Informationen anhängen z.B. den index des arrays und wieder auslesen können. Ich hab schon viel im Internet rumgesucht und ich hab auch schon die Suchfunktion benutzt aber keine hilfreichen Infos gefunden. Da schreibt man das es mit addobject irgentwie geht aber ich komme damit nicht so richtig klar. Ich bin noch Änfänger also bitte nicht ganz so chinesisch^^. Thx
------------------------------------------------------------------------------


my webpage(noch in arbeit): erickaden.funpic.de
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: zusatzinformationen in tlistbox

  Alt 26. Apr 2009, 19:54
Häng die Informationen als Objekt an die Listboxeintäge an mit der Methode AddObject. Zum Beispiel so: http://www.michael-puff.de/Developer...ddObject.shtml
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
eric - the master

Registriert seit: 15. Mär 2009
Ort: Radeberg
6 Beiträge
 
#3

Re: zusatzinformationen in tlistbox

  Alt 26. Apr 2009, 20:04
ja aber ich sehe da nicht so ganz durch

kann mir einer das in einer verständlichen Sprache erklären wie man einen unsichtbaren string an ein item hängt??? Und dann auch wieder liest??
Bitte

Da ich es schon wieder sehe was bedeutet dieses zeichen ^ in delphi??

MFG eric
------------------------------------------------------------------------------


my webpage(noch in arbeit): erickaden.funpic.de
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: zusatzinformationen in tlistbox

  Alt 26. Apr 2009, 20:38
Das was Luckie da mit den ^ fabriziert hat, das ist IMHO zuviel des guten. ^^ Rest steht in der Hilfe :

Zitat:
Für dieses Beispiel werden eine TListView-, eine TImageList- und eine TComboBox-Komponente benötigt. Sie müssen vor dem Start des Projekts auf die Bilderliste doppelklicken und mehrere Bilder einfügen. Sie können dazu die Grafikdateien (*.BMP oder *.ICO) im Verzeichnis \IMAGES\ICONS verwenden.
In der Behandlungsroutine für das Ereignis OnCreate des Formulars wird für jedes Element in der Bilderliste ein Eintrag in die Listenansicht eingefügt. Es werden zwei Spalten erstellt, so dass eine Spaltenansicht verfügbar ist, wenn ViewStyle auf vsReport gesetzt wird.

In der Ereignisbehandlungsroutine werden dem Kombinationsfeld auch die vier möglichen TViewStyle-Konstanten zugewiesen. Dies könnte auch einfach in einer Folge von Ereignisbehandlungsroutinen für OnClick durchgeführt werden, etwa in der Form ListView1.ViewStyle := vsIcon.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  I: Integer;
  ListItem: TListItem;
  NewColumn: TListColumn;
begin
  // ListView-Eintrag für jede Grafik in Bilderliste erstellen
  with ListView1 do
  begin
    SmallImages := ImageList1;
    LargeImages := ImageList1;
    for I := 0 to ImageList1.Count - 1 do
    begin
      ListItem := Items.Add;
      Listitem.Caption := 'Image' + IntToStr(I);

      ListItem.ImageIndex := I;
    end;
    // Zwei Spalten für Anzeigemodus vsReport erstellen
    NewColumn := Columns.Add;
    NewColumn.Caption := 'Column 1';
    NewColumn := Columns.Add;
    NewColumn.Caption := 'Column 2';
    // Ansichtsstile und Konstanten zu Kombinationsfeld hinzufügen
    ComboBox1.Items.AddObject('vsIcon', TObject(vsIcon));
    ComboBox1.Items.AddObject('vsList', TObject(vsList));
    ComboBox1.Items.AddObject('vsReport', TObject(vsReport));

    ComboBox1.Items.AddObject('vsSmallIcon', TObject(vsSmallIcon));
    // Erstes Element in Kombinationsfeld anzeigen
    ComboBox1.ItemIndex := 0;
  end;
end;

procedure TForm1.ComboBox1Click(Sender: TObject);
begin
  with ComboBox1 do
    ListView1.ViewStyle := TViewStyle(Items.Objects[ItemIndex]);
end;
Gruß
Hansa
  Mit Zitat antworten Zitat
eric - the master

Registriert seit: 15. Mär 2009
Ort: Radeberg
6 Beiträge
 
#5

Re: zusatzinformationen in tlistbox

  Alt 27. Apr 2009, 21:03
Ich möchte ja eigentlich keine Bilder einfügen sondern nur einen kurzen String, ich kann mir nicht vorstellen das das so komplexx ist.


Erstmal danke für eure Antworten
------------------------------------------------------------------------------


my webpage(noch in arbeit): erickaden.funpic.de
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#6

Re: zusatzinformationen in tlistbox

  Alt 27. Apr 2009, 21:31
das ist es auch nicht ...

Delphi-Quellcode:
procedure TfoTest11.FormShow(Sender:TObject);
var i : Integer;
    Str : String;
begin
  for i:=0 to 9 do begin
   Str:='hihihihi';
   Listbox1.Items.AddObject('Hallo'+IntToStr(i),Pointer(Str))
   end;

end;

procedure TfoTest11.ListBox1DblClick(Sender:TObject);
begin
  ShowMessage(String(Listbox1.Items.Objects[Listbox1.ItemIndex]))
end;
Ralph
  Mit Zitat antworten Zitat
eric - the master

Registriert seit: 15. Mär 2009
Ort: Radeberg
6 Beiträge
 
#7

Re: zusatzinformationen in tlistbox

  Alt 27. Apr 2009, 22:04
okay danke leute für eure bemühungen!!!!
taaktaak ich werd das morgen gleich mal ausprobieren! Ich sag euch dann bescheid. Heute ist zu spät.


thx

hauta wa
------------------------------------------------------------------------------


my webpage(noch in arbeit): erickaden.funpic.de
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: zusatzinformationen in tlistbox

  Alt 27. Apr 2009, 22:08
Taaktaak: Was geht denn wie nicht ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: zusatzinformationen in tlistbox

  Alt 28. Apr 2009, 01:04
Hallo eric – the master,

man kann das auch mit einem Object lösen.

Zuerst das Object:

Delphi-Quellcode:
unit uListBoxObjectClass;

interface

uses
  Classes;

type
  Ttest= Class(TObject)
  private
    FWert1: String;
    FWert2: String;
    FWert3: String;
    procedure GetFWerte1(const Value: String);
    procedure GetFWerte2(const Value: String);
    procedure GetFWerte3(const Value: String);
    function SetFWert1: String;
    function SetFWert2: String;
    function SetFWert3: String;
  public
    constructor Create();
    destructor Destroy; override;
    property Wert1: String Read SetFWert1 write GetFWerte1;
    property Wert2: String Read SetFWert2 write GetFWerte2;
    property Wert3: String Read SetFWert3 write GetFWerte3;
  End;

implementation

{ Ttest }

constructor Ttest.Create;
begin
  inherited Create;
end;

destructor Ttest.Destroy;
begin
  inherited;
end;

procedure Ttest.GetFWerte1(const Value: String);
begin
  if Value<>FWert1 then
  begin
    FWert1:= Value;
  end;
end;

procedure Ttest.GetFWerte2(const Value: String);
begin
  if Value<>FWert2 then
  begin
    FWert2:= Value;
  end;
end;

procedure Ttest.GetFWerte3(const Value: String);
begin
  if Value<>FWert3 then
  begin
    FWert3:= Value;
  end;
end;

function Ttest.SetFWert1: String;
begin
  Result:= FWert1;
end;

function Ttest.SetFWert2: String;
begin
  Result:= FWert2;
end;

function Ttest.SetFWert3: String;
begin
  Result:= FWert3;
end;

end.
Und jetzt das Hauptprogramm:

Delphi-Quellcode:
unit frmListBox;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, uListBoxObjectClass;

type
  TForm3 = class(TForm)
    ListBox1: TListBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    Edit4: TEdit;
    procedure ListBox1Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    Test: TTest;
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
var
  strText: String;
begin
  Test:= TTest.Create; // Object erstellen
  Test.Wert1:= Edit1.Text; // Text im Object ablegen
  Test.Wert2:= Edit2.Text;
  Test.Wert3:= Edit3.Text;
  strText:= Edit4.Text;
  ListBox1.AddItem(strText, Test); // In die Listbox
end;

procedure TForm3.FormDestroy(Sender: TObject);
var
  I: Integer;
begin
   for i:= ListBox1.Count - 1 downto 0 do
   begin
     Test:= TTest(ListBox1.Items.Objects[i]);
     if Test<>NIL then
     begin
       freeAndNil(Test);
     end;
   end
end;

procedure TForm3.ListBox1Click(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to ListBox1.Count - 1 do
  begin
    if ListBox1.Selected[i] then
    begin
      Edit1.Clear;
      Edit2.Clear;
      Edit3.Clear;
      Edit1.Text:= TTest(ListBox1.Items.Objects[i]).Wert1;
      Edit2.Text:= TTest(ListBox1.Items.Objects[i]).Wert2;
      Edit3.Text:= TTest(ListBox1.Items.Objects[i]).Wert3;
    end;
  end;
end;

end.
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#10

Re: zusatzinformationen in tlistbox

  Alt 28. Apr 2009, 06:45
Moin, Moin.
@Hansa: War wohl irreführend

Eric schrieb:
Zitat:
ich kann mir nicht vorstellen das das so komplexx ist
meine Antort war:
Zitat:
das ist es auch nicht ...
PS: Den String 10x in der Schleife zu belegen ist natürlich ziemlich dämlich. Aber die grundsätzliche Vorgehensweise sollte trotzdem deutlich werden. Alle anderen Lösungen sind ja recht umfangreich und scheinen eher zu verwirren. Aufgabe ist doch lediglich einen String "unsichtbar" mit einem Listboxeintrag zu verknüpfen?!
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:15 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