![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Функция... [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;