Autor Beitrag
F.Art
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: Do 06.02.03 13:25 
Wie kann man ein Bild aus dem WebBrowser woanders hin kopieren?
DaFox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 189



BeitragVerfasst: Do 20.02.03 20:12 
Hi.

Was verstehst Du unter hinkopieren? Entweder Du musst dann mit dem IE Cache arbeiten oder mit der Zwischenablage. Beides finde ich nicht gerade schön.

Deshalb nun zwei Möglichkeiten, die ich verwenden würde (genau kenne ich ja Deine Absichten nicht):

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  Memo1.Lines.Clear;
  for i := 1 to Webbrowser1.OleObject.Document.Images.Length - 1 do
  begin
    Memo1.Lines.Add(Webbrowser1.OleObject.Document.Images.Item(i).Src);
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  i : Integer;
  Doc: IHTMLDocument2;
  Elements: IHTMLElementCollection;
  Elem : IHTMLElement;
begin
  Memo1.Lines.Clear;
  Doc := Webbrowser1.Document as IHTMLDocument2;
  Elements := (Doc.Images as IHTMLElementCollection) as IHTMLElementCollection;
  for i := 0 to Elements.Length-1 do
  begin
    Elem := Elements.Item(i, varEmpty) as IHTMLElement;
    Memo1.Lines.Add(Elem.outerHTML);
  end;
end;


Gruß,
Markus
F.Art Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: Do 20.02.03 21:09 
OK ich werde mir das mal genauer an schauen.

Ich will eine HTML Datei abrufen und es wird imer ein anderes Bild angzeicht und das will ich in ein Bild oder Buton kopieren das mans im Projekt sieht. da der webbrowser nicht sichtbar ist.
F.Art Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: Fr 21.02.03 01:46 
Ich schnall das noch nicht.

Ich möchte zB die Seite
www.delphi-forum.de/index.php
laden und slice-04.gif als Image laden.

Gibt es nicht ne möglichkeit das Bild direkt anzusprechen.

Bild.Picture:=WebBrowser??????.slice-04.gif
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Fr 21.02.03 02:22 
Wenn du willst, dann kannst du das Bild direkt runterladen. Vergiss also den Begriff "Bild" und frage wie du eine Datei aus dem Internet runterladen kannst.
F.Art Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: Fr 21.02.03 03:25 
Das mit dem direkt runterladen würde nicht ganz klappen.
Es werden immer andere Bilder erscheinen.
Deswegen muss ich das per HTML auslesen.
Ich rufe dir HTML Seite auf und muss daher das Bild laden weil da der Name immer gleich bleibt.
Wenn man in der HTML ein Bild rein setzt wird immer für das Bild ein Objectname benutzt und der wird nicht geändert.

Ich hoffe ihr wisst was ich meine.
Ich nehme mal ein HTML Button als beispiel

ausblenden Quelltext
1:
<input type="submit" value="OK">					


submit bleibt immer gleich aber OK ändert sich immer.
F.Art Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: Mi 04.06.03 22:56 
Ich könnte noch etwas mehr Hilfe gebrauchen.
Ich möchte ein Bild was per WebBrowser geladen wird aus dem Cache in ein Image von Delphi kopieren.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
WebBrowser.Navigate('http://www.fategate.de.vu');
repeat
Application.ProcessMessages;
Sleep(0);
until WebBrowser.ReadyState = READYSTATE_COMPLETE;
Document:= WebBrowser.Document;


Der HTML Quelltext des Bildes:
ausblenden Quelltext
1:
<IMG src="Links/FateGate.gif" width="691" height="122"  border="0">					


Wie realisiere ich das?
toms
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1099
Erhaltene Danke: 2



BeitragVerfasst: Do 05.06.03 08:34 
Hi,

Habe mal eine Funktion geschrieben, welcher man eine URL übergeben
kann und dann den Pfad zur lokale Datei (im Cache) erhält.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
uses
  WinInet;

function GetCachedFileFromURL(strUL: stringvar strLocalFile: string): boolean;
var
  lpEntryInfo: PInternetCacheEntryInfo;
  hCacheDir: LongWord;
  dwEntrySize: LongWord;
  dwLastError: LongWord;
begin
  Result := False;
  dwEntrySize := 0;
  FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize);
  GetMem(lpEntryInfo, dwEntrySize);
  hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize);
  if (hCacheDir <> 0and (strUL = lpEntryInfo^.lpszSourceUrlName) then
    begin
      strLocalFile := lpEntryInfo^.lpszLocalFileName;
      Result := True;
    end;
  FreeMem(lpEntryInfo);
  if Result = False then
  repeat
    dwEntrySize := 0;
    FindNextUrlCacheEntry(hCacheDir, TInternetCacheEntryInfo(nil^), dwEntrySize);
    dwLastError := GetLastError();
    if (GetLastError = ERROR_INSUFFICIENT_BUFFER) then
    begin
      GetMem(lpEntryInfo, dwEntrySize);
      if (FindNextUrlCacheEntry(hCacheDir, lpEntryInfo^, dwEntrySize)) then
      begin
        if strUL = lpEntryInfo^.lpszSourceUrlName then
        begin
          strLocalFile := lpEntryInfo^.lpszLocalFileName;
          Result := True;
          Break;
        end;
      end;
      FreeMem(lpEntryInfo);
    end;
  until (dwLastError = ERROR_NO_MORE_ITEMS);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  strLocalFile: string;
begin
  if GetCachedFileFromURL('http://www.abc.com/xyz.gif', strLocalFile) then
    ShowMessage(strLocalFile);
end;
F.Art Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: Do 05.06.03 10:39 
OK das klappt schonmal ganz gut.

ausblenden Delphi-Quelltext
1:
Image1.Picture.LoadFromFile(strLocalFile);					


Wie kann ich dann das Bild im Projekt anzeigen lassen?
So wie oben geht es nicht.
Gibt es noch ne Kombonente womit man alle Bild Formate anzeigen lassen kann wie anigif und so?
F.Art Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 434



BeitragVerfasst: Di 10.06.03 11:34 
Er zeigt zwar das JPG an wo es hingespeichert wurde aber es wird nicht komplett gespeichert. Man kann das Bild nicht öffnen. Wer kann mir weiter helfen?