Jak wkleić sformatowany tekst ze schowka do RichEdit

Jak wkleić sformatowany tekst ze schowka do RichEdit
PO
  • Rejestracja: dni
  • Ostatnio: dni
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:

Kopiuj
Richedit1.Lines.Add(clipboard.astext);

wkleja mi tekst bez zachowania formatowania...

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

Misiekd
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7923
0

Richedit1.PasteFromClipboard

PO
  • Rejestracja: dni
  • Ostatnio: dni
0

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

PO
  • Rejestracja: dni
  • Ostatnio: dni
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'?

pelsta
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 819
0

Mniej więcej w tym stylu

Kopiuj
var s:string;//z jakimś tekstem
//...
  s:=StringReplace(s,#10,'',[rfReplaceAll]);
  s:=StringReplace(s,#13,'',[rfReplaceAll]);
olesio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
  • Postów: 4191
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.

Kopiuj
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:

Kopiuj
  RichEditRearchAndReplace(RichEdit1, #13#10, '');
PO
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Misiekd
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7923
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)

PO
  • Rejestracja: dni
  • Ostatnio: dni
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ń.

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.