Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.04.2014, 14:41
Zazazu Zazazu вне форума
Прохожий
 
Регистрация: 13.01.2014
Сообщения: 11
Версия Delphi: delphi7
Репутация: 10
Стрелка События на Button

есть кнопка ButtonImportFile на панеле управления, при нажатии на нее открывается окно ImportFile, куда можно импортировать документ эксел и после загрузки, нажимаем кнопку Ок и уже появляется новое окно INPUT, где создается TreeVier с названием открывшегося эксел документа . когда нажимаю второй раз на кнопку ButtonImportFile , создается второе окно(копия) ImportFile. Как сделать так, чтобы когда нажимаешь ButtonImportFile второй и последующие разы, не создавалось окно с новым TreeVier , а создавалось на старом окне под старым TreeVier , новый TreeVier
Ответить с цитированием
  #2  
Старый 29.04.2014, 14:51
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Zazazu
Как сделать так, чтобы когда нажимаешь ButtonImportFile второй и последующие разы, не создавалось окно с новым TreeVier , а создавалось на старом окне под старым TreeVier , новый TreeVier
Всё просто - по нажатию кнопки ButtonImportFile проверяешь (конструкцией if...then...else) если такого окна ещё нет - создаёшь, если же уже есть - используешь его вместо создания нового.
Ответить с цитированием
  #3  
Старый 30.04.2014, 09:10
Zazazu Zazazu вне форума
Прохожий
 
Регистрация: 13.01.2014
Сообщения: 11
Версия Delphi: delphi7
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
Всё просто - по нажатию кнопки ButtonImportFile проверяешь (конструкцией if...then...else) если такого окна ещё нет - создаёшь, если же уже есть - используешь его вместо создания нового.
кнопка находитьмя в главном окне на панеле инструментов
Код:
procedure TForm1.ButtonImportFile(sender:TObj ect);
var fr:TForm;
begin
fr:=TFormInputData.Create(Applicati on);
fr.Show;
end;
после нажатия создается окно Inputdata куда, импортируется в StringGrid эксел документ и после нажатия кнопки ButtonOk(внизу код), создается окно FormInput, где появляется treeView с названием загруженного эксел дока

Код:
procedure TFormInputdata.ButtonOkClick(Sender :TObject);
begin
FormInput:=TFormInput.Create(Applic ation);
FormInput.treeView1.Visible:=true;
end;

сорри за вопрос, но куда и как нужно вставить if...then...else

MAD: оформляйте код!

Последний раз редактировалось M.A.D.M.A.N., 30.04.2014 в 09:45.
Ответить с цитированием
  #4  
Старый 30.04.2014, 09:25
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Zazazu
кнопка находитьмя в главном окне на панеле инструментов
procedure TForm1.ButtonImportFile(sender:TObj ect);
var fr:TForm;
begin
fr:=TFormInputData.Create(Applicati on);
fr.Show;
end;
после нажатия создается окно Inputdata куда, импортируется в StringGrid эксел документ и после нажатия кнопки ButtonOk(внизу код), создается окно FormInput, где появляется treeView с названием загруженного эксел дока

procedure TFormInputdata.ButtonOkClick(Sender :TObject);
begin
FormInput:=TFormInput.Create(Applic ation);
FormInput.treeView1.Visible:=true;
end;

сорри за вопрос, но куда и как нужно вставить if...then...else
А какое окно не должно создаваться более одного раза? TFormInputData или TFormInput ?

Вот пример для TFormInputData:
Код:
var
  fr: TForm = nil;

procedure TForm1.ButtonImportFileClick(Sender: TObject);
begin
  // Если окно ещё не создано - создаём его
  if not Assigned(fr) then fr := TFormInputData.Create(Application);
  fr.Show;
end;

Аналогично и для TFormInputdata.
Ответить с цитированием
  #5  
Старый 30.04.2014, 09:35
Zazazu Zazazu вне форума
Прохожий
 
Регистрация: 13.01.2014
Сообщения: 11
Версия Delphi: delphi7
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
А какое окно не должно создаваться более одного раза? TFormInputData или TFormInput ?

Вот пример для TFormInputData:
Код:
var
  fr: TForm = nil;

procedure TForm1.ButtonImportFileClick(Sender: TObject);
begin
  // Если окно ещё не создано - создаём его
  if not Assigned(fr) then fr := TFormInputData.Create(Application);
  fr.Show;
end;

Аналогично и для TFormInputdata.
окно TFormInput не должно создаваться второй раз
Ответить с цитированием
  #6  
Старый 30.04.2014, 09:38
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Zazazu
окно TFormInput не должно создаваться второй раз
Вот код который я привёл и не будет создавать более одного окна типа TFormInput.
Ответить с цитированием
  #7  
Старый 30.04.2014, 10:38
Zazazu Zazazu вне форума
Прохожий
 
Регистрация: 13.01.2014
Сообщения: 11
Версия Delphi: delphi7
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
Вот код который я привёл и не будет создавать более одного окна типа TFormInput.
у меня не получается, если я вам отправлю прогу, можете посмотреть?
Ответить с цитированием
  #8  
Старый 30.04.2014, 10:42
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Zazazu
у меня не получается, если я вам отправлю прогу, можете посмотреть?
Выкладывай прогу здесь (или ссылку на неё через файлообменник) - если я не смогу помочь, другие помогут.
Ответить с цитированием
  #9  
Старый 30.04.2014, 10:49
Zazazu Zazazu вне форума
Прохожий
 
Регистрация: 13.01.2014
Сообщения: 11
Версия Delphi: delphi7
Репутация: 10
По умолчанию

вот программный код
Вложения
Тип файла: rar Help[1].rar (234.6 Кбайт, 2 просмотров)
Ответить с цитированием
  #10  
Старый 30.04.2014, 11:05
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Zazazu
вот программный код
Мой вариант кода работает - второе окно TFormInputData не создаётся - проверил.
Скорее всего ты не полностью мой код скопировал или вставил. Вот вырезка реализации модуля Unit1 с моим кодом:
Код:
.....
implementation

uses
  Unit2, Unit3;

{$R *.dfm}

var
  fr: TForm = nil;

procedure TForm1.ButtonImportFileClick(Sender: TObject);
begin
  // Если окно ещё не создано - создаём его
  if not Assigned(fr) then fr := TFormInputData.Create(Application);
  fr.Show;
end;

end.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:33.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter