Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Функция... [D5, Win95/98]


First_May ©   (2002-11-12 10:19:00) 

Здравствуйте! У меня есть некоторая функция, которую я вызываю следующим образом:

function Vocabs_(cod: integer): integer;
begin
CodVoc:=cod;
FormListVocabs:=TFormListVocabs.Create(Application);
FormListVocabs.ShowModal;
FormListVocabs.Free;
Result:=CodVoc;
end;

Подскажите пожалуйста, возможно ли как нибудь реализовать подобную вещь, но только вместо ShowModal использовать Show?


First_May   (2002-11-12 12:05:00) [1]

Ясно, спасибо!!!!!


Skier   (2002-11-12 11:45:00) [2]

>First_May
В принципе, да.
- первая процедура создает форму -

FormListVocabs:=TFormListVocabs.Create(Application);
FormListVocabs.Show;

- вторая (обработчик OnClose)- возвращает результат


First_May   (2002-11-12 11:42:00) [3]

Таким образом, первая процедура создает форму, а вторая при уничтожении формы возвращает результат. Я правильно понял???


Skier   (2002-11-12 11:12:00) [4]

>First_May
1) Советую всё-таки делать ShowModal (иначе писать такую функцию как у тебя - изврат...)
2) Если всё-таки нужен Show, то лучше передавать всё что нужно
в обработчике TFormListVocabs.OnClose, поставив там
Action := caFree;


First_May   (2002-11-12 11:10:00) [5]

То Юрий Федоров © (12.11.02 11:06)
То есть, надо писать вместо одной функции две???


First_May   (2002-11-12 11:07:00) [6]

То Николай Быков © (12.11.02 11:03)
Потому что, после ShowModal идет метод Free, а ресурсы освобождать надо.


Юрий Федоров   (2002-11-12 11:06:00) [7]

>Николай Быков © (12.11.02 11:03)
Не получается потому, что управление выходит из функции до закрытия формы.

Я думаю, должна быть процедура, которая открывает форму, которая по закрытию нотифицирует вызывавшую сторону об изменениях


First_May   (2002-11-12 11:05:00) [8]

Функция добавляет запись в базу, а код этой записи возвращаю в CodVoc, а затем после разрушения формы перемещаюсь на эту запись...


Николай Быков   (2002-11-12 11:03:00) [9]


> First_May © (12.11.02 10:41)
> То Bsl
> Ты меня наверное не понял, я хотел бы узнать, как реализовать
> подобную вещь, но только с методом Show...

А почему у тебя не получается Show вместо ShowModal?


Skier   (2002-11-12 10:52:00) [10]

>First_May
1) А что есть CodVoc ?
2) И раскажи про цель твоей функции по-подробней...


First_May   (2002-11-12 10:41:00) [11]

То Bsl
Ты меня наверное не понял, я хотел бы узнать, как реализовать подобную вещь, но только с методом Show...


Bsl   (2002-11-12 10:35:00) [12]

А почему нельзя?
Только при закрытии окна Action:=caFree;

А то, что написал ты, лучше писать так:

with TForm.Create(Self) do
try
ShowModal;
finally
Free;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо