Jako początkujący mam kolejny problem, który może okazać się albo banalny i tuzinkowy albo nierozwiązywalny. Oby te pierwsze. Ale tak na serio. Nie wiedziałem jak nazwać ten temat, więc nazwałem go edytor WYSIWYG, bo to co chcę osiągnąć może coś takiego przypominać, do rzeczy:
- Mam dwa pola tekstowe (np memo i rich edit), chodzi o to, że w jednym piszę jakiś tekst, a w drugim pojawia się, ten sam tekst tylko z tagami html, np. w rich edit pogrubiam wizualnie kawałek tekstu a w memo jest ten sam tekst tylko z tagami. Wiem temat wielokrotnie wałkowany. Mi udało się zrobić tak, że wprowadza mi tagi tylko raz, tzn. wiem czemu tak, bo za każdym razem wkleja cały tekst z rich edit - o to mój kod:
- Kod: Zaznacz cały
String pamiec;
int a;
pamiec = Memo1->Text; // zapisuje się w pamięci tekst z memo1
Memo1->SelLength != 0; // gdy zaznaczony tekst
a = Memo1->SelStart; // a przyjmuje pozycje początku zaznaczenia (czyli gdzie ma znajdować sie kursor)
Memo2->Text = pamiec; // wrzuca tekst z pamięci do Memo2
Memo2->SelStart += a; // przesuwa kursor o wartość z Memo1
Memo2->SelLength = Memo1->SelLength;
Memo2->SelText = AnsiString("<b>") + Memo2->SelText + "</b>" ;
A chciałbym, żeby pamiętał, że w danym miejscu jest już tag, jeśli miałby dodawać tag w innym miejscu, a także nie usuwał tagu <b> jakbym dodał np. <i> (czyli drugi przycisk)
Memo1 - jest to kontrolka rich edit, tylko nazwałem ją Memo1.
Jeszcze mam drugie pytanie z innej beczki, czy da się w ComboBox o ustawieniach style csOwnerDrawVariable, wyświetlać TEXT (ComboBox->Text = "cośtam"), bo opcja text znika jak wybierze się ten styl. Może są jakieś metody albo coś mam zbugowanego.
Pozdrawiam







co do parsowania, jeśli już to dużo z tym zachodu bo o ile pogrubienia, podkreślenia byłyby sprawą prostą, tak kolor, czcionka, nazwa czcionki były by kłopotliwe, wiem na razie, że dla rtf \b, \b0, to dla hrml <b> </b>, gorzej z kolorami i w ogóle zadanie wymagające dobrej znajomości, myślę, że trudnoby mi było stworzyć klasę, dlatego wymyśliłem sobie by kod był przerabiany w czasie rzeczywistym i odrazu bez wnikania w strukturę formatowania stosowaną w rtf, bo przecież mogę zainicjować pod przyciskiem bold by mi dodawał do tego samego tekstu tagi. Problem by nie usuwał wcześniejszych tagów. Hmm