Jedna procedura Canvasa do wielu form

0

Witam [uklon]

Mam w programie wiele form (chyba ze 15 ;-) ), i na każdej chce położyć tło przy pomocy Canvasa (oczywiście nie na wszystkich jednocześnie, tylko na te które akurat są widoczne) (cała ta procedura kładąca tło ma blisko 100 linijek (tak dużo bo to wszystko jest w wielu odcieniach i jeszcze ramkę kłade, nie ma sensu sie nad tym zgłębiać), wiec nie chce do każdej formy w OnPaint tego wciepywać (bo było by to bezsensu, bo co jeśli kiedys będę chciał coś zmienić ? kapa bedzie). Chciałbym wciepnąć tą procedure do głównej formy i móc potem wywoływać tą procedure z innych form, tylko że to sie ma rysować na tej formie z której ją wywołuje (a nie na tej w której jest ta procedura). no i tego właśnie nie potrafie. może są jakieś inne sposoby...

Pomoże ktoś ? będę zobowiązany ;-)

0

Może wystarczy Sender ?

0

Dodaj sobie do tej procedury rysującej jeszcze jeden parametr - typu TCanvas i rysuj właśnie na tym canvasie...

0

Dzieki Krzemin [browar] działa kapitalnie

0

Mam pewną sugestię:
jeśli w trakcie działania programu tło się nie zmienia to warto wyrysowac wszystko na zmiennej globalnej typu TCanvas, a potem tylko Form.Canvas.Assign(ZmiennaCanvasZawierajacaTlo);
To na pewno skróci czas działania aplikacji.

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