Avatar billede eht Nybegynder
07. april 2003 - 10:45 Der er 2 kommentarer og
1 løsning

Hypertekst i Richedit.

Hvordan opretter man hypertekst i en Richedit.
Altså sådan at man kan klikke på et link i teksten og få afviklet en eller anden kode.

Hvordan gemmer man oprettede hyperlinks sammen med teksten, så man kan genindlæse den fra en fil.

Jeg kender til et komponent der hedder RichEditWithLinks. (http://www.torry.net/vcl/edits/rich/re_lne.zip)
Her er det  let at oprette et link i teksten. Men de gemmes ikke når de genindlæses fra en rtf-fil. (Kun formateringen, linkene er ikke længere aktive)



Er der nogen der har en ide. Eller evt kendskab til et godt komponent.

// Erik
Avatar billede stone Forsker
07. april 2003 - 11:21 #1
det her skulle løse dit problem

//husk at uses Richedit

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls,shellapi,richedit;

type
  TForm1 = class(TForm)
    RichEdit1: TRichEdit;
    Gem: TButton;
    Hent: TButton;
    procedure FormCreate(Sender: TObject);
    procedure GemClick(Sender: TObject);
    procedure HentClick(Sender: TObject);
protected
    procedure WndProc(var Message: TMessage); override;



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

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WndProc(var Message: TMessage);
var
  p: TENLink;
  strURL: string;
begin
  if (Message.Msg = WM_NOTIFY) then
  begin
    if (PNMHDR(Message.LParam).code = EN_LINK) then
    begin
      p := TENLink(Pointer(TWMNotify(Message).NMHdr)^);
      if (p.msg = WM_LBUTTONDOWN) then
      begin
        SendMessage(RichEdit1.Handle, EM_EXSETSEL, 0, LongInt(@(p.chrg)));
        strURL := RichEdit1.SelText;
        ShellExecute(Handle, 'open', PChar(strURL), 0, 0, SW_SHOWNORMAL);
      end
    end
  end;

  inherited;
end;





procedure TForm1.FormCreate(Sender: TObject);
var
  mask: Integer;
begin
  mask := SendMessage(RichEdit1.Handle, EM_GETEVENTMASK, 0, 0);
  SendMessage(RichEdit1.Handle, EM_SETEVENTMASK, 0, mask or ENM_LINK);
  SendMessage(RichEdit1.Handle, EM_AUTOURLDETECT, Integer(True), 0);

  RichEdit1.Text := 'Eksperten'#13#10 +
    ' Site is located at www.eksperten.dk Welcome to our site.';
end;


procedure TForm1.GemClick(Sender: TObject);
begin
richedit1.Lines.SaveToFile('c:\temp\richedit.txt');
end;

procedure TForm1.HentClick(Sender: TObject);
begin
richedit1.Lines.LoadFromFile('c:\temp\richedit.txt');
end;

end.
Avatar billede stone Forsker
07. april 2003 - 11:23 #2
uses også shellapi
Avatar billede eht Nybegynder
07. april 2003 - 17:46 #3
hej Stone
Jig kigger lige lidt nærmere på det her og vender tilbage.

//erik
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