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

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

Работа с файлами [D7, 2000]


Tim29 ©   (2013-01-07 22:25:00) 

Здравствуйте подскажите  не могу прописать процедуру procedure TForm1.FormActivate(Sender: TObject); во вкладке Event.
События FormActivate там просто нет что делать. Процедура FormActivate обрабатывает событие onActivate. Событие OnActivate возникает в момент активизации формы.


Tim29   (2013-01-08 22:35:00) [1]

Я понял в чём  дело, чтобы получить FormActivate надо счёлкнуть 2 раза
на событии OnActivate, а я его искал в выпадающем списке,так же и с
FormClose на событии OnСlose.
Всем спасибо за помощь.


icWasya   (2013-01-08 21:28:00) [2]

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


Tim29   (2013-01-08 19:04:00) [3]

Сергей  именно это я и хотел сказать


Anatoly Podgoretsky   (2013-01-08 13:39:00) [4]

Его трудно понять.


Сергей М.   (2013-01-07 23:55:00) [5]


> Германн ©   (07.01.13 23:50) [13]


Он не OnActivate потерял - он не видит обработчика FormActivate в выпадающем списке совместимых обработчиков этого события, потому его попросту нет в интерфейсной секции в описании класса формы.


Германн   (2013-01-07 23:50:00) [6]


> События FormActivate там просто нет что делать.

Волшебная кнопка F11 открывает волшебное окошко, в котором OnActivate есть.


Jeer   (2013-01-07 23:28:00) [7]


> в чём мая ошибка.


В мае нет ошибки, ошибка в маящихся.


Сергей М.   (2013-01-07 23:18:00) [8]

см.[7]


Tim29   (2013-01-07 23:14:00) [9]

Это код из примера в учебнике по D7 я пытался воспроизвести этот пример
программы в своей D7 но не получается что посоветуете.


Сергей М.   (2013-01-07 23:01:00) [10]


> в чём мая ошибка


в том что ты сдул откуда-то код и пытаешься его приспособить к своей форме


Tim29   (2013-01-07 23:00:00) [11]

Скажите  в чём мая ошибка.


Сергей М.   (2013-01-07 22:59:00) [12]


> События FormActivate там просто нет что делать


даблкликни - будет.


Tim29   (2013-01-07 22:56:00) [13]

При запуске программы компилятор ставит курсор на FormActivate, и вы даёт ошибку [Error] Unit1.pas(39): Undeclared identifier: 'FormActivate'


Jeer   (2013-01-07 22:51:00) [14]


> const
>
> DBNAME = 'a:\pogoda. db';


Поленился?
Надо обязательно вставить 256 пробелов после символа '.' -  и вот тогда..


Amoeba_   (2013-01-07 22:47:00) [15]


> Tim29   (07.01.13 22:25)

В чем, собственно, суть вопроса?

> Tim29   (07.01.13 22:39) [2]
>
> Я приведу программу полностью.

И что?


Сергей М.   (2013-01-07 22:43:00) [16]


> Я приведу программу полностью


Это не "полностью", а огрызок раздела имплементации программного юнита формы.


Tim29   (2013-01-07 22:39:00) [17]

Я приведу программу полностью.

Следующая программа ведет простую базу данных. При каждом ее запуске на экране появляется диалоговое окно в поля которого пользователь может ввести дату и температуру воздуха.

Дата вводится в поле Edit1, температура — в поле Edit2. Текст программы приведен в листинге .

const

DBNAME = 'a:\pogoda. db';

var

db: TextFile; // файл — база данных

procedure TForm1.FormActivate(Sender: TObject);

begin

AssignFile(db, DBNAME);. {$I-}

Append(db); if IOResult = 0 then

begin

Edit1.Text := DateToStr(Date); // получить текущую дату

Edit2.SetFocus; // курсор в поле Edit2

end

else begin

Rewrite(db); if IOResult <> 0 then begin

// сделать недоступными поля ввода // и командную кнопку

Edit1.Enabled := False; Edit2.Enabled := False;

Buttonl.Enabled := False; ShowMessage('Ошибка создания '+DBNAME);

end;

end;

end;

// щелчок на кнопке Добавить

procedure TForml.Button1Click(Sender: TObject);

begin

if (Length(edit1.text)=0) or (Length(edit2.text)=0)

then ShowMessage('Ошибка ввода данных.'

+#13+'Bce поля должны быть заполнены.')

else writeln(db, editl.text,' ',edit2.text);

end;

// Событие OnClose возникает при закрытии формы

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

CloseFile(db); // закрыть файл БД

end;

end.


Dimka Maslov   (2013-01-07 22:28:00) [18]

В чём именно вопрос и причём тут файлы?
Событие TForm.OnActivate возникает при запуске приложения. При передаче фокуса от другого приложения срабатывает TApplication.OnActivate


Наверх

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