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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2012, 04:33   #1
Orchestroman
Пользователь
 
Регистрация: 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.

//////
Orchestroman вне форума Ответить с цитированием
Старый 23.03.2012, 08:37   #2
AlexKhol
Пользователь
 
Регистрация: 04.02.2012
Сообщений: 15
По умолчанию

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

Вот пример: http://delphiexpert.ru/view_lesson.php?id=42
AlexKhol вне форума Ответить с цитированием
Старый 23.03.2012, 08:52   #3
3D Hunter
Сумрачная тень
Форумчанин
 
Аватар для 3D Hunter
 
Регистрация: 05.03.2009
Сообщений: 689
По умолчанию

Решение ламерское по ссылке выше. ТС, просто создаете новую форму из репозитория делфи, обзываете ее, скажем, TNewForm. Потом, как обычно, кидаете на нее все что нужно, пишите обработчики событий для всех компонентов. Убераете секцию var с переменной этой формы (для чистоты кода). Обязательно впишите в обработчике OnClose строчку, чтобы избежать утечек памяти:
Код:
Action:=caFree;
Потом подключаете этот модуль к вашему проекту, и создаете экземпляр формы так:
Код:
with TNewForm.Create(Application) do ShowModal;
При закрытии формы она автоматически уничтожится, как и все компоненты на ней. Обязательно в конструктор передавайте Application, чтобы созданная форма была сериализована объектом Application и взята им под контроль.
"ковыряю изнутри" (с)

Последний раз редактировалось 3D Hunter; 23.03.2012 в 08:56.
3D Hunter вне форума Ответить с цитированием
Старый 23.03.2012, 09:24   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Решение ламерское по ссылке выше. ТС, просто создаете новую форму из репозитория делфи, обзываете ее, скажем, TNewForm.
а разве file -> New -> form не оттуда же (из репозитария) берет. только выбора не дает какую именно взять.
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 24.03.2012, 23:51   #5
Orchestroman
Пользователь
 
Регистрация: 21.07.2010
Сообщений: 22
По умолчанию

спасибо большое!
Orchestroman вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка при запуске 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