Wyświetalnie tablicy z wierszami w różnych kolorach

Sprawy związane z interfejsem użytkownika - kontrolki, wskaźniki, wyświetlacze, wykresy oraz inne zagadnienia tego typu...
Awatar użytkownika
Festin
Posty: 20
Rejestracja: 21 sty 2009 12:43
Wersja środowiska: LabVIEW 8.6
Kontakt:

Wyświetalnie tablicy z wierszami w różnych kolorach

Post autor: Festin »

No właśnie :-)
Chciałem napisać sobie moduł logowania zdarzeń, który oprócz zapisywania ich do pliku, kilka ostaniach wyświetlałby na ekranie.
Ma to działać tak:
Pojawia się zdarzenie -> zapisuję je do pliku -> przesuwam elementy w tablicy -> zapisuję zdarzenie na początku tablicy -> odświeżam wyświetlanie
I tu ma problem. Chciałbym aby różne zdarzenia, w zależności od ich "wagi" miały różne kolory. W pierwszym podejściu do wyświetlania tablicy użyłem Table Control - niestety nie potrafię zróżnicować kolorystyczne wierszy.
Będę wdzięczny za sugestie :-)
załączam rysunek pokazujący mniej więcej o co mi chodzi :-)
Załączniki
monitor.png
monitor.png (8.3 KiB) Przejrzano 3855 razy
pozdrawiam
Paweł
vugie
Posty: 383
Rejestracja: 17 lis 2006 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Warszawa

Re: Wyświetalnie tablicy z wierszami w różnych kolorach

Post autor: vugie »

Nie wiem dlaczego wybrałeś akurat Table Control, ale kolor wybranej komórki zmienia się w niej tak:
tabcolor.png
tabcolor.png (1.22 KiB) Przejrzano 3842 razy
Będziesz miał z tym jednak problem, bo kiedy dodasz wiersz na początku tekst się przesunie, ale kolory "zostaną w miejscu". Będziesz więc musiał przechowywać osobną tablicę z informacją która komórka ma mieć jaki kolor i za każdym razem gdy dodajesz wiersz uaktualniać ją i przekolorowywać wszystkie komórki. Ja wybrałbym raczej kontrolkę String - ze względu na to, że przy dłuższych logach tabelki, listboxy itp. będą miały tendencję do zwalniania. String będzie miał jednak inny problem z kolorami, choć jego rozwiązanie będzie podobne. Mianowicie jego uaktualnienie (podobnie jak każdej innej kontrolki) polega na pobraniu bieżącej zawartości połączeniu jej z nową i wpisaniu CAŁOŚCI z powrotem do kontrolki. Ponieważ w drucie typu string nie są przechowywane żadne atrybuty tekstu, cały tekst pokoloruje się na domyślno, czyli tak jak dotychczasowy pierwszy znak kontrolki. Więc tutaj też trzeba będzie przechowywać kolory wszystkich linii i po uaktualnieniu tekstu przekolorowywać wszystkie linie (Metoda Get Nth Line i właściwości Selection.Start, Selection.End i Font.Color).
ODPOWIEDZ