|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.03.2012, 04:33 | #1 |
Пользователь
Регистрация: 21.07.2010
Сообщений: 22
|
Ошибка при запуске динамической формы
Здравствуйте!)
Пытаюсь разобраться с динамическими формами и событиями. Вот пример создания дин. формы с 25 кнопками и соответствующей им процедурой обработки нажатия клика. форма создается и запускается при нажатии на батон. Компилится нормально, но вылетает ошибка Eresnotfound. {$R *.dfm} вроде есть. Наверняка ошибка банальна, ибо до конца не понимаю процесс присвоения событий дин. формы. Заранее спасибо за советы) /////// unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; TTestForm = class(TForm) procedure FormCreate(Sender:TObject); private procedure OwnButtonClick(Sender:TObject); end; var Form1: TForm1; TestForm: TTestForm; implementation {$R *.dfm} procedure TTestForm.FormCreate (Sender : TObject); var i, j : integer; begin for i := 0 to 4 do for j := 0 to 4 do with TButton.Create (Self) do begin Caption := Format ('Button %d %d', [i, j]); Top := 100 + 30 * i; Left := 100 + 90 * j; Width := 80; Height := 25; OnClick := OwnButtonClick; Parent := Self; end; end; procedure TTestForm.OwnButtonClick (Sender : TObject); begin ShowMessageFmt ('Íàæàòà êíîïêà %s', [TButton (Sender).Caption]); end; procedure TForm1.Button1Click(Sender: TObject); begin TestForm:=TTestForm.Create(nil); TestForm.show; end; end. ////// |
23.03.2012, 08:37 | #2 |
Пользователь
Регистрация: 04.02.2012
Сообщений: 15
|
Дело в том ,что программа не может найти ресурсы новой формы. Попробуйте создать новую форму,и просто потом использовать ее конструктор.Вы точно также сможете создавать на ней кнопки,менять размер и тд.
Вот пример: http://delphiexpert.ru/view_lesson.php?id=42 |
23.03.2012, 08:52 | #3 |
Сумрачная тень
Форумчанин
Регистрация: 05.03.2009
Сообщений: 689
|
Решение ламерское по ссылке выше. ТС, просто создаете новую форму из репозитория делфи, обзываете ее, скажем, TNewForm. Потом, как обычно, кидаете на нее все что нужно, пишите обработчики событий для всех компонентов. Убераете секцию var с переменной этой формы (для чистоты кода). Обязательно впишите в обработчике OnClose строчку, чтобы избежать утечек памяти:
Код:
Код:
"ковыряю изнутри" (с)
Последний раз редактировалось 3D Hunter; 23.03.2012 в 08:56. |
23.03.2012, 09:24 | #4 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
программа — запись алгоритма на языке понятном транслятору
|
|
24.03.2012, 23:51 | #5 |
Пользователь
Регистрация: 21.07.2010
Сообщений: 22
|
спасибо большое!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ошибка при запуске | promt | Общие вопросы C/C++ | 5 | 11.10.2011 00:18 |
Ошибка при запуске программы | stakam | Visual C++ | 1 | 18.12.2010 18:19 |
Ошибка при запуске | СиСи+ | Общие вопросы C/C++ | 4 | 17.06.2010 08:24 |
Ошибка при запуске | wowan.mix | Помощь студентам | 1 | 16.05.2010 13:06 |
Изменение разрешения при запуске формы | artemavd | Общие вопросы Delphi | 2 | 16.07.2009 18:48 |