Текущий архив: 2002.12.26;
Скачать: CL | DM;
Внизобращение к объекту модальной формы Найти похожие ветки
← →
de2 (2002-12-16 14:59) [0]почему если запускаю форму модально (TForm1.Create(application).ShowModal;) к ней нельзя обращаться например так Form1.Query1.Open даже из нее самой, а можно только Query1.Open?
как обратиться к объекту с модальной формы из другой формы?
← →
Skier (2002-12-16 15:02) [1]>de2
Да потому что...
Что у тебя при таком коде будет в переменной Form1 ?!
Поразмысли ?
← →
Calm (2002-12-16 15:03) [2]Да ничего там не будет :))
← →
de2 (2002-12-16 15:05) [3]т.е. получается что обратиться к объекту с модальной формы из другой формы нельзя?
← →
Reindeer Moss Eater (2002-12-16 15:05) [4]Неа. Там будет указатель. Указывающий на ничего :))
← →
Reindeer Moss Eater (2002-12-16 15:06) [5]т.е. получается что обратиться к объекту с модальной формы из другой формы нельзя?
Как раз можно.
← →
Lord Warlock (2002-12-16 15:08) [6]
> т.е. получается что обратиться к объекту с модальной формы
> из другой формы нельзя?
>
> Как раз можно.
После того, как ее закрыть
← →
Calm (2002-12-16 15:08) [7]
> de2 (16.12.02 15:05)
> т.е. получается что обратиться к объекту с модальной формы
> из другой формы нельзя?
Т.е. не надо терять указатели на объекты.
Нужно делать
Form1:=TForm1.Create(application);
Form1.ShowModal;
Если уж очень хочется красивого кода, то
Form1:=TForm1.Create(application).ShowModal;
Но в любом случае сначало нужно инициализировать Form1, прежде чем к ней обращаться.
← →
Reindeer Moss Eater (2002-12-16 15:09) [8]>После того, как ее закрыть
А до закрытия кто мне помешает сделать это?
← →
KSergey (2002-12-16 15:10) [9]> de2 (16.12.02 15:05)
> т.е. получается что обратиться к объекту с модальной формы
> из другой формы нельзя?
В общем случае - можно.
В вашем - немного напрягшись.
Я понимаю, что общественность не поддержит и, вообще-то, Skier (16.12.02 15:02) прав, но
Кратенько: чтобы можно было обратиться по Form1.Query1, в Form1 должна быть ссылка на эту самую форму. Сама по себе она там появиться не может, верно? Ее туда надо запихнуть, логично?
Мастера, блин! Кончайте прикалываться над народом! ;)
← →
KSergey (2002-12-16 15:11) [10]Во как плотненько легло ;) на 2 сек. я опоздал... ;)
← →
KSergey (2002-12-16 15:13) [11]> Calm © (16.12.02 15:08)
> Form1:=TForm1.Create(application).ShowModal;
Ой, а ShowModal разве ссылку на форму возвращает? ;) Аккуратнее с красивым кодом ;)
← →
Lord Warlock (2002-12-16 15:14) [12]
> >После того, как ее закрыть
> А до закрытия кто мне помешает сделать это?
Modal и мешает
← →
Skier (2002-12-16 15:14) [13]Form1:=TForm1.Create(application).ShowModal;
ОЙ-ОЙ-ОЙ ! Видимо шутка. :)))
← →
FreeLancer (2002-12-16 15:14) [14]
> Если уж очень хочется красивого кода, то
> Form1:=TForm1.Create(application).ShowModal;
Во бред.
Application.CreateForm(TForm1, Form1);
... или
Form1 := TForm1.Create(Self);
Form1 := TForm1.Create(Application);
← →
Юрий Федоров (2002-12-16 15:15) [15]Интересная логика :
(TForm1.Create(application).ShowModal;) - нельзя обратиться к Form1, а например
(TForm1.Create(application).Show;) можно? Не очень понятно, почему автор ветки грешит именно на модальность показа :):):)
← →
Calm (2002-12-16 15:15) [16]
> > Form1:=TForm1.Create(application).ShowModal;
>
> Ой, а ShowModal разве ссылку на форму возвращает? ;) Аккуратнее
> с красивым кодом ;)
А разве не получится? Ссылку возвращает TForm1.Create(application). Одновременно присваиваем это значение Form1 и вызываем у этого объекта его метод.
Сейчас я проверю, по-моему должно получиться.
А с красивым кодом, действиетельно, нужно быть аккуратным. Лучше надежнее, чем красивее...
← →
Reindeer Moss Eater (2002-12-16 15:16) [17]Добрый совет и без прикола:
В модулях модальных форм удаляй в интерфейсной части декларацию переменной экземпляра формы (var Form1:TForm)
Исчезнет соблазн использовать неиницизированные ссылки
← →
Anatoly Podgoretsky (2002-12-16 15:16) [18]Calm © (16.12.02 15:08)
Ты бы проверл послений код в компиляторе
← →
Calm (2002-12-16 15:17) [19]Загнался я. Нельзя так делать.
← →
neXt (2002-12-16 16:02) [20]есть ещё способ написать тоже самое красиво и ошибок легко наляпать - это with:
with TForm1.Create(Application) do
begin
Query1.Open;
ShowModal;
Free;
end;
Это для любителей красоты и острых ощущений.
← →
Reindeer Moss Eater (2002-12-16 16:12) [21]Любители настоящей красоты никогда не делают модули взаимозависимыми.
Иными словами из модуля формы TForm1 не обращаются к Form2.Query1
← →
neXt (2002-12-16 16:24) [22]согласен, хотя я и не любитель красоты, просто в этом топике пример привели, я и припечатал, для полноты...
Страницы: 1 вся ветка
Текущий архив: 2002.12.26;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.007 c