zmiana koloru czesci tla w TMemo

problemy z funkcjonowaniem bibliotek, komponentów itp.

zmiana koloru czesci tla w TMemo

Nowy postprzez jabu74 - ekspert » wtorek, 12 sierpnia 2008, 15:21

witam !

chcialbym wyszczegolnic jedna linie z tekstem w TMemo (jest 5 linii) przez zmiane koloru tla tylko tej linii.

wiem, ze koloru liter nie da sie zmienic w jednej linii, a moze da sie zmienic czesc tla. :mrgreen:

pozdrawiam
Ostatnio edytowano wtorek, 12 sierpnia 2008, 19:18 przez jabu74 - ekspert, łącznie edytowano 1 raz
Avatar użytkownika
jabu74 - ekspert
 
    NieznanyNieznana

Re: zmiana koloru czesci tla w TMemo

Nowy postprzez Cyfrowy Baron » wtorek, 12 sierpnia 2008, 18:35

Tła też nie da się zmienić.
Problemem z Memo polega na tym, że nie obsługuje on żadnego formatowania, nie ma takiego mechanizmu. Kolejny problem to brak klasy TCanvas.
Można by co prawda sterować zawartością tego obiektu poprzez obsługę komunikatów, ale efekt będzie mizerny. Przede wszystkim jest to wysoce skomplikowane, poza tym przesunięcie Memo wraz z oknem, czy też przesłonięcie przez inne okno usunie efekt. No i największy chyba problem, sterowanie poprzez mapę komunikatów wymaga zdefiniowania ustawień i wyglądu elementów Memo w chwili uruchomienia programu, po jego uruchomieniu nic nie można już zmienić, czyli wygląd Memo jest definiowany podczas uruchamiania programu, a potem pozostaje jak jest do chwili ponownego odrysowania Memo.

Tego co próbujesz zrobić, nie uda się za pomocą standardowych komponentów. Miałem kiedyś takie komponenty umożliwiające kolorowanie i wyróżnianie składni, ale to było z pięć lat temu i do BCB v3. Być może znajdziesz w sieci odpowiedniejsze biblioteki.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4728
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: zmiana koloru czesci tla w TMemo

Nowy postprzez jabu74 - ekspert » sobota, 20 grudnia 2008, 20:29

Zamiast jednego Memo umieściłem kilka mniejszych Memo jedne pod drugimi. Każde z tych nowych Memo ma wysokość jednego wiersza. Teraz mogę zmieniać kolory. W ustawieniach wyłączyłem efekt 3D. W związku z powyższym mam następujące pytania:

1) Memo jest teraz płaskie ale jest ramka czarna i czy można zmienić kolor tej ramki ? (to by mi się b. przydało)
2) czy można zmienić odległość pomiędzy kolejnymi wierszami w wielowierszowym Memo np. żeby rozciągnąć w pionie kilka linijek tekstu na całe Memo (oczywiście przy stałej wielkości fontów) ?
3) jak ustawić Memo by było jednowierszowe ? chodzi mi o to by po wpisaniu nowego tekstu tamten się wykasował automatycznie i nie zajmował pamięci
Avatar użytkownika
jabu74 - ekspert
 
    NieznanyNieznana

Re: zmiana koloru czesci tla w TMemo

Nowy postprzez Cyfrowy Baron » niedziela, 21 grudnia 2008, 11:14

Obiekt Memo nie posiada funkcji umożliwiających zmianę koloru ramki, gdyż o tym decyduje API systemu Windows, nie można również zmienić szerokości wierszy, Co do jednego wiersza, to u mnie (CodeGear RADC Studio Borland C++ Builder 2007) działa coś takiego:

Kod: Zaznacz cały
//---------------------------------------------------------------------------
void __fastcall TForm1::Memo1KeyPress(TObject *Sender, char &Key)
{
if(Key == 13) Key = 0;      
}
//---------------------------------------------------------------------------


Mam pytanie, skoro stworzyłeś wiele pojedynczych obiektów Memo z pojedynczym wierszem, to dlaczego nie skorzystasz z komponentów Edit, też będziesz mógł zmieniać im kolory i obsługują tylko pojedynczy wiersz?! Z kolorem ramki gorzej, gdyż o tym nie decyduje sam komponent lecz API Windows.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4728
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: zmiana koloru czesci tla w TMemo

Nowy postprzez jabu74 - ekspert » poniedziałek, 22 grudnia 2008, 18:38

faktycznie można w tym przypadku memo zastąpić przez edit.
Avatar użytkownika
jabu74 - ekspert
 
    NieznanyNieznana


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Biblioteki i komponenty

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość

cron