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

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

Модальные окна [D7, XP]


Nastya ©   (2008-11-21 01:10:00) 

Помогите плз, не знаю как быть

---------------------------------


if (MyDialogForm.ShowModal = mrOk) then
 begin
   DModule.IBQuery.Close;
     DModule.IBQuery.SQL.Text := 'delete from orders where id = '+ IntToStr (OrderBoard[TSpeedButton(Sender).Tag].ord_id);
   DModule.IBQuery.ExecSQL;

    DModule.IBTransaction.CommitRetaining;
    DModule.IBTransaction.Active:=True;
    MainF.OpenData;

    DelControls;
    FormOrders;
    //FormShow(ShowAbonOrdersF);
 end;

---------------------------------------

в этом кусочке кода вызывается модальное окно с кнопкой у которой
modalResult = mrOk и по нажатию на которой вылетает исключение AccessViolation, а сам код в условии работает нормально если не пользовать модальное окно, а просто делать эту форму MyDialogForm.Visible: = true,
помогите плз, что-то тут неладное с этими модальными формами и модал-резултами!


Германн   (2008-11-22 02:24:00) [1]


> для пользования модальных форм есть ж/б шаблон:

Железобетонный?
:)


Anatoly Podgoretsky   (2008-11-22 00:01:00) [2]

> Leonid Troyanovsky  (21.11.2008 23:45:12)  [12]

И глобальную переменную, при том сразу же.


Leonid Troyanovsky   (2008-11-21 23:45:00) [3]


> Nastya   (21.11.08 01:56) [8]

> к примеру
> procedure TShowAbonOrdersF.DelControls;

А зачем на такая процедура?
Парент и так уничтожит собс-ные контролы при своей кончине.
Последующий FormOrders;//а эта создает - жизнь после смерти.

Да, и, во-ще, для пользования модальных форм есть ж/б шаблон:

with TMyModalForm.Create(nil) do
 try
    ..
    ShowModal;
    ..
 finally
   Free;
 end;

Ну, и ясное дело, что надо удалить оные формы из auto-created.
--
Regards, LVT.


Сергей М.   (2008-11-21 19:32:00) [4]


> Не важно


Ну раз не важно, то тряси бубен.


Nastya   (2008-11-21 18:58:00) [5]


> А где код FormOrders ?

Не важно не работает и без него,
можно конечно, как исчезло модальное окно сделать кнопку на вызывающей форме для обновления таблички заказов

begin
  DelControls; //чистит конкролы
   FormOrders;//а эта создает

end;

Этот вариант работает безотказно, но не устраевает, что-то тут с модал-резултами!


Сергей М.   (2008-11-21 08:40:00) [6]


> эти две процедуры не хотят работь


А где код FormOrders ?


> из за них вылетает ошибка


Что, вот прямо так и говорит "я, ошибка, вылетаю таким-то авиарейсом" ?)


Nastya   (2008-11-21 01:56:00) [7]

вот эти две процедуры не хотят работь, из за них вылетает ошибка

они описаны в вызывающем модуле
DelControls; FormOrders;

работеют нормально сами по себе:))

к примеру
procedure TShowAbonOrdersF.DelControls;
var
 i: Integer;
begin

if(ScrollBox1.ControlCount > 0) then
begin
 SetLength(OrderBoard, 0);
 for i:= 0 to ScrollBox1.ControlCount - 1  do
   ScrollBox1.Controls[0].Free;
end;

end;


Nastya   (2008-11-21 01:50:00) [8]

Да то работало "пол дня" номально, потом опять глючить начало, хотя в коде ничего не меняла


KilkennyCat   (2008-11-21 01:48:00) [9]

Это наводящие вопросы. Мало информации, по крайней мере, для меня. Но предполагаю, что идет путаница, и какой-то поток прекращает свое существование не совсем когда надо...


Nastya   (2008-11-21 01:46:00) [10]


> принадлежит MyDialogForm?


> тогда может имеет смысл вызывать MyDialogForm из нее?

Чего это вы начали вопросы задавать?!! Отвечайте!:))))


Nastya   (2008-11-21 01:44:00) [11]


> тогда может имеет смысл вызывать MyDialogForm из нее?

попробую, правда вот еще что: MyDialogForm вызывается тоже из модальной формы(showModal)


KilkennyCat   (2008-11-21 01:39:00) [12]

тогда может имеет смысл вызывать MyDialogForm из нее?


Nastya   (2008-11-21 01:36:00) [13]

DModule - это отдельная форма:TDataModule


KilkennyCat   (2008-11-21 01:26:00) [14]


> DModule

принадлежит MyDialogForm?


Наверх

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