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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.12.2008, 14:08   #1
Deight
Бредовый
Форумчанин
 
Аватар для Deight
 
Регистрация: 15.11.2008
Сообщений: 285
По умолчанию Создание модуля

Как вообще создать правельно модуль в котором будет новый класс на основе TForm, вот допустим код модуля:
Код:
unit D8Form;

interface

uses
Forms, ExtCtrls;

Type
TD8Form = class;//Это я не знаю зачем но без этого всёравно не работает

TD8Form = class(TForm)
private
protected
public
published
end;

TD8FormClass = class of TD8Form;//Это я не знаю зачем но без этого всёравно не работает

implementation

end.
А так я в коде программы пишу
Код:
procedure TForm1.Button1Click(Sender: TObject);
var F:TD8Form;
begin
F:=TD8Form.Create(Self);
end;
Модуль соответственно тоже потключаю, компилица всё норм, а при нажатии на кнопку - ошибка:"Project Project1.exe raised exception class EResNotFound with message 'Resource TD8Form not found'. Process stopped. Use Step or Run to continue."
Что не так?
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.
Deight вне форума Ответить с цитированием
Старый 30.12.2008, 14:19   #2
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Я с такой ошибкой не встречался, но если попробовать перевести:
Цитата:
Ошибка EResNotFound с сообщением "Ресурс TD8Form не найден"
Я вообще не понял вашей задумки
Код:
unit Module1;

interface

uses
 Forms, ExtCtrls;

Type

  TForm1 = class(TForm)
end;
var
  Form1: TForm1;
implementation uses ModuleTD8Form;

end.
Код:
unit ModuleTD8Form;

interface

uses
 Forms, ExtCtrls;

Type

  TD8Form = class(TForm)
end;
var
  D8Form: TD8Form;
implementation uses Module1;

end.
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Application.CreateForm(TD8Form, D8Form);
  D8Form.Show;
end;
Вот так и можно создать много окон...
А предварительно в меню Project\Options сделайте D8Form не автоматически создаваемой формой.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 30.12.2008, 14:33   #3
Deight
Бредовый
Форумчанин
 
Аватар для Deight
 
Регистрация: 15.11.2008
Сообщений: 285
По умолчанию

Манжосов Денис , мне не много окон нужно создать а Класс типа TForm только с новыми событиями и с остальной ерундой, а то что вы написали я вообще не понял, если вас не затруднит обясните.
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.
Deight вне форума Ответить с цитированием
Старый 30.12.2008, 15:01   #4
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Код:
type
TD8Form = class(TForm1)
X1: byte;
S: string;
X2: integer;
X3: real;
procedure DrawEllipse;
procedure ShowMyMessage;
procedure TD8Form.DrawEllipse;
begin
  Canvas.Ellipse(0,0,100,100);
end;
procedure TD8Form.ShowMyMessage;
begin
  ShowMessage('Hello World!');
end;
Также надо объявить глобальную переменную D8Form: TD8Form;
Это примеры процедур и переменных, чтобы обратиться к этой форме нужно написать следующий код:
Код:
D8Form.ShowMyMessage
// Или
D8Form.X1 := 100;
//
D8Form.BorderStyle := bsSingle; // Стандартно
Как же создать и показать новую форму к сожалению не знаю...
Манжосов Денис :) вне форума Ответить с цитированием
Старый 30.12.2008, 15:29   #5
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Чтобы увидеть как нужно создавать объект-форму загляните в файл dpr.
Также советую почитать литературу по ООП в Дельфи и посмотреть исходники стандартных компонентов Дельфи. Думаю после этого все само собой прояснится.

p.s. А модуль это не важно, можете все в одном объявить и будет работать, а можно каждый класс в отдельном, это на ваше усмотрение.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 30.12.2008 в 15:32.
mutabor вне форума Ответить с цитированием
Старый 30.12.2008, 16:11   #6
Deight
Бредовый
Форумчанин
 
Аватар для Deight
 
Регистрация: 15.11.2008
Сообщений: 285
По умолчанию

Mutabor, будь человеком у меня уже мозг болит, в гугле про ооп нашел море статей вот читаю и ни чего того что мне нужно не могу найти, мне всего лиш нужно создать класс в модуле чтоб он нормально работал.
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.
Deight вне форума Ответить с цитированием
Старый 30.12.2008, 16:25   #7
NieL
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 116
По умолчанию

Читай здесь. http://www.delphimaster.ru/articles/...orm/index.html
NieL вне форума Ответить с цитированием
Старый 30.12.2008, 17:35   #8
Deight
Бредовый
Форумчанин
 
Аватар для Deight
 
Регистрация: 15.11.2008
Сообщений: 285
По умолчанию

В этом примере возникли проблемы с RegisterCustomModule и модулями DesignIntf, DesignEditors что делать в справке о RegisterCustomModule вообще ничего нет, у меня Delphi 7. DesignIntf, DesignEditors пишет что нет DesignIntf.dcu, DesignEditors.dcu;
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.
Deight вне форума Ответить с цитированием
Старый 30.12.2008, 19:37   #9
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

2Deight
У TForm есть еще констрактор, который не читает ресурсов.
Бесполезный, но рабочий пример:

Код:
program Project14;
{$APPTYPE CONSOLE}

uses  Forms;

type
   TD8Form = class(TForm)
   end;

var F:TD8Form;
begin
   F := TD8Form.CreateNew(nil);
   F.ShowModal;

   readln;
end.
alexBlack вне форума Ответить с цитированием
Старый 30.12.2008, 20:57   #10
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Вот, почитай http://rsdn.ru/article/Delphi/Delphi_7_03.xml
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с получением хэндла модуля Боевой Пингвин Общие вопросы C/C++ 3 09.11.2008 17:06
Создание модуля в Си JET_FLASH Общие вопросы C/C++ 16 11.01.2008 17:12
Создание модуля голосования AlekFirst PHP 1 18.10.2007 11:54
Невозможное удаление подключаемого модуля! FoREX Помощь студентам 2 04.07.2007 12:46
Вызов Метода из др. модуля Mickle Общие вопросы Delphi 2 10.05.2007 23:41