![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте!
Столкнулся с тупейшей проблемой не могу решить уже два дня -есть главное окно программы MDIForm, из него по нажатию батона создаётся новое окно MDIChild: Код:
begin // Fx:=Formx.Create(self); Fx:=Formx.Create(Application); Fx.Varx:=1; Fx.Show; end; Код:
public
Varx: Integer; // variant, booleanКод:
if Varx=1 then begin ..... настройки формы end; Ещё в этой форме в некоторых случаях вылетает ошибка: Цитата:
Что за баг и как его исправить??? Пишите все предположения - проверю! Последний раз редактировалось delphicoding, 05.10.2011 в 18:50. |
|
#2
|
||||
|
||||
|
Событие OnCreate выполняется до того, как ты передашь переменную. Можно конструктор класса формы свой написать, в него передавать и значение твоей переменной.
|
|
#3
|
|||
|
|||
|
OnShow тоже пробовал - баг одинаковый.
Звучит стрёмно. ![]() |
|
#4
|
||||
|
||||
|
А почему не сделать VarX глобальной? Как вариант.
Или зачем ее инициализировать в событии OnCreate? Может только в OnShow? |
|
#5
|
|||
|
|||
|
Глобальной нельзя, тк таких окон может быть создано много и каждое со своим параметром VarX - поэтому расположить переменную можно только в самой форме.
Писал же, что пробовал и OnCreate и OnShow. |
|
#6
|
||||
|
||||
|
Есть еще события формы...
http://www.delphisources.ru/pages/fa...rm_events.html OnCreate OnShow OnPaint OnActivate OnResize OnPaint OnCloseQuery OnClose OnDeactivate OnHide OnDestroy |
|
#7
|
||||
|
||||
|
Код:
GlobalVarx:=1; Fx:=Formx.Create(Application); Fx.Varx:=1; ......................... TFormx.FormCreate(Sender: TObject); begin Varx:=GlobalVarx; ......................... |
|
#8
|
|||
|
|||
|
Цитата:
Цитата:
|
|
#9
|
||||
|
||||
|
Говорю, передай как аргумент конструктора. Внутрях конструктора присвоишь значение какой-нибудь приватной переменной, а ее в свою очередь запользуешь на своем ФормКриэйт.
|
|
#10
|
||||
|
||||
|
Цитата:
Способов туева ... , не понимаю в чём проблема? Последний раз редактировалось Viajero, 07.10.2011 в 13:02. |
|
#11
|
||||
|
||||
|
Цитата:
|
|
#12
|
|||
|
|||
|
Код:
... Tformx = class(TForm) ... private ... FVarX: Integer; ... public ... constructor Create(Owner: TComponent; Varx: Integer); ... end; implementation constructor TFormx.Create; begin FVarx:= varx; inherited Create(Owner); end; и после этого юзать Fvarx в своём классе. |
|
#13
|
|||
|
|||
|
Цитата:
![]() |
|
#14
|
|||
|
|||
|
Ребята, делфи пользуюсь давно, но как продвинутый пользователь. Недавно столкнулся с задачей сделать MDI DLL, программа была написана без модулей.. Скачал в интернете пример MDI DLL окна, прочитал данную тему, но ничего толком не понял в каком месте объявлять переменные, чтобы они были доступны двусторонне.. Стоит задача передать переменные из главной формы, чтобы изменить их и уже при закрытии MDI формы изменённые значения использовать в главной форме, помогите пожалуйста! Чувствую, моиз знаний недостаточно для этого, нервничать уже начал (
Если кому не сложно - измените пример по ссылке, пожалуйста! Нужно передать и принять в главной форме несколько переменных. Огромное спасибо заранее тому, кто поможет! Вот здесь скачал пример MDI DLL |
|
#15
|
|||
|
|||
|
Вы на дату сообщений смотрели? Новую тему создавайте
|