Avatar billede monie Nybegynder
05. april 2004 - 06:26 Der er 16 kommentarer og
4 løsninger

Få RichEdit teksten vist i HTML form

Hej

Hvordan fås hele RichEdit teksten (som er HTM-koder) vist i en HTML form?

HTML indholdet i RichEdit:

<a href="kontakt.htm" title="Send post!" target="hojere"onmouseover="this.href=
'mailto:&#109;&#97;&#105;&#108;&#64;&#100;&#111;&#109;&#97;&#105;&#110;.&#100;&#107;'">
E-mail Klik her!</a></body>

Vist i FrontPage html-editor:

E-mail Klik her!

Det er dette resultat jeg ønsker vist!

Tænker på noget med WebBrowser1, der findes under menuen "Internet" eller har du et bedere forslag.

Med venlig hilsen
Monie Jacobsen
Avatar billede fixxxer Nybegynder
05. april 2004 - 09:02 #1
var
  HTMLStream: TStream;
begin
  try
    HTMLStream := TStream.Create;
    RichEdit1.Lines.SaveToStream(HTMLStream);


  finally
    HTMLStream.Free;
  end;
end;
Avatar billede fixxxer Nybegynder
05. april 2004 - 09:04 #2
jeg sad lige og byggede et eksempel og du kan tilsyneladende ikke bruge et RichEdit da det vil gemme i RTF format. Det skal gerne gemmes i plain text som et memo gør. Hvorfor vil du bruge et richedit?
Avatar billede fixxxer Nybegynder
05. april 2004 - 09:05 #3
hvis du vil bruge RichEdit, skal du sætte RichEdit1.PlainText := True;
Avatar billede fixxxer Nybegynder
05. april 2004 - 09:05 #4
og derefter bruge følgende kode :)

  RichEdit1.Lines.SaveToFile('C:\temp.html');
  WebBrowser1.Navigate('C:\temp.html');
  DeleteFile('C:\temp.html');
Avatar billede fixxxer Nybegynder
05. april 2004 - 09:07 #5
undskyld blot

  RichEdit1.Lines.SaveToFile('C:\temp.html');
  WebBrowser1.Navigate('C:\temp.html');

brug

  DeleteFile('C:\temp.html');

ved OnClose fx, bare for at ryde op efter dig :)
Avatar billede nca Juniormester
05. april 2004 - 09:08 #6
Du kan bare gemme teksten som en HTML-fil.
Se her for et eksempel:
procedure TForm1.Button1Click(Sender: TObject);
begin
RichEdit1.PlainText:=True;
RichEdit1.Lines.SaveToFile('c:\test.htm');

end;
Avatar billede monie Nybegynder
05. april 2004 - 09:32 #7
Hej
Hvis det er muligt, kunne jeg godt tænke mig, at når html-koden kommer frem i Ricedit så vises dem samtidig i f.eks WebBroser.
Men jeg vil lige afprøve de forslag der likker nu! OK

Med venlig hilsen
Monie Jacobsen
Avatar billede monie Nybegynder
05. april 2004 - 09:43 #8
Har lige prøvet fixxxer forslag, men det lykkes ikke, at få det til at funger.
Vil du prøve, at indskrive koderne herunder i min Unit?

Her er mine Delphi 6 koder:
LMDMemo1 kan det samme som RichEdit kan!

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function ISOEncode(const Value: string): string;
var
  i: Integer;
begin
  Result := '';
  for i := 1 to Length(Value) do
    Result := Result + '&#' + IntToStr(ord(Value[i])) + ';';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
LMDEdit1.Clear;
LMDEdit2.Clear;
LMDEdit3.Clear;
LMDEdit5.Clear;
LMDEdit6.Clear;
LMDMemo1.Clear;

procedure TForm1.LMDButton1Click(Sender: TObject);
var
  eUser, eDomain, eTop, eSubject, eLinkTekst, eMusOverTekst: string;
begin
  //LMDMemo1.Lines.Text:= '<a href="mailto:<Mail>&#64;<Domain>.<Top>"><LinkTekst></a>';
  //LMDMemo1.Lines.Text:= '<a href="kontakt.htm" title="<MusOverTekst>" target="hojere" onmouseover="this.href=''mailto:<Mail>&#64;<Domain>.<Top>''"><LinkTekst></a>';
  LMDMemo1.Lines.Text:= '<a href="kontakt.htm" title="<MusOverTekst>" target="hojere" onmouseover="this.href=''mailto:<Mail>&#64;<Domain>.<Top>?subject="<Subject>"><LinkTekst></a>';


  eUser := ISOEncode(LMDEdit1.Text);
  eDomain := ISOEncode(LMDEdit2.Text);
  eTop := ISOEncode(LMDEdit3.Text);
  eSubject := LMDEdit7.Text;
  eLinkTekst := LMDEdit4.Text;
  eMusOverTekst := LMDEdit6.Text;
  LMDMemo1.Lines.Text := StringReplace(LMDMemo1.Lines.Text, '<Mail>', eUser, [rfIgnoreCase]);
  LMDMemo1.Lines.Text := StringReplace(LMDMemo1.Lines.Text, '<Domain>', eDomain, [rfIgnoreCase]);
  LMDMemo1.Lines.Text := StringReplace(LMDMemo1.Lines.Text, '<Top>', eTop, [rfIgnoreCase]);
  LMDMemo1.Lines.Text := StringReplace(LMDMemo1.Lines.Text, '<Subject>', eSubject, [rfIgnoreCase]);
  LMDMemo1.Lines.Text := StringReplace(LMDMemo1.Lines.Text, '<LinkTekst>', eLinkTekst, [rfIgnoreCase]);
  LMDMemo1.Lines.Text := StringReplace(LMDMemo1.Lines.Text, '<MusOverTekst>', eMusOverTekst, [rfIgnoreCase]);
  webbrowser1.navigate(LMDMemo1.Lines.Text);
  end;
end.

Med venlig hilsen
Monie Jacobsen
Avatar billede fixxxer Nybegynder
05. april 2004 - 09:44 #9
altså i det du ændre richedit eller i det at html-indholdet hentes ind i richedit?

for førstnævnte kan jeg kun forestille mig RichEdit1OnChange, men det vil nok trække rigtig meget på performence, og ikke give noget godt resultat.

sidstnævnte er blot at bruge
  RichEdit1.Lines.LoadFromFile('C:\temp.html');
  WebBrowser1.Navigate('C:\temp.html');
Avatar billede fixxxer Nybegynder
05. april 2004 - 09:46 #10
skrev jeg at du skulle navigate til LMDMemo1.Lines.Text? ;-)

Du SKAL gemme din LMDMemo1's indhold til et sted på harddisken

LMDMemo1.Lines.SaveToFile('C:\test.html');

og BAGEFTER navigere til den fil

WebBrowser1.Navigate('C:\temp.html');
Avatar billede fixxxer Nybegynder
05. april 2004 - 09:47 #11
blot for god ordens skyld:

procedure TForm1.LMDButton1Click(Sender: TObject);
var
  eUser, eDomain, eTop, eSubject, eLinkTekst, eMusOverTekst: string;
begin
  //LMDMemo1.Lines.Text:= '<a href="mailto:<Mail>&#64;<Domain>.<Top>"><LinkTekst></a>';
  //LMDMemo1.Lines.Text:= '<a href="kontakt.htm" title="<MusOverTekst>" target="hojere" onmouseover="this.href=''mailto:<Mail>&#64;<Domain>.<Top>''"><LinkTekst></a>';
  LMDMemo1.Lines.Text:= '<a href="kontakt.htm" title="<MusOverTekst>" target="hojere" onmouseover="this.href=''mailto:<Mail>&#64;<Domain>.<Top>?subject="<Subject>"><LinkTekst></a>';


  eUser := ISOEncode(LMDEdit1.Text);
  eDomain := ISOEncode(LMDEdit2.Text);
  eTop := ISOEncode(LMDEdit3.Text);
  eSubject := LMDEdit7.Text;
  eLinkTekst := LMDEdit4.Text;
  eMusOverTekst := LMDEdit6.Text;
  LMDMemo1.Lines.Text := StringReplace(LMDMemo1.Lines.Text, '<Mail>', eUser, [rfIgnoreCase]);
  LMDMemo1.Lines.Text := StringReplace(LMDMemo1.Lines.Text, '<Domain>', eDomain, [rfIgnoreCase]);
  LMDMemo1.Lines.Text := StringReplace(LMDMemo1.Lines.Text, '<Top>', eTop, [rfIgnoreCase]);
  LMDMemo1.Lines.Text := StringReplace(LMDMemo1.Lines.Text, '<Subject>', eSubject, [rfIgnoreCase]);
  LMDMemo1.Lines.Text := StringReplace(LMDMemo1.Lines.Text, '<LinkTekst>', eLinkTekst, [rfIgnoreCase]);
  LMDMemo1.Lines.Text := StringReplace(LMDMemo1.Lines.Text, '<MusOverTekst>', eMusOverTekst, [rfIgnoreCase]);
  LMDMemo1.Lines.SaveToFile('C:\temp.html');
  webbrowser1.navigate('C:\temp.html');
  end;
Avatar billede monie Nybegynder
05. april 2004 - 09:58 #12
Prøver det lige!
Avatar billede monie Nybegynder
05. april 2004 - 10:07 #13
Hej

Det funger nu, enda godt!

Men koden herunder hvordan havde du tængt dig den skulle se ud!
var
  HTMLStream: TStream;
begin
  try
    HTMLStream := TStream.Create;
    RichEdit1.Lines.SaveToStream(HTMLStream);
   
    RichEdit1.Lines.SaveToFile('C:\temp.html');
    WebBrowser1.Navigate('C:\temp.html');

  finally
    HTMLStream.Free;
  end;
end;


Vil du/i hjælpe med dette problem nedenfor?

Denne linje virker!
<a href="kontakt.htm" title="<MusOverTekst>" target="hojere" onmouseover="this.href=''mailto:<Mail>&#64;<Domain>.<Top>''"><LinkTekst></a>

Men efter indsætning af: ?subject=<Subject>'">
Og med forskellige forsøg er det ikke lykkes mig, at få nedstående HTM-kode til at virke!

<a href="kontakt.htm" title="<MusOverTekst>" target="hojere" onmouseover="this.href=''mailto:<Mail>&#64;<Domain>.<Top>?subject="<Subject>"><LinkTekst></a>

Med venlig hilsen
Monie Jacobsen
Avatar billede fixxxer Nybegynder
05. april 2004 - 10:15 #14
den kode skal du se bort fra, det var et forsøg på noget der vidste sig ikke kunne lade sig gøre, fordi webbrowser komponentet ikke accepterede streams.

ang. dit sidst problem, så tror jeg ikke der skal "" rundt om subject...
Avatar billede fixxxer Nybegynder
05. april 2004 - 10:15 #15
<a href="kontakt.htm" title="<MusOverTekst>" target="hojere" onmouseover="this.href=''mailto:<Mail>&#64;<Domain>.<Top>?subject=<Subject>><LinkTekst></a>
Avatar billede monie Nybegynder
05. april 2004 - 10:30 #16
Hej

Du har tjent dine Point og jeg takker, også meget for det.

Men da koderne også hører med, så håber jeg du kan hjælpe mig?

Nå "" rundt om subject fjernes.
Vises koden herunder ligesom du ser dem nu.
Hvor der i HTML-editoren skulle havde stået: E-mail Klik her!

<a href="kontakt.htm" title="Klik her!" target="hojere" onmouseover="this.href='mailto:mail@domain.dk?subject=Emne:E-mail Klik her!

Med venlig hilsen
Monie Jacobsen
Avatar billede fixxxer Nybegynder
05. april 2004 - 10:48 #17
tja, den kan jeg ikke lige regne ud nu. Opret et nyt spørgsmål ment til det, så du kan tildrage dig andres hjælp til problemet. Accepter de svar du kan bruge her, så spørgsmålet kan lukkes, hvis dit opringelige problem er løst.
Avatar billede monie Nybegynder
05. april 2004 - 11:02 #18
Men rigtigt mange tak for din hjælp fixxxer

Med venlig hilsen
Monie Jacobsen
Avatar billede fixxxer Nybegynder
05. april 2004 - 11:06 #19
Mange tak for point :)

God påske
Avatar billede monie Nybegynder
05. april 2004 - 11:12 #20
Også god påske herfra.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester