Autor Beitrag
jackie05
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: Mi 07.04.10 01:48 
Hallo,
ich habe in meinem Programm mehrere WebBrowser, die ich beim starten des Programms erzeuge und die Handle des einzelnen WebBrowser Speicher ich gleich mit.

Jetzt möchte ich z.B. den WebBrowser suchen mit folgende Handle: 1115926

ich hab das so versucht:
ausblenden Delphi-Quelltext
1:
wndChild := FindWindowEx(wndChild, 0'Shell Embedding', PChar(WebHandle[liste.ItemIndex]));					

das geht so leider nicht.
Wie könnte ich das ambesten lösen?

Ich bedanke mich schonmal im Voraus.

MfG

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


Zuletzt bearbeitet von jackie05 am Do 08.04.10 17:33, insgesamt 2-mal bearbeitet
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 07.04.10 02:41 
Warum nimmst du nicht den Namen der Komponente zum identifizieren?
jackie05 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: Mi 07.04.10 02:55 
Danke Dir.

Wie kann ich das ambesten machen?

Also ich weise jede WebBrowser Komponent einen Namen zu und wie identifizier ich jede einzelne WebBrowser Komponent über ihren Namen?

MfG
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 07.04.10 02:57 
Wie verwaltest du denn die Komponenten? In einem Array? In einer Objektliste? Eventuell solltest du dir mal FindComponente angucken.
jackie05 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: Mi 07.04.10 03:08 
In einem Array:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
var
  Form1: TForm1;
  wb: array of TWebBrowser;
  WebHandle: array of HWND;


Wenn ich z.B. ein beliebige WebBrowser suchen möchte, dann wird immer das zuletzt erstellte WebBrowser angesprochen, deshalb möchte ich über WebBrowser.Handle oder WebBrowser.Name diesen Komponent suchen.
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Mi 07.04.10 10:19 
Du kannst durch das Array iterieren um an die einzelnen WebBrowser-Instanzen zu kommen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
  i: Integer;
begin
  for i := Low(wb) to High(wb) do
  begin
    wb[i].Navigate('http://www.delphiforum.de');
    //mehr Code...
  end;
end;
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mi 07.04.10 10:22 
insbesondere kannst du dann mit

ausblenden Delphi-Quelltext
1:
if wb[i].Handle=MeinGesuchtesHandle then					


den entsprechenden raussuchen. Allerdings fände ich es sinnvoller, statt dem handle gleich die id (i) zu verwenden :nixweiss:

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)
jackie05 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: Mi 07.04.10 23:15 
Danke euch.

Das ist mir klar, aber wie kann ich dann z.B. eine Message mit PostMessage an das WebBrowser senden anhand der Handle?
Weil wenn ich eine Message dann senden möchte, dann wird trotzdem die Message an das zuletzt erstellte WebBrowser gesendet.

Danke schonmal.

MfG