Hallo,
folgende Situation:
Benutzer sollen Metadaten zu in HTMLSeiten geladenen Bildern erfassen können. Hierzuu sollen die Bilder, für den Benuzer gekennzeichnet werden.
Ausgehend von TWebbrowser, kann ich das
DOM analysieren und finde die Bilder. Gibt es jetzt eine Möglichkeit , auf die Bilder zuzugreifen, und sie zu bearbeiten?
Oder sich die
URL eines Bildes zu holen, das Bild zu bearbeiten und dann das Bild im Dokumentauszutauschen?
Code:
procedure TDocumentDetails.ShowDOM;
var hallo: olevariant;
myImage: IHTMLImgElement;
anItem : IHTMLElementCollection;
I :integer;
begin
Memo1.Lines.Add('Anzahl Images ' + inttostr(FDoc.images.length));
Memo1.Lines.Add('Anzahl Frames ' + inttostr(FDoc.frames.length));
anItem := FDoc.images;
if (anItem <> nil) then begin
for i:=0 to anItem.length-1 do begin
try
Memo1.Lines.Add('href'+(anItem.item(hallo,i) as IHTMLIMGElement).href);
Memo1.Lines.Add('fileSize'+(anItem.item(hallo,i) as IHTMLIMGElement).fileSize);
Memo1.Lines.Add('name'+(anItem.item(hallo,i) as IHTMLIMGElement).name);
Memo1.Lines.Add('border'+(anItem.item(hallo,i) as IHTMLIMGElement).border);
Memo1.Lines.Add('fileCreatedDate'+(anItem.item(hallo,i) as IHTMLIMGElement).fileCreatedDate);
Memo1.Lines.Add('src'+(anItem.item(hallo,i) as IHTMLIMGElement).src);
(anItem.item(hallo,i) as IHTMLIMGElement).border :=10;
FDoc.ExecCommand('InsertImage', False, 'C:\Daten\HyperImax\DevelopJavascript\_bilder\Bi_2_1_screen_2.gif');
except
on e:
exception do begin
Memo1.Lines.Add(e.Message);
end;
end;
end;
end;
end;
z.B. hat bei mir
Code:
FDoc.ExecCommand('InsertImage', False, 'C:\Daten\HyperImax\DevelopJavascript\_bilder\Bi_2_1_screen_2.gif');
nicht funktioniert, d.h. es passiert nichts sichtbares im Dokument.
Auch ist es mir nicht gelungen, im obigen Beispiel aif BorderColor zuzureifen.
Das setzen der Border hat dagegen funktioniniert,
vielen Dank
woki