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

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

Помогите срочно надо [D5, Win95/98]


ava ©   (2002-02-04 14:45:00) 

Немогу разобраться почему создается две формы MDIchild




procedure TFMyn.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
n: Integer;
begin
n := Node.StateIndex;
case n of
1: begin
if ActiveMDIChild <> nil then
ActiveMDIChild.Close;
if not DataModule1.TNBal_1.FindKey([FMyn.DBLookupComboBox2.Text,FMyn.DBLookupComboBox1.Text]) then
begin
ShowMessage ("Ввод новых данных!!!");
begin
DataModule1.TNBal_1.Insert;
DataModule1.TNBal_1Name.Value := FMyn.DBLookupComboBox1.Text;
Form1 := TForm1.Create(self);
Form1.Button1.Visible := False;
Form1.Button2.Visible := True;
Form1.Button3.Visible := True;
Form1.DBEdit1.SetFocus;
end;
end;
Form1 := TForm1.Create(self);
end;


2: begin
if ActiveMDIChild <> nil then
ActiveMDIChild.Close;
Form2 := TForm2.Create(self);
end;
3: begin
if ActiveMDIChild <> nil then
ActiveMDIChild.Close;
Form3 := TForm3.Create(self);
end;
end;
end;


ava   (2002-02-04 16:12:00) [1]

Спасибо заработало!!!!!!!!!!!


BlankAlex   (2002-02-04 16:05:00) [2]

Те же яйца, только в профиль


ava   (2002-02-04 16:02:00) [3]

а через ELSE нельзя?


BlankAlex   (2002-02-04 16:00:00) [4]

Ты же сначала если нет записи, добавляешь ее и создаешь форму, а когда выходишь из Begin...End, опять ее создаешь. Добавь Boolean переменную, чтобы Form1 := TForm1.Create(self) вызывалось всего один раз


ava   (2002-02-04 15:57:00) [5]

пункт 2,3 без проверки условия работает нормально

если есть запись то тоже все нормально,

а если нет то почемуто два раза?????????????


BlankAlex   (2002-02-04 15:54:00) [6]

Ты во всех пунктах делаешь
if ActiveMDIChild <> nil then ActiveMDIChild.Close без проверки типа MDIChilsd, может быть ты уничтожаешь эту форму сразу после создания?


ava   (2002-02-04 15:47:00) [7]

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

но немогу понять почему


ava   (2002-02-04 15:30:00) [8]

> Вижу, что у тебя по п1. два раза вызывается
> Form1 := TForm1.Create(self);
> И еще по OnClose делаешь action:=caFree

OnClose action:=caFree есть

Где ошибка Form1 := TForm1.Create(self);

почему два раза если проверяется условие и второй раз
создается при выполнении условия



BlankAlex   (2002-02-04 14:58:00) [9]

Вижу, что у тебя по п1. два раза вызывается
Form1 := TForm1.Create(self);
И еще по OnClose делаешь action:=caFree


ava   (2002-02-04 14:50:00) [10]

Приятно сам собой вести беседу


Наверх

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