Formatowanie zawartości komórek komponentu StringGrid

Odpowiedz Nowy wątek
2014-12-30 15:45
0

Dopiero zaczynam zabawę z tym komponentem. Na razie nie mam większych problemów. Jednak chciałbym, żeby wyświetlanych było kilka serii danych. Każda miałaby mieć swoją belkę tytułową, którą powinny stanowić trzy scalone komórki w wierszu. Druga sprawa to zmiana koloru czcionki w pierwszej kolumnie. Ostatnia sprawa to wyśrodkowanie tekstu w komórce.

Nie oczekuje gotowej odpowiedzi. Sam szukałem trochę na ten temat, ale żadnych konkretów nie widziałem. Oczywiście były jakieś kody podane. Była też informacja że w takiej sytuacji trzeba samemu wszystko "rysować". Problem w tym, że ja nie wiem jak za to rysowanie się zabrać. Moglibyście mnie jakoś naprowadzić?
Dzięki

Tytułuj sensowniej wątki; - furious programming 2014-12-31 01:41

Pozostało 580 znaków

2014-12-31 01:40

Tak, musisz sam ręcznie rysować komórki i ich zawartość; Do tego celu służy zdarzenie OnDrawCell komponentu; Tylko ustaw właściwość DefaultDrawing na False, bo inaczej Twoje zdarzenie będzie ignorowane;

Jeśli o samo rysowanie chodzi, to zapoznaj się z klasą TCanvas, jej metodami i właściwościami - bez tego ani rusz; Po drugie pobaw się w testowym programie i popróbuj używania tych metod, pozmieniaj zawartość właściwości Pen, Brush i Font i sprawdź jak działają - to jest obowiązkowe;

Aby rozpoznać która komórka będzie rysowana w zdarzeniu, skorzystaj z parametrów aCol i aRow; Jeśli ilość kolumn tytułowych jest zmienna - do określenia pierwszej "nie-tytułowej" kolumny użyj właściwości FixedCols (to samo z tytułowymi wierszami, jeśli chcesz rozpoznać pierwszy "nie-tytułowy" wiersz); Obszar po jakim możesz rysować dostajesz w parametrze aRect, a styl komórki (np. zaznaczona, zfokusowana, wciśnięta itd.) w argumencie aState;

Zbyt obszerny to temat, aby wszystko opisać; Po prostu zapoznaj się najpierw z klasą płótna, później poćwicz rysowanie różnych rzeczy, a jak już opanujesz w miarę ten temat, to oprogramuj swój komponent.


edytowany 1x, ostatnio: furious programming, 2014-12-31 01:40

Pozostało 580 znaków

2014-12-31 01:40

Tak, musisz sam ręcznie rysować komórki i ich zawartość; Do tego celu służy zdarzenie OnDrawCell komponentu; Tylko ustaw właściwość DefaultDrawing na False, bo inaczej Twoje zdarzenie będzie ignorowane;

Jeśli o samo rysowanie chodzi, to zapoznaj się z klasą TCanvas, jej metodami i właściwościami - bez tego ani rusz; Po drugie pobaw się w testowym programie i popróbuj używania tych metod, pozmieniaj zawartość właściwości Pen, Brush i Font i sprawdź jak działają - to jest obowiązkowe;

Aby rozpoznać która komórka będzie rysowana w zdarzeniu, skorzystaj z parametrów aCol i aRow; Jeśli ilość kolumn tytułowych jest zmienna - do określenia pierwszej "nie-tytułowej" kolumny użyj właściwości FixedCols (to samo z tytułowymi wierszami, jeśli chcesz rozpoznać pierwszy "nie-tytułowy" wiersz); Obszar po jakim możesz rysować dostajesz w parametrze aRect, a styl komórki (np. zaznaczona, zfokusowana, wciśnięta itd.) w argumencie aState;

Zbyt obszerny to temat, aby wszystko opisać; Po prostu zapoznaj się najpierw z klasą płótna, później poćwicz rysowanie różnych rzeczy, a jak już opanujesz w miarę ten temat, to oprogramuj swój komponent.


edytowany 1x, ostatnio: furious programming, 2014-12-31 01:40

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0