z kontrolki do obiektu...

0

napisalem sobie fantastyczny zestaw klas z dziedziczeniem i metodami, polami, wlasciwosciami
i wszystko jest och! i ach! (i nawet dziala:) tylko jest teraz problem....

Moje fantastyczne obiekty dostaja na wejsciu tablice bajtow
wykonuja rozne operacje i na koncu w odpowiednich polach
mam dostep do konkretnych wynikow.

glowny program wyglada mniej wiecej tak:

Uklad.PobierzDane(TablicaBajtow);
Uklad.Oblicz;
Form1.wyswietl;

w procedurze Form1.Wyswietl
jest <ort>mnÓstwo</ort> polecen typu

LabelCosTam.caption := uklad.CosTam.text;
ImagePrzelacznik.picture.bitmap.loadfromresourcename(hinstance,uklad.Przelacznik.NazwaObrazka);

no i nagle okazalo sie ze potrzebuje moc sie odwolac za pomoca kontrolki do
obiektu z ktorego pochodza prezentowane dane.

np po kliknieciu w ImagePrzelacznik chcialbym zeby zmienilo sie jakies pole obiektu uklad.przelacznik

pytanie do Was jest takie czy jest jakis dobry sposob powiazania kontrolki z obiektem?

dodam ze nie mam zbyt duzo czasu na powazne zmiany w moich BAJERANCKICH OBIEKTACH bo calosc musi byc gotowa za dwa dni:/ a ja jeszcze daleko w lesie...

  • probowalem np w polu TAG trzymac wskaznik do obiektu(przerobiony na integer) ale skutkowalo to blednymi odwolaniami do pamieci:(

//dopisane
// udalo mi sie zrealizowac dostep do zrodla przez wskaznik, ale mysle ze jest to
// 'sieganie prawa reka za lewe ucho'...
// jesli macie lepsze pomysly chetnie sie z nimi zapoznam!

  • myslalem tez nad modyfikacja kontrolek zeby im dodac jakies pole np ZRODLO i do niego przypisywac obiekt zrodlowy ale na takie zabawy wlasnie nie mam czasu:/
0

Do modyfikacji pól służą metody, ma to na celu ochronę pól. Stwórz odpowiednie metody i wywołuj je w zdarzeniach kontrolek

type
Tklasa = class
pole :jakiśtyp;
public
procedure ModyfikujPole;
end;

Potem np. w OnClick TKlasa.ModyfikujPole. Ważne aby nie modyfikować pól tak sobie, bo to się kłóci z ideą programowania obiektowego.

0

dzieki

jesli o mnie chodzi mozna skasowac temat

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