Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Link in ListBox und TTreeview ! (https://www.delphipraxis.net/112759-link-listbox-und-ttreeview.html)

Nuclear-Ping 26. Apr 2008 18:17

Re: Link in ListBox und TTreeview !
 
Objekt-Beispiel:
Delphi-Quellcode:
type
  TMyLink = record
    Name,
    URL: String;
  end;
  PMyLink = ^TMyLink;

// ...

procedure TForm1.FormCreate(...);
var
  Data: PMyLink;
begin
  New (Data);
  Data^.Name := 'Google';
  Data^.URL := 'www.google.de';
  ListBox1.AddItem (Data^.Name, Integer (Data));

  New (Data);
  Data^.Name := 'AOL';
  Data^.URL := 'www.aol.de';
  ListBox1.AddItem (Data^.Name, Integer (Data));
 
  // ...
end;

procedure TForm1.FormDestroy(...);
var
  Data: PMyLink;
  i: Integer;
begin
  for i := ListBox1.Items.Count - 1 downto 0 do
    begin
      Data := PMyLink (ListBox1.Items.Objects[i]);
      Dispose (Data);
    end;
end;

procedure TForm1.ListBox1DblClick(Sender: TObject);
var
  i: Integer;
  Data: PMyLink;
begin
  i := ListBox1.ItemIndex;
  if (i < 0) then
    Exit;
  Data := PMyLink (ListBox1.Items.Objects[i]);
  Webbrowser1.Navigate('http://' + Data^.URL);
end;
... ungetestet.

Delphiturbo 26. Apr 2008 18:40

Re: Link in ListBox und TTreeview !
 
Fehler in 2. Linie
Delphi-Quellcode:
  Data^.URL := 'www.google.de';
  ListBox1.AddItem (Data^.Name, Integer (Data)); // incompatible Types : Object and Integer !
Aber bis jetzt ist dieser Vorschlag diese Lösung :
Delphi-Quellcode:
procedure TForm1.ListBox1DblClick(Sender: TObject);
var
I:Integer;
begin
i := ListBox1.ItemIndex;
Webbrowser1.Navigate(ListBox2.Items.Strings[i]);
end;
Wie kann ich diesen Trik in TTreeview machen ?
In TTreeview gibt es leider Parent und Child.

Wie soll der Code oben sein, wenn ich statt ListBox, einen TTreeview nehme
Was mir bei TTreeview gefäht, man kann Icons dazu verwenden
http://users.iafrica.com/d/da/dart/D...ics/Levels.gif
Oder kann man auch bei ListBox genauso Icons hinzufügen ?

Nuclear-Ping 26. Apr 2008 21:51

Re: Link in ListBox und TTreeview !
 
1.)
Delphi-Quellcode:
Data^.URL := 'www.google.de';
ListBox1.AddItem (Data^.Name, TObject (Data));
2.)
Im Grunde kannst du alles in alles zeichnen, auch Bilder in eine TListBox, wenn du es per "OwnerDraw" machst. Kann aber recht umständlich für einen Anfänger sein. Such mal danach, Google oder so. TListBox Owner Draw.

Delphiturbo 27. Apr 2008 12:48

Re: Link in ListBox und TTreeview !
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ist ein gutes Beispiel mit Source
aber der Inhalt in ListBox nach Compilieren wird nicht angezeigt, sondern nur die Icons und Bilder-Namen (sehe) Anhang vor und nach Compilieren :
http://www.greatis.com/delphicb/tips...ckgraphic.html

Woran kan das Liegen !?

Nuclear-Ping 27. Apr 2008 13:22

Re: Link in ListBox und TTreeview !
 
Hat das jetzt noch was mit dem ursprünglichen Thema zu tun? Scheint mir nich so. ;) Mach bitte einen neuen Thread auf. Neue Frage -> Neuer Thread. Auch müßte dir die SuFu und Google zum Thema ListBox, TreeView und OwnerDraw einiges ausspucken.

Delphiturbo 27. Apr 2008 15:59

Re: Link in ListBox und TTreeview !
 
Es funktioniert sehr gut, Danke !

aber es stimmt was nicht mit Ondestroy :
Delphi-Quellcode:
procedure TForm1.FormDestroy(Sender: TObject);
var
  //Data: PMyLink; // !!!
  Data: TObject; // so geändert
  i: Integer;
begin
  for i := ListBox1.Items.Count - 1 downto 0 do
    begin
      Data := ListBox1.Items.Objects[i];
      Dispose (Data); // incompatibl Types
    end;
end;

Nuclear-Ping 27. Apr 2008 16:03

Re: Link in ListBox und TTreeview !
 
Delphi-Quellcode:
procedure TForm1.FormDestroy(...);
var
  Data: PMyLink;
  i: Integer;
begin
  for i := ListBox1.Items.Count - 1 downto 0 do
    begin
      Data := PMyLink (ListBox1.Items.Objects[i]); // <<
      Dispose (Data);
    end;
end;

Delphiturbo 27. Apr 2008 17:58

Re: Link in ListBox und TTreeview !
 
Danke! Es funktioniert sehr gut.

Aber die ListBox1-Icons werden damit nicht angezeigt. Ja logisch, da wir mit dem Code drauf zeichnen

Wie kann ich ausser Name, URL, auch Icons und Quickinfo dazu in ListBox zuweisen?
Delphi-Quellcode:
New (Data);
  Data^.Name := 'Google';
  Data^.URL := 'www.google.de';
  Data^.Bitmap := ???
  Data^.Hint := ???
  ListBox1.AddItem (Data^.Name, Integer (Data));


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

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