Przesyłanie żądań do formatki spoza niej (Visual C++)

0

Cześć,
czy w Visual C++ 2008 Express w projekcie Windows Forms Application jest możliwość przesyłania żądań do formatki (np. zmiana tekstu etykiety, narysowanie obrazka) spoza niej? Jeżeli tak, to jak to zrobić?

Pozdrawiam,
Paweł

0

Rozumiem, że chodzi Ci o dostanie się do etykiety z poza klasy, tak?
Tak można, ale etykieta musi być publiczna, lub chroniona dziedziczona

0

Nie do końca.
Precyzyjniej:
mamy trzy pliki Form1.h, coreGUI.cpp oraz core.cpp.
Jeden został utworzony automatycznie przez środowisko MS Visual C++, drugi za pomocą designera, trzeci zawiera kod
napisany całkowicie przeze mnie. Jak wiemy coreGUI.cpp jest odpowiedzialny za utworzenie instancji Form1. Teraz chciałbym
mieć możliwość odwołania się do utworzonej przez coreGUI.cpp formatki z poziomu kodu z core.cpp.
Pierwsza myśl, to zadeklarowanie zmiennej globalnej form:

Form1^ form;
(...)
form=gcnew Form;

Ale niestety skutkuje to jedynie pojawieniem się komunikatu:
global or static variable may not have managed type (...)

Naiwnym rozwiązaniem byłoby wywołanie tego forma z core.cpp, ale to nadal na nic, bo wiele innych plików będzie musiało
modyfikować ten Form.

Pozdrawiam,
Paweł

0

C++/CLI tylko liznąłem, dlatego nie pomogę Ci za wiele, ale skoro wydaje Ci się, że użycie zmiennej globalnej byłoby rozwiązaniem, to stwórz zmienną statyczną. Jak wiadomo w C# i Java wszystko musi być zamknięte w klasach, dlatego wykluczyli używanie zmiennych globalnych. C++/CLI z kolei, to odwzorowanie C# poprzez kod w C++, więc także nie możesz tworzyć zmiennych globalnych.

0

Ładniej będzie dać w form2 publiczną metodę do zmiany labela i innych rzeczy i ją wywoływać z form1.

0

Użycie zmiennej statycznej odpada z tego samego powodu, z którego nie może być stosowana zmienna globalna (zobacz komunikat).

0

Xeo, tak, ale problemem jest, że tych Formów, a właściwie plików, bo ściśle rzecz biorąc one nie zawierają formatek, które mają się odwoływać do danej instancji Form1 będzie całe mnóstwo. Jak teraz z każdego z nich odwoływać się do tejże instancji?

0

No to musisz sobie jakoś przekazać formę do innych klas i ją sobie zapisać.

0

Ok, chyba nie da się tak zrobić, bo dostalibyśmy zapętlone klasy.
W takim razie GUI musi być w pewnym sensie nadrzędne w stosunku do reszty projektu.

Pozdrawiam,
Paweł

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