Delphi-PRAXiS

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)

Delphiturbo 26. Apr 2008 15:38


Link in ListBox und TTreeview !
 
Hi

Mein ListBox und Mein TTreeView sind wie Contents (Inhaltsverzeichnis)

Wenn Ich auf einen text in ListBox doppelklicke dann soll die Datei in Webbrowser aufgerufen werden :

Delphi-Quellcode:
procedure TForm1.ListBox1DblClick(Sender: TObject);
var
I:Integer;
begin
i := ListBox1.ItemIndex;
Webbrowser1.Navigate(ListBox1.Items.Strings[i]);
end;
Ich möchte aber in ListBox den Link nicht schreiben sondern nur den Titel
also z.B.
google und nicht http ://google.de

hat jemand eine Idee?

Der.Kaktus 26. Apr 2008 15:43

Re: Link in ListBox und TTreeview !
 
Hallo,

Delphi-Quellcode:
procedure TForm1.ListBox1DblClick(Sender: TObject);
var
I:Integer;
begin
i := ListBox1.ItemIndex;
Webbrowser1.Navigate('HTTP://www.'+ListBox1.Items.Strings[i]);
end;
so vielleicht?

Dbof 26. Apr 2008 15:50

Re: Link in ListBox und TTreeview !
 
Wie wärs damit ?

Delphi-Quellcode:
i := ListBox1.ItemIndex;
Webbrowser1.Navigate('http://www.'+ListBox1.Items.Strings[i]+'.de');
'da war wohl jemand schneller'

Die Muhkuh 26. Apr 2008 15:52

Re: Link in ListBox und TTreeview !
 
Was machst Du, wenn man auf google.com will?

Der.Kaktus 26. Apr 2008 15:59

Re: Link in ListBox und TTreeview !
 
Zitat:

Zitat von Die Muhkuh
Was machst Du, wenn man auf google.com will?

Gute Frage :thumb: (obwohl ich '+.de') eh vergessen habe.

Fussball-Robby 26. Apr 2008 16:13

Re: Link in ListBox und TTreeview !
 
Du führst eine Liste (TStrings) mit den vollständigen Adressen der Seiten und befüllst die Listbox nur mit den Namen. Beim Doppelklick nimmst du dann aus der Liste den Eintrag an der Stelle des aktuellen ItemIndex der Listbox.

Mfg

Die Muhkuh 26. Apr 2008 16:14

Re: Link in ListBox und TTreeview !
 
Oder Du hängst ein Objekt an die Items, in dem weitere Informationen stehen.

Delphiturbo 26. Apr 2008 17:28

Re: Link in ListBox und TTreeview !
 
Zitat:

Zitat von Die Muhkuh
Oder Du hängst ein Objekt an die Items, in dem weitere Informationen stehen.

Der Vorschlag von Fussball-Robby und von Muhkuh sind wahrscheinlich
die beste Lösung.
könnt Ihr ein Beispiel schreiben ! Ich verstehe nicht ganze

toms 26. Apr 2008 17:41

Re: Link in ListBox und TTreeview !
 
Ein gutes TreeView Tutorial findest du hier

Delphiturbo 26. Apr 2008 17:52

Re: Link in ListBox und TTreeview !
 
Ich habe zusätzlich ein ListBox2 auf meine Form aber Invisible und drauf die Link-Liste
hinzugefügt :
Delphi-Quellcode:
procedure TForm1.ListBox1DblClick(Sender: TObject);
var
I:Integer;
begin

i := ListBox1.ItemIndex;
Webbrowser1.Navigate(ListBox2.Items.Strings[i]);

end;
Vielleicht das ist was die Leute meinen

Zitat:

Zitat von toms
Ein gutes TreeView Tutorial findest du hier

Ja, habe ich auch durchgelesen. Man kann auch Icons für Items hinzufügen, was bei ListBox nicht möglich ist. in die Tutorials steht leider nicht über den Link !

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 04:52 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