Thema: Delphi AddObjekt problem

Einzelnen Beitrag anzeigen

Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#9

Re: AddObjekt problem

  Alt 17. Feb 2005, 08:02
Zitat von Red_Dragon:
mir ist einfach nicht begreifbar wie ich das mit den objekten regeln soll
Der einfachste Weg ist wohl eine Dateiliste (TStringList) anzulegen. Dort fügst du dann den Dateinamen hinzu. In deiner visuellen Anzeige (z.B. TListBox) benutzt du AddObject und missbrauchst diese Funktion. Anstatt ein Objekt zu übergeben, gibt du die Position von deinem Dateinamen in der Dateiliste an. In der Praxis könnte das z.B. so aussehen:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ListBox1DblClick(Sender: TObject);
  private
    { Private-Deklarationen }
    FileList: TStringList;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  FileList := TStringList.Create;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FileList.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Position: Integer;
begin
  if OpenDialog1.Execute then
  begin
    Position := FileList.Add(OpenDialog1.FileName);
    ListBox1.Items.AddObject(ExtractFileName(OpenDialog1.FileName), TObject(Position));
  end;
end;

procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
  ShowMessage(FileList.Strings[ListBox1.ItemIndex]);
end;

end.
In der ListBox steht nur der Dateiname, ohne den Pfad. Bei einem doppelklick auf die ListBox wird der vollständige Dateiname aus der Dateiliste ausgelesen und in einer MessageBox angezeigt.

Die andere Möglichkeit wäre die, die Muetze1 schon angesprochen hat.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat