AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi tWebrowser Text schreiben - löschen
Thema durchsuchen
Ansicht
Themen-Optionen

tWebrowser Text schreiben - löschen

Offene Frage von "hibbert"
Ein Thema von hibbert · begonnen am 26. Jun 2006 · letzter Beitrag vom 27. Jun 2006
Antwort Antwort
Benutzerbild von hibbert
hibbert

Registriert seit: 26. Aug 2003
Ort: Berlin
262 Beiträge
 
Delphi 2005 Personal
 
#1

tWebrowser Text schreiben - löschen

  Alt 26. Jun 2006, 21:43
Hi,
ich benutze den tWebrowser gerade in meinem aktuellen Projekt. Nun benutze ich folgendes, um etwas in den Browser zu schreiben:
Delphi-Quellcode:
procedure schreibe(ausgabe:string;del:boolean);
begin
 form1.webbrowser1.OleObject.Document.write(ausgabe);

 if del then
 // text löschen
end;
So nun möchte ich gerne den Text wieder löschen, den ich eingeschrieben, also alles was ich geschrieben habe. Ist dies Möglich?
Ich verwende noch zusätzlich einige HTML zeichen, um den Text zu formatieren.

Kann mir jemand weiterhelfen?

thx hibbert
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: tWebrowser Text schreiben - löschen

  Alt 27. Jun 2006, 05:26
Hi hibbert!

Hier ein kleiner Ausschnitt aus einem Programm, wo ich den Webbrowser im EditMode als Editor nutze.
Delphi-Quellcode:
procedure Tform_ITEditor.tbtn_HRClick(Sender: TObject);
var
  Line : IHTMLHRElement;
  SelObject : IHTMLControlRange;
  SelText : IHTMLTxtRange;
  Node : IHTMLDOMNode;
begin
  Line:=Fdoc.createElement('hr') as IHTMLHRElement; //FDoc:=WebBrowser1.Document as IHTMLDocument2;
  //Jetzt müssen wir erstmal die Stelle bestimmten, wo wir mit dem Cursor stehen
  if (FDoc.selection.type_='Control') then //aktuelle Auswahl ist ein Control
  begin
    SelObject:=FDoc.Selection.createRange as IHTMLControlRange;
    Node:=SelObject.item(0) as IHTMLDOMNode; // ... und daraus einen Knoten machen
  end
  else //aktuelle Auswahl ist ein Stück Text oder nichts
  begin
    SelText:=FDoc.Selection.createRange as IHTMLTxtRange;
    if SelText.parentElement=nil then //Es gibt keine Auswahl ...
      Node:=FDoc.Body as IHTMLDOMNode //.. also fügen wir es in den Body ein
    else
      Node:=SelText.ParentElement as IHTMLDomNode;
  end;

  Node.appendChild(Line as IHTMLDomNode);

end;

Dieser Code fügt eine horizontale Linie ein. Entscheidend ist die letzte Anweisung, die ein IHTMLDomNode zurückliefert. Wenn du du dir diesen Knoten "merkst" (Variable) kannst du ihn nachher ganz einfach wieder löschen. (Node.parent.removeChild ...)
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von hibbert
hibbert

Registriert seit: 26. Aug 2003
Ort: Berlin
262 Beiträge
 
Delphi 2005 Personal
 
#3

Re: tWebrowser Text schreiben - löschen

  Alt 27. Jun 2006, 12:05
Hi,
wenn ich nun aber recht viel in den Webbrowser schreibe, dann muss ich mir auch recht viel merken. Da ich aber nicht irgendwas bestimmtes löschen möchte, sondern alles brauch ich mir ja eigentlich nichts zu merken, oder?

Aber ich kann ja mal ein wenig damit rumexperimentieren...

Jedenfalls danke erstmal.

hibbert
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#4

Re: tWebrowser Text schreiben - löschen

  Alt 27. Jun 2006, 14:32
natürlich kannst du alles in ein <div> schreiben und dann das ganze div löschen
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von hibbert
hibbert

Registriert seit: 26. Aug 2003
Ort: Berlin
262 Beiträge
 
Delphi 2005 Personal
 
#5

Re: tWebrowser Text schreiben - löschen

  Alt 27. Jun 2006, 14:36
Hi,
mhh wäre ne idee, wie würde ich denn ein <div> löschen? Ich habe mir zwar dein beispiel da oben mal angeschaut, aber habe irgendwie nichts gefunden, was mich da weitergebracht hat.

hibbert
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#6

Re: tWebrowser Text schreiben - löschen

  Alt 27. Jun 2006, 17:59
Aus dem Kopf würde ich es so machen:

Delphi-Quellcode:
procedure Tform_ITEditor.tbtn_HRClick(Sender: TObject);
var
  Div: IHTMLDivElement;
  SelObject : IHTMLControlRange;
  SelText : IHTMLTxtRange;
  Node : IHTMLDOMNode;
begin
  Div:=Fdoc.createElement('div') as IHTMLHRElement; //FDoc:=WebBrowser1.Document as IHTMLDocument2;
  //hier dem Div noch ein wenig inhalt geben

  //Das folgenden ist nur im Edit-Mode nötig (ansonsten: Node:=FDoc.Body as IHTMLDOMNode )
  //Jetzt müssen wir erstmal die Stelle bestimmten, wo wir mit dem Cursor stehen
  if (FDoc.selection.type_='Control') then //aktuelle Auswahl ist ein Control
  begin
    SelObject:=FDoc.Selection.createRange as IHTMLControlRange;
    Node:=SelObject.item(0) as IHTMLDOMNode; // ... und daraus einen Knoten machen
  end
  else //aktuelle Auswahl ist ein Stück Text oder nichts
  begin
    SelText:=FDoc.Selection.createRange as IHTMLTxtRange;
    if SelText.parentElement=nil then //Es gibt keine Auswahl ...
      Node:=FDoc.Body as IHTMLDOMNode //.. also fügen wir es in den Body ein
    else
      Node:=SelText.ParentElement as IHTMLDomNode;
  end;

  Node.appendChild(Div as IHTMLDomNode);

end;
Ach ja, div ist ja reserviert ... also lieber einen besseren Namen wählen
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: tWebrowser Text schreiben - löschen

  Alt 27. Jun 2006, 18:21
Übrigens - eine unverschämt einfache Methode zum (Re-)Initialisieren des WebBrowsers ist der Aufruf der Methode Navigate('about:blank').

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von hibbert
hibbert

Registriert seit: 26. Aug 2003
Ort: Berlin
262 Beiträge
 
Delphi 2005 Personal
 
#8

Re: tWebrowser Text schreiben - löschen

  Alt 27. Jun 2006, 18:32
Hi,
wenn ich aber nach about:blank navigiere, dann gehen irgendwie meine Formatierungen verlohren:
Delphi-Quellcode:
  webbrowser1.Navigate('about:blank');
  if fileexists(extractfilepath(application.ExeName)+'data\welcome.htm') then
  webbrowser1.navigate(extractfilepath(application.ExeName)+'data\welcome.htm');
  webbrowser1.OleObject.Document.write('<body bgcolor="#d0d0d0" text="#212163" link="blue" vlink="blue" alink="blue">');
deswegen werde ich doch die
Zitat von marabu:
[...]unverschämt[...]
- Variante versuchen.

hibbert
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 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