Strona 1 z 1
CanvasDrewLine
: 24 lis 2009 15:12
autor: Tasmil
Witam szanowne grono
Mam pytanko odnośnie linii dodanych na canvasie, a mianowicie jak je usuwać w czasie działania programu.
Mam dwa punkty, które nanoszę i potem łącze linią, chciałbym aby po przeniesieniu jednego punkty stara linia zniknęła
Proszę o podpowiedzi
Re: CanvasDrewLine
: 24 lis 2009 22:57
autor: maciekwp
O ile mi wiadomo to takich cudów jak usuwanie pojedynczo rysowanych elementów z "Canvasa" po prostu nie ma. Działa to jak tablica, kreda i gąbka i już... i trzeba się z tym pogodzić (ma to też swoje zalety).
Widzę tutaj kilka opcji:
1. Wyczyścić "Canvas" i narysować wszystko od nowa.
2. Zapamiętać obraz z "Canvasa" przed narysowaniem punktów i linii a następnie wczytywać i nanosić nowe punkty (ma to sens jedynie gdy rysujemy tam wcześniej jakieś skomplikowane tło dla tychże punktów i linii).
3. Zamiast "Canvas" użyć "Graph" (i używać funkcji do kasowania poszczególnych plotów).
Myślę że rozwiązań jest o wiele więcej niż tu przedstawione ale tu już przydało by się więcej szczegółów a może nawet jakiś przykładowy obrazek...
CanvasDrewLine
: 24 lis 2009 23:16
autor: vugie
Jeżeli Canvas jest odpowiednikiem Picture Control w LabVIEW, to można jego zawartość zrzutować na string i usunąć/zmodyfikować stosowny kawałek - wszystkie kolejne operacje są tam zapisane jedna po drugiej jako tzw. OPCODE z odpowiednimi parametrami. Indeksy w stringu gdzie występuje interesująca nas operacja można odczytać z długości stringa przed jej wykonaniem.
Więcej informacji i przykłady (w LV)
tutaj.
Re: CanvasDrewLine
: 25 lis 2009 18:52
autor: maciekwp
To se ne da...
Canvas jest tak pomyślany że ma być prosty jak budowa cepa ale w zamian bardzo szybki w działaniu (i taki właśnie jest).