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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.12.2006, 19:47
Delphinic Delphinic вне форума
Начинающий
 
Регистрация: 20.11.2006
Сообщения: 134
Репутация: 15
По умолчанию Форма не закрывается что ли..

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

Procedure Нажали кнопку;
Begin
Form2.ShowModal;
End;

А во второй форме есть процедура
FormCreate;
Тоесть при загрузке формы считываются какие то там параметры..

Но проблемма в том что только если в первый раз я загружаю форму2 параметры считываются и все!! Повторно можно только считать если выйти полностью из основной формы, тоесть выгрузить программу всю полностью и запустить снова.
А я хотел бы чтоб вторая форма была независима.
Ответить с цитированием
  #2  
Старый 07.12.2006, 20:03
Delphinic Delphinic вне форума
Начинающий
 
Регистрация: 20.11.2006
Сообщения: 134
Репутация: 15
По умолчанию

Доперло до меня.
Надо событие OnActivate создать.
Ответить с цитированием
  #3  
Старый 08.12.2006, 14:17
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

OnActivate будет срабатывать каждый раз, когда пользователь будет переключаться на форму из другой. Бывает, что это не удобно, и что нужно считывать большой объем данных еще до отображения формы, каждый раз, когда она показывается. В таких случаях, лучше использовать OnShow.
__________________
THE CRACKER IS OUT THERE
Ответить с цитированием
  #4  
Старый 08.12.2006, 16:55
Holy Holy вне форума
Новичок
 
Регистрация: 31.07.2006
Сообщения: 55
Репутация: 10
По умолчанию

Если речь идет о модальном отображении формы, то делай процедурку вроде этой:

Код:
unit Unit2;

interface

uses
  Classes, Forms;

type
  TForm2 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  function ShowForm2(AOwner: TComponent): Integer;

implementation

{$R *.dfm}

function ShowForm2(AOwner: TComponent): Integer;
var
  Form2: TForm2;
begin
  Form2 := TForm2.Create(AOwner);
  try
    Result := Form2.ShowModal;
  finally
    Form2.Free;
  end;
end;

end.

Не забудь убрать автосоздание этой формы в проекте.

На кнопку вешаешь
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if ShowForm2(Self) = mrOK then
    ShowMessage('Форму закрыли по кнопке ОК');
end;

Для заполнения формы используй события onCreate или onShow (замечу, что мне встречались визуальные компоненты, которые не хотели заполняться до полного создания формы)

Можешь читать данные из файла еще до создания формы.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter