Вопрос собственно в Теме, что и где нужно прописать что бы иметь возможность обращаться (на прямую конечно) к компонентам на форме с другого юнита не имеющего формы. (напрмимер проверить положение CheckBox-a )
А то приходиться засорять юнит с формой промежуточными переменными и делать обращение к ним
uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} Interfaces, // this includes the LCL widgetset Forms { you can add units after this }, Unit1, Unit2;
implementation begin If Form1.CheckBox1.Checked then Form1.Label1.Caption:='It works' ;
end.
Странно, что это компилируется. А где функция или процедура какая-нибудь? Видно компилятор воспринимает это, как initialization-секцию. Соответственно, выполняется этот код еще до того, как начинает работатать Application.Initialize, CreateForm и т.д.
Извиняюсь за возможно невнятный вопрос. Дело значит такое:
Имеется программа состоящая из двух юнитов. Первый юнит содержит форму (главный) второй юнит форму не содержит (тоесть был создан не как ...New Form а как ...New Unit) по тому как дополнительная форма мне ненужна а код большой, что требует его разноса на несколько юнитов. На форме лежит CheckBox (к приемру)
Вопрос! Что и где нужно прописать что бы иметь возможность обращения к чек боксу из второго юнита, на прямую?
На прямую иметеся в виду без промежуточных переменных (можно создать булевую переменную и в первом юните приравнять её к чек боксу а во втором юните написать
Uses Unit1
и во втором юните уже проверять переменную а не чек бокс, что кстати работает! но появляется лишнаяя переменная и дополнительный код)
Коды юнитов были приведены выше.