🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.delphi
3 messages
3 total messages Started by jh Thu, 16 Jun 2016 23:44
RichEdit - problem z interlinia - zapis i odczyt
#345006
Author: jh
Date: Thu, 16 Jun 2016 23:44
28 lines
2089 bytes
Devexowy wrapper dla RichEdit - zarówno w wersji db-aware jak i zwykłej.

Klient wpisuje tekst do kontrolki "ręcznie", lub wkleja go po 
skopiowaniu ze strony www. Następnie dla całej zawartości ustawia 
określony format - czcionka, wielkość, justowanie, kolory etc. oraz, co 
najważniejsze podwójną interlinię. Z grubsza w kodzie:

   cxRichEdit.SelectAll;
   cxRichEdit.Paragraph2.Alignment := pfaJustify;
   cxRichEdit.SelAttributes2.Size := 18;
   cxRichEdit.SelAttributes2.Name := 'Courier New';
   cxRichEdit.Paragraph2.LineSpacingRule := pfsrDouble;
   cxRichEdit.SelLength := 10;
   cxRichEdit.SelAttributes.Style := [fsBold];

Zawartość jest zapisywana w BLOBie (nvarchar(max)), Unicode w bazie. W 
aplikacji we właściwościach StreamModes również jest zaznaczony Unicode.

Dla części tekstów wpisanych ręcznie w zasadzie działa wszystko 
poprawnie. Natomiast regułą jest, że tekst wklejony z jakiejś strony www 
po zapisie i wczytaniu gubi formatowanie interlinii. Dokładnie tak samo 
jest przy zapisie do pliku ze zwykłej (non db-aware) kontrolki, a potem 
wczytaniu tego pliku (RTF).

Da się to jakoś poprawić, żeby formatowanie interlinii działało 
poprawnie - ale zawsze?

jh
Re: RichEdit - problem z interlinia - zapis i odczyt
#345007
Author: wloochacz
Date: Sat, 18 Jun 2016 13:38
11 lines
1305 bytes
W dniu 2016-06-17 o 01:44, jh pisze:
> Zawartość jest zapisywana w BLOBie (nvarchar(max)), Unicode w bazie. W
> aplikacji we właściwościach StreamModes również jest zaznaczony Unicode.
To nie jest BLOB.
IMO, powinieneś użyć do tego typu VARBINARY...

PS.
I raczej na pewno to nie rozwiąże Twoojego problemu.

-- 
wloochacz
Re: RichEdit - problem z interlinia - zapis i odczyt
#345008
Author: jh
Date: Sat, 18 Jun 2016 16:35
19 lines
1749 bytes
W dniu 2016-06-18 o 15:38, wloochacz pisze:
> W dniu 2016-06-17 o 01:44, jh pisze:
>> Zawartość jest zapisywana w BLOBie (nvarchar(max)), Unicode w bazie. W
>> aplikacji we właściwościach StreamModes również jest zaznaczony Unicode.
> To nie jest BLOB.

Czepiasz się :P

> I raczej na pewno to nie rozwiąże Twoojego problemu.

Dodanie LineSpacing niewiele pomaga, bo można tylko całkowite wartości 
(nie ma interlinii 1.5). Poza tym, jeśli nawet już zapisze, to wystarczy 
pojedyncze kliknięcie w tekst i ten automagicznie traci tę interlinię. 
Skopiowanie i wklejenie do Wordpada wykrzacza tego ostatniego.

Ech, gdyby tak DevExy skończyły już tego swojego TcxRichEditControl 
(nadal brakuje API, żeby chociaż cokolwiek edytować tekst z poziomu kodu).

jh
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads