Jak wkleić sformatowany tekst ze schowka do RichEdit

0

Witam. Czy ktoś może mi powiedzieć w jaki sposób mogę wkleić tekst z clipboard do richedita, ale tak żeby zachować formatowanie tekstu znajdującego się w schowku?
Używając poniższego kodu:

Richedit1.Lines.Add(clipboard.astext);

wkleja mi tekst bez zachowania formatowania...

Będę wdzięczny za wskazówki lub gotowe rozwiązania :P

0

Richedit1.PasteFromClipboard

0

Super. Dzięki guru :P.
A jest sposób żeby z tak wklejonego tekstu usunąć wszystkie znaki końca linii?

0

Podstawy bo i wątek słusznie został tutaj już przeniesiony :). Kombinuję ale nie idzie. Możesz podać przykład takiej obróbki żeby wynikiem był w dalszym ciągu sformatowany tekst, lecz pozbawiony 'enterów'?

0

Mniej więcej w tym stylu

var s:string;//z jakimś tekstem
//...
  s:=StringReplace(s,#10,'',[rfReplaceAll]);
  s:=StringReplace(s,#13,'',[rfReplaceAll]);
0

Panowie problemem nie jest zamiana znaków na inne tylko problemem jest to, że po StringReplace w RichEdit będzie pozmieniane formatowanie, a autor chce je zachować. Znalazłem kod na: http://delphi.about.com/cs/adptips2003/a/bltip0803_2.htm ale on jest nieprzewidziany do zamieniania na pusty tekst, bo wtedy w oryginalnym kodzie pętla trwa w nieskonczoność. Poprawiłem i z moich pobieżnych testów wynika, ze jest ok, ale jakby coś dalej nie działało to niech pytający już kombinuje dalej sam.

procedure RichEditRearchAndReplace(RichEdit : TRichEdit; InSearch, InReplace : string);
var
  X, ToEnd : integer;
  oldCursor : TCursor;
begin
  oldCursor := Screen.Cursor;
  Screen.Cursor := crHourglass;
  with RichEdit do
  begin
    X := 0;
    ToEnd := length(Text);
    X := FindText(inSearch, X, ToEnd, []);
    if InReplace <> '' then
    begin
      while X <> -1 do
      begin
        SelStart := X;
        SelLength := length(inSearch);
        SelText := InReplace;
        X := FindText(inSearch, X + length(InReplace), ToEnd, []);
      end;
    end
    else
    begin
      repeat
        SelStart := X;
        SelLength := length(inSearch);
        SelText := InReplace;
        X := FindText(inSearch, X + Length(InReplace), ToEnd, []);
      until X < ToEnd;
    end;
  end;
  Screen.Cursor := oldCursor;
end;

Przykład użycia dla zamiany Windowsowych znaków końca lini na "pusty" tekst:

  RichEditRearchAndReplace(RichEdit1, #13#10, '');
0

Kolega olesio ma rację. Dzięki, będę próbował. Dam znać, jak będzie działało.

0
PL_OLO napisał(a)

Kolega olesio ma rację. Dzięki, będę próbował. Dam znać, jak będzie działało.
o tym to wie większość, tylko że Olesiowi jako jedynemu chciało się zrobić TWOJĄ robotę i POSZUKAĆ i jakoś dało się znaleźć bez osobistej znajomości z lucyferem i/lub Page'em i Brinem (dla niezorientowanych to ci co googla założyli)

0
Misiekd napisał(a)
PL_OLO napisał(a)

Kolega olesio ma rację. Dzięki, będę próbował. Dam znać, jak będzie działało.
o tym to wie większość, tylko że Olesiowi jako jedynemu chciało się zrobić TWOJĄ robotę i POSZUKAĆ i jakoś dało się znaleźć bez osobistej znajomości z lucyferem i/lub Page'em i Brinem (dla niezorientowanych to ci co googla założyli)

Cały czas czekając na pomoc od szanownego grona na tym forum szukałem rozwiązania, kombinując ze słowami kluczowymi na guglu. Więc to nie brak chęci tylko jak widać zły dobór zapytań.

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