Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Anchor (https://www.delphipraxis.net/42630-anchor.html)

horst 21. Mär 2005 21:13


Anchor
 
Hi
Weiß jemand zufällig warum das nicht funktioniert?
Delphi-Quellcode:
WebBrowser1.OleObject.Document.execCommand('createanchor', true);
Bzw. wie sowas "Normalerweise" geregelt wird?

Grüße
Horst

Pr0g 21. Mär 2005 22:58

Re: Anchor
 
Was soll durch "createanchor" denn passieren?

MfG Pr0g

horst 21. Mär 2005 23:00

Re: Anchor
 
es soll ein anker erstellt werden
<a name="mein_anker"></a>

mit
Delphi-Quellcode:
WebBrowser1.OleObject.Document.execCommand('CreateLink', true)
kann ich z.b. einen link erstellen.
das praktische daran ist das ich einen markierten link auch auslesen kann und in dem üblichen dialog angezeigt bekomme.

Pr0g 21. Mär 2005 23:17

Re: Anchor
 
Ich glaube einen Anker kann an so nicht setzten, aber vielleicht findest du in der Liste was: Link.

horst 21. Mär 2005 23:23

Re: Anchor
 
Momentan mache ich es so:
Delphi-Quellcode:
procedure TForm6.Button1Click(Sender: TObject);
var
  HTMLDocument2Ifc: IHTMLDocument2;
  HTMLSelectionObjectIfc: IHTMLSelectionObject;
  HTMLTxtRangeIfc: IHTMLTxtRange;
begin
  HTMLDocument2Ifc := Form1.WebBrowser1.Document as IHTMLDocument2;
  HTMLSelectionObjectIfc := HTMLDocument2Ifc.selection;
  HTMLTxtRangeIfc := HTMLSelectionObjectIfc.createRange as IHTMLTxtRange;
  HTMLTxtRangeIfc.pasteHTML('<a name="' + edit10.text + '" ></a>');
end;
Das klappt auch, nur bekomme ich den Anker nirgens zu sehen, obwohl er da ist, mein Problem ist dann das ich den Anker nicht auslesen kann, so wie es mit
Delphi-Quellcode:
WebBrowser1.OleObject.Document.execCommand('CreateLink', true)
klappt.

Pr0g 21. Mär 2005 23:40

Re: Anchor
 
Mich würde mal interessieren was du machst, denn eine Seite im Webbrowser zu ändern ist ja doch etwas umständlich.

horst 21. Mär 2005 23:46

Re: Anchor
 
Hmmm...wie würdest du das tun?

Lannes 21. Mär 2005 23:50

Re: Anchor
 
Versuch mal damit Anchors auslesen:

Delphi-Quellcode:
showmessage(WebBrowser1.OleObject.Document.anchors[0].name);

Pr0g 21. Mär 2005 23:53

Re: Anchor
 
Zitat:

Zitat von horst
Hmmm...wie würdest du das tun?

Ich wollte einfach nur wissen was du machst, also was das Programm machen soll. Ich würde warscheinlich den HTML Code direkt ändern, je nach dem wie die erste Frage ausgeht :)

horst 21. Mär 2005 23:54

Re: Anchor
 
Vielen Dank, leider bekomme ich eine Fehlermeldung:
Zitat:

Die Methode 'name' wird vom Automatisierungsobjekt nicht unterstützt.

horst 21. Mär 2005 23:55

Re: Anchor
 
@Pr0g
ich will tatsächlich Html-Dateien im Webbrowser bearbeiten, direkt im Html-Code ist zu ümständlich, sollen doch Menschen damit arbeiten die überhaupt keine Ahnung davon haben.

horst 22. Mär 2005 00:09

Re: Anchor
 
Damit bekomme ich die Anker ausgelesen, es wäre schön wenn ich die Anker auch sichtbar machen könnte, so wie es mit Dreamweaver oder Frontpage möglich ist, bzw. wenn ich einen markiere, den Namen in einem Edit angezeigt bekommen könnte, aber dazu müßte ich den Anker erstmal sehen.

Delphi-Quellcode:
Procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var anchors, a: Variant;
  i: integer;
begin
  ListBox1.Clear;
  anchors := Webbrowser1.OleObject.document.anchors;
  i := 0;
  while i < anchors.length do
  begin
    ListBox2.Items.Add('id = "' + anchors.item(i).id + '" | name = "' +
      anchors.item(i).name + '"');
    inc(i);
  end;
  a := anchors.namedItem('1');
  if (VarType(a) = varDispatch) and (IDispatch(a) = nil) then
    MessageDlg('Niestety nie ma takiej kotwicy', mtError, [mbOK], 0);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:02 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