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ć.
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....)
A czy jest to darmowe to znaczy czy moge z tego ort! bez ograniczeń?
Jak najbardziej tak - masz to napisane w licencji...
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.
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)
Mało mi to mówi. zabardzo to nie wiem jak to zrobić
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
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??
Super. Dzięki :)
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.