
public:
int Value;#include "Unit2.h"
#include "Unit1.h"
//---------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
int x = Form1->Value;
}
//---------------------------------------------------------------
Przekazywanie obiektów i funkcji pomiędzy formularzami.
Jeżeli chcesz, żeby Unit2 "widział" zmienną z Unit1 to musisz ja zadeklarować w pliku nagłówkowym Unit1.h w sekcji public,
mam dane #include "Unit1.cpp" w Unit2.cpp.
int g_variable;extern int g_variable;
tworzenie modulów.
Tak też mozna, tylko po co sobie tak komplikować życie.
Zakładam, że on ma jakąś tam zmienną w jednostce [...] W takim wypadku wystarczy zmienna publiczna.

Dodanie extern przy deklaracji zmiennej to żadna komplikacja.

Co do extern i deklaracji zmiennej, to równie dobrze można posłużyć się plikiem nagłówkowym Unit1.h i zadeklarować zmienną z poleceniem extern poza klasą formularza, w ten sposób można obejść się bez dodatkowych plików.
W sytuacji gdy zmienna steruje czymś, przechowuje jakąś wartość w module Unit1, a moduł Unit2 tylko coś zmienia w tej zmiennej, to chyba lepiej jest się posłużyć zmienną publiczną, kod będzie przejrzystszy.


Cyfrowy Baron napisał(a):Co do występowania obiektu jako składnika publicznego w różnych klasach, to nie powinien wywoływać problemów, gdyż zawsze musi być adresowany jako element konkretnej klasy.


Tworzenie modułów.

Powrót do Ogólne problemy z programowaniem
Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 3 gości