RichEdit, SelLength, SelStart

0

Walcze z tym już którąś godzine, znalazłem sobie definicję komponentu który ma obsługę URL'ów. Wystarczy zaznaczyć interesujący fragment tekstu i wywołać metode SetHyperLink(True) i od tego momentu będzie to jak link wyglądało, no i jest też metoda obsługi OnClick. I cały problem polega na zanzaczeniu tego cholernego tekstu. W przykładzie robią to tak, że

const sSite = 'www.costam';

...

reDemo.Lines.Clear;
reDemo.Lines.Add('This component is a Rich edit with additional function:');
reDemo.Lines.Add('it support hyperlinks');
reDemo.Lines.Add('');
reDemo.Lines.Add('See our WWW page: '+sSite);

reDemo.SelStart := Pos(sSite,reDemo.Lines.Text)-1;
reDemo.SelLength := Length(sSite);
reDemo.SetSelectionHyperlink(True);

Chciałem zapytać co oznacza reDemo.Lines.Text ? czy to jest cały tekst w RichEdit ? ort! to robić u siebie i za nic nie chce mi zaznaczyć. W ich przykładzie działa. Przykład owieram pod D6 PE, a pracuje na D4Std. Może to jakiś problem w D4 ???

Otwarłem ich projekt w D4 (po convert.exe) i mam kod

RaportMmo.Lines.Add('no i ...');
RaportMmo.SelStart := Pos('no i ...',RaportMmo.Lines.Text)-1;
RaportMmo.SelLength := Length('no i ...');
RaportMmo.SetSelectionHyperlink(True);

który działa, a jak go wkleje do siebie (do innego projektu w D4) to mi zaznacza tylko spacje i 3 kropki : ( Różnica jest taka ze u mnie już jest dużo więcej tekstów w RichEdit. Może to Pos jakos sie gubi jak są linie przełamywane ?? Czy dobrze używam tego selstart ? Już jestem taki zły, bardzo dziękuje za odpowiedzi.

0

Tak, ogólnie TStringList posiada właściwość Text, która zawiera wszystkie linie w liście w postaci string`a. Nie bawiłem się tym o czym mówisz - ale może nie działa Ci dlatego, że w przykładzie ustawiasz to na adresie internetowym (www.costam), a u Ciebie jest to "no i..." - i programik nie wie, czym to otworzyć.. - spróbuj wstawić adres...
AHA - i używaj tagu delphi..

0

Tak, ogólnie TStringList posiada właściwość Text, która zawiera wszystkie linie w liście w postaci string`a. Nie bawiłem się tym o czym mówisz - ale może nie działa Ci dlatego, że w przykładzie ustawiasz to na adresie internetowym (www.costam), a u Ciebie jest to "no i..." - i programik nie wie, czym to otworzyć.. - spróbuj wstawić adres...
AHA - i używaj tagu delphi..

Nie nie, to nie oto chodzi to działa na cokolwiek. Problem tkwi w tym że jeśli tekst jest zawijany (WordWrap = True) to właściwość Tekst zawieat (albo nie zawiera nie chce mi sie sprawdzac) tak jakby dodatkowe znaki #10#13 (czy jakies tam inne w każdym razie dwa : )) i ustawiając właściwość SelStart wszystko jest jakby przesunięte. Pomogło ustawienia WordWrap na False. Nie do końca mi się to podoba bo musiałem dodać drugi scrollbar ale przynajmniej zrealizowałem to co chciałem. Teraz mam w RichEdit np sciezkę do pliku wyglądającą jak link i jak kliknę to mi się otwiera notatnik z tym plikiem : )

1 użytkowników online, w tym zalogowanych: 0, gości: 1