Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2013, 16:35   #1
Alexandr17-10
Пользователь
 
Регистрация: 12.08.2013
Сообщений: 99
По умолчанию Собите после появления формы

Скажите пожалуйста какое событие после появления формы происходит
Alexandr17-10 вне форума Ответить с цитированием
Старый 13.08.2013, 16:38   #2
Kix.IV
Участник клуба
 
Регистрация: 11.08.2012
Сообщений: 1,226
По умолчанию

OnShow и OnActivate
Kix.IV вне форума Ответить с цитированием
Старый 13.08.2013, 16:40   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

---- //Kix.IV уже ответил
Человек_Борща вне форума Ответить с цитированием
Старый 13.08.2013, 16:46   #4
Alexandr17-10
Пользователь
 
Регистрация: 12.08.2013
Сообщений: 99
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
---- //Kix.IV уже ответил
Нет оно до а мне после так что onActivate

Код:
procedure TMain_Application.FormActivate(Sender: TObject);
var VremStr:PAnsiChar;
  c:CHar;
  i:Integer;
begin
  StringList:=TStringList.Create;
  For c:= 'A' to 'Z' do
    if GetDriveType(PAnsiCHar(c + ':\'))=DRIVE_FIXED then
      StringList.Add(c+':\');
  GetMem(VremStr, MAX_PATH);
  i:=-1;
  Repeat
    i:=i+1;
  Until SearchTreeForFile(PAnsiCHar(StringList.Strings[i]), 'KaM_Remake.exe', VremStr);
  If Length(VremStr)>0 then
    MessageBox(Handle,PAnsiCHar(GetChangeLang('RUS-->',Name+'-->MessageBox-->lpText1')), PAnsiCHar(GetChangeLang('RUS-->',Name+'-->MessageBox-->lpCapt1',)),MB_Ok+MB_ICONASTERISK)
  else
    MessageBox(Handle,PAnsiCHar(GetChangeLang('RUS-->',Name+'-->MessageBox-->lpText2')), PAnsiCHar(GetChangeLang('RUS-->',Name+'-->MessageBox-->lpCapt2',)),MB_Ok+MB_ICONASTERISK);
  FreeMem(VremStr);
end;
Alexandr17-10 вне форума Ответить с цитированием
Старый 13.08.2013, 16:58   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
Нет оно до а мне после так что onActivate
Тоже не вариант.
Будет вызываться всякий раз как форма получает фокус.

Кидайте таймер, заводите на 300-500 мс, в обработчике делайте что надо и там же выключаете таймер. Таким образом импровизация сработает сразу после показа формы, 1 раз.
Человек_Борща вне форума Ответить с цитированием
Старый 13.08.2013, 17:00   #6
Alexandr17-10
Пользователь
 
Регистрация: 12.08.2013
Сообщений: 99
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Тоже не вариант.
Будет вызываться всякий раз как форма получает фокус.

Кидайте таймер, заводите на 300-500 мс, в обработчике делайте что надо и там же выключаете таймер. Таким образом импровизация сработает сразу после показа формы, 1 раз.
тоже подумал также сделать
Alexandr17-10 вне форума Ответить с цитированием
Старый 13.08.2013, 17:01   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А таймер зачем? Просто счетчик
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.08.2013, 17:02   #8
Alexandr17-10
Пользователь
 
Регистрация: 12.08.2013
Сообщений: 99
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А таймер зачем? Просто счетчик
А как его сделать и в какое событие
Alexandr17-10 вне форума Ответить с цитированием
Старый 13.08.2013, 17:04   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Например определить в private формы и в OnCreate обнулить.
В OnAcivate в него +1 и сообщение (или че там) только, если значение счетчика равно 1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.08.2013, 17:09   #10
Alexandr17-10
Пользователь
 
Регистрация: 12.08.2013
Сообщений: 99
По умолчанию

Код:
procedure TMain_Application.Timer1Timer(Sender: TObject);
var VremStr:PAnsiChar;
  c:CHar;
  i:Integer;
begin
  ProgressBar1.Position := 0;
  StringList:=TStringList.Create;
  For c:= 'A' to 'Z' do
    if GetDriveType(PAnsiCHar(c + ':\'))=DRIVE_FIXED then
      StringList.Add(c+':\');
  GetMem(VremStr, MAX_PATH);
  i:=-1;
  Repeat
    i:=i+1;
  Until (SearchTreeForFile(PAnsiCHar(StringList.Strings[i]), 'km_tp.exe', VremStr)) or (i >=StringList.Count-1);
  If Length(VremStr)>0 then begin
    ProgressBar1.Position:=100;
    MessageBox(Handle,PAnsiCHar(GetChangeLang('RUS-->',Name+'-->MessageBox-->lpText1')), PAnsiCHar(GetChangeLang('RUS-->',Name+'-->MessageBox-->lpCapt1',)),MB_Ok+MB_ICONASTERISK)
  end else begin
    PostMessage(ProgressBar1.Handle, $0409, 0, clRed);
    ProgressBar1.Position:=50;
    MessageBox(Handle,PAnsiCHar(GetChangeLang('RUS-->',Name+'-->MessageBox-->lpText2')), PAnsiCHar(GetChangeLang('RUS-->',Name+'-->MessageBox-->lpCapt2',)),MB_Ok+MB_ICONASTERISK);
  end;
  FreeMem(VremStr);
  StringList.Free;
  Timer1.Enabled:=False;
end;
1 Надо в другом событие так как приводит к бесконечному выводу сообщений и зависание проэкта

2 Сам код нужно довести до ума но это другая тема так что сначало 1ое.
Alexandr17-10 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обновление формы после выполнения скрипта Tanzor69 PHP 2 05.02.2012 00:22
Событие после открытия формы VistaSV30 Microsoft Office Access 2 29.01.2010 11:19
Форма с авторизацией пользователя после появления главной формы r00xus Общие вопросы Delphi 7 14.01.2010 06:21
Плавное появления формы Claster Помощь студентам 4 12.11.2008 23:59
Выполнить действия после отображения формы zhefran Общие вопросы Delphi 15 14.08.2008 16:50