RichMemo/pl
│
English (en) │
polski (pl) │
русский (ru) │
RichMemo jest pakietem zawierającym komponent zastępujący ten z Delphi - TRichEdit. Jest zaprojektowany tak, aby działał na wielu platformach, czyli na Win32, MacOSX oraz Linuxie. Dzięki temu, że jego głównym celem jest działanie na wielu platformach, natywne RichMemo API można z łatwością rozszerzyć tak, by było kompatybilne z Delphi.
Głównymi cechami tego komponentu są:
- Podświetlanie tekstu
- Wsparcie dla obsługi systemowego kodowania Unicode
Planowane: (patche mile widziane)
- Wstawianie obrazów do tekstu
- Osadzanie kontrolek LCL?
Pobierany plik ZIP zawiera komponent, pakiet instalacyjny oraz aplikację demonstracyjną, która ukazuje funkcje komponentu (zależą one od platformy, więcej w tabeli na dole artykułu).
W razie potrzeby prosimy dodać swoje raporty bugów czy też prośby o nowe funkcje na Github.
Licencja
Autor: Dmitry 'skalogryz' Boyarintsev
Zmodyfikowana licencja LGPL (taka sama jak w FPC RTL i Lazarus LCL) . Możesz skontaktować się z autorem, jeśli zmodyfikowany LGPL nie współpracuje z licencją Twojego projektu.
Pobieranie
Ostatnia wersja dostępna jest tutaj: https://github.com/skalogryz/richmemo
Wersję testową można pobrać tutaj: https://github.com/skalogryz/richmemo/archive/refs/heads/master.zip. Snapshot jest aktualizowany co wieczór.
Zmiany
- Wersja 1.0.0 z 22 czerwca 2009 r.
- Wersja 0.8.0 z czerwca 2009 r.
Zależności / Wymagania systemowe
- Lazarus 1.0.0
Status: Opublikowano.
Instalacja
- Pobierz pakiet.
- Otwórz go, zainstaluj i przebuduj IDE.
- TRichMemo zostanie dodane na stronę ,,Common Controls".
TRichMemo
Parametry czcionki
Parametry czcionki są głównie reprezentowane przez rekord TFontParams. Ten typ jest przeznaczony do opisu bogatych atrybutów czcionki. Niektóre atrybuty wykraczają poza zakres klasy TFont, więc potrzebny był dodatkowy typ. Jednak większość typów danych związanych z TFont jest ponownie używana (tzn. TFontStyles).
- Name - nazwa (rodzina) czcionki.
- Size - rozmiar czcionki w punktach (ujemne wartości mogą spowodować niespodziewane skutki).
- Color - kolor czcionki.
- Style - style czcionki, w tym pogrubienie, kursywa,
przekreślenie, podkreślenie. - HasBkClr - flaga typu boolean, gdzie tekst powinien mieć swój kolor tła (jeżeli prawda, to BkColor jest używany, w przeciwnym wypadku nie). Przezroczystość nie jest wspierana.
- BkColor - kolor tła (a'la podświetlenie) tekstu.
- VScriptPos - poziome położenie tekstu.
- vpNormal - normalne.
- vpSubscript - indeks dolny.
- vpSuperscript - indeks górny.
- Rzeczywiste przesunięcie pionowe indeksów zależy od systemu operacyjnego i obecnie nie można tego kontrolować.
TFontParams możesz przypisać do struktury TFont, lecz aby tego dokonać, powinieneś użyć funkcji GetFontParams(afont: TFont). Uwaga - większość komponentów LCL ma ustawione wartości TFont na domyślne (ang. ,,default"), ale nie są to wartości w pełni rzeczywiste, lecz raczej są wskazaniem domyślnej czcionki danej kontrolki (coś jak clDefault dla TColor).
Funkcja GetFontParams rozwiązuje ten problem i zwraca rzeczywistą nazwę czcionki.
Metody
SetTextAttributes
procedure SetTextAttributes(TextStart, TextLen: Integer; AFont: TFont);
- TextStart : Integer - pierwszy znak do zmodyfikowania
- TextLen : Integer - liczba znaków do zmodyfikowania
- AFont : TFont - czcionka, jaka ma być zastosowana do danej części tekstu
procedure SetTextAttributes(TextStart, TextLen: Integer; const TextParams: TFontParams);
- TextStart : Integer - pierwszy znak do zmodyfikowania
- TextLen : Integer - liczba znaków do zmodyfikowania
- TextParams : TFontParams - parametry czcionki do ustawienia
Parsowanie języka znacznikowego
Natywne kontrolki rich-edit nie obsługują parsowania języka znacznikowego (np. HTMLa) - potrzebujesz do tego własnego zaimplementowanego parsera (przykład na zdjęciu obok).
Internale
Wsparcie platform - tabela
Funkcja | Win32 | Gtk2 | Qt | Cocoa | Carbon |
---|---|---|---|---|---|
Kolor czcionki i jej style w zaznaczeniu | Tak | Tak | Tak | Tak | Tak |
Kolor tła czcionki | Tak | Tak | Tak | Tak | Nie |
Indeks dolny i górny | Tak | Tak | Nie | Nie | Nie |
Pobranie stylu z zakresu (GetStyleRange) | Tak | Tak | Nie | Tak | Tak |
Wyrównanie akapitu | Tak | Tak | Tak | Tak | Prawie niemożliwe |
Metryki akapitu | Tak | Tak | Nie | Tak | Prawie niemożliwe |
Tabulatory | Tak | Tak | Nie | Tak | Nie |
Powiększanie | Tak | Niekompletne | Nie | Tak | Nie |
Drukowanie | Tak | Nie | Nie | Nie | Nie |
Otwieranie/Zapisywanie tekstu sformatowanego (RTF) | Sytem | RichMemo | Nie | System | System |
Wkładki (ang. ,,Insertables") | Tak | Tak | Nie | Nie | Nie |