Linki

0

Czy w komponencie richedit można umieścić link do jakiejś stronki ponaciśnieńciu którega ta stronka by się otwierała. Jeśli można to prosze powiedzcie mi jak , bo bardzo bym chciała coś takiego zrobić a nie mam pojęcia jak się do tego zabrać.

0

W RichEdit nie wiem jak to zrobić. Za to jeśli sciągniesz SynEdit (www.sourceforge.net) to jest tam taka opcja, wystarczy położyć URIHighLighter i mamy gotowe .. (od razu będziesz mogła kliknąć w ten link....)

0

A czy jest to darmowe to znaczy czy moge z tego ort! bez ograniczeń?

0

Jak najbardziej tak - masz to napisane w licencji...

0

Z angielskiego jestem noga ale ort!. Mimo to jeśli ktoś wie jak to zrobić w richedit'cie to będe mu bardzo wdzięczna.

0

Jest na to pewien sposob ale troche trzeba sie napisac ;)

a mniej wiecej opwinno to wygladać tak:

W OnClick RichEdit'a albo lepiej w OnMouseUp dajesz procedurke ktora wykrywa w jakim miejscu jest kursor (najlepszy sposob to chyba bedzie SelStart) i od tego miejsca zaczynasz pętelke ktora bedzie wykonywana aż do znalezienia spacji, potem druga pętelka ktora bedzie szla w drugą strone tekstu i tez az do znalezienia spacji... nastepnie wycinasz tekst ktory znajduje sie miedzy spacjami... pozniej sprawdzasz czy tekst zaczyna sie od 'http://' lub 'www.' jesli tak to wykonujesz ShellExecute :)

Troche pokombinowane ale powinno dzialac

A co do kolorowania skladni to juz inna bajka (musiala bys caly czas <ort>odswierzac</ort> kolorowanie i ustawiac za pomoca SelAtributes)

0

Mało mi to mówi. zabardzo to nie wiem jak to zrobić

0

Mam dzis dobry dzien wiec Ci wkleje procedurke

var
  Temp: string;
  I1, I2: Integer;
  Jest: Boolean;
begin

  try
    with RichEdit1 do
    begin

      Temp := Lines[CaretPos.Y];
      I1 := CaretPos.X;
      I2 := I1;

      while (Temp[I1] <> ' ') and (I1 > 0) do
        I1 := I1 - 1;

      while (Temp[I2] <> ' ') and (I2 < Length(Temp)) do
        I2 := I2 + 1;
 
      Temp := MidStr(Temp, I1, I2 - I1);

      while Temp[1] = ' ' do
        Delete(Temp, 1, 1);

      while Temp[Length(Temp)] = ' ' do
        Delete(Temp, Length(Temp), 1);


        Jest := False;
        if LeftStr(Temp, 7) = 'http://' then Jest := True;
        if LeftStr(Temp, 4) = 'www.' then Jest := True;

     if Jest then
     begin
       ShellExecute(Handle, 'open', Temp, nil, nil, SW_NORMAL);
     end;

  except
  end;
end;

i jeszcze do uses wrzuc StrUtils, i ShellAPI :)

mam nadzieje ze kodzik bedzie dzialal :P

0

od spacji do spacji mowisz??

czyli jak mamy:

blablabla

<a href="http://adresik.lol.pl">tekscik linku</a>

to wytnie tylko <a z tego co zrozumialem z Twojego opisu, kodu nawet nie interpretowalem.Nie lepiej czasem zrobic wyciecia z <a do </a> a potem odpowiednie funkcje wycinające? I nie lepiej robić to na funkcjach pos, copy etc??

0

Super. Dzięki :)

0

od spacji do spacji mowisz??

czyli jak mamy:

blablabla

<a href="http://adresik.lol.pl">tekscik linku</a>

to wytnie tylko <a z tego co zrozumialem z Twojego opisu, kodu nawet nie interpretowalem.Nie lepiej czasem zrobic wyciecia z <a do </a> a potem odpowiednie funkcje wycinające? I nie lepiej robić to na funkcjach pos, copy etc??

no tak tylko ze moj kodzik nie zmienia tekstu typu "<a href..." tylko Od razu robi linka z adresu np "www.4programmers.net" bez zbednej zabawy w htmlu ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.