Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как создать frame, без использования dfm 
:(
    Опции темы
dsf
Дата 26.5.2006, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 24.5.2006

Репутация: нет
Всего: нет



Создаю класс TMyFrame, наследник TFrame. После чего пытаюсь создать экземляр данного класса (TMyFrame), в другом Unit'e. Но во время выполнения приложения происходит ошибка:
... Resource TMyFrame not found ...
Я так понимаю, что это происходит из-за отсутствия *.dfm модуля связанного с классом TMyFrame.
Поэтому возникает вопрос как правильно создать frame (у которого нет dfm файла) в run-time. 
PM MAIL   Вверх
Snowy
Дата 26.5.2006, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Не делай наследника - создавай от TFrame.
Но, если всё же хочется наследника, то создай пустой dfm - 0 байт. 
PM MAIL   Вверх
_hunter
Дата 26.5.2006, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



Цитата(dsf @  26.5.2006,  16:07 Найти цитируемый пост)
Создаю класс TMyFrame, наследник TFrame. 

вот этот код показывай 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
dsf
Дата 26.5.2006, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 24.5.2006

Репутация: нет
Всего: нет



Цитата
Не делай наследника - создавай от TFrame.

Делаю примерно следующее:
Код

type
    TMyFrame = class(TFrame)
    private
        {Здесь методы...}
    end;

А в другом Unit'e делаю так:
Код

var
    _myFrame : TMyFrame;
begin
    _myFrame := TMyFrame.Create(Self);
    {...}
    _myFrame.Free;
end;

И в том месте где я вызываю конструктор и происходит исключение. (При создании формы данную проблему решал, путем вызова метода CreateNew).  

Это сообщение отредактировал(а) dsf - 26.5.2006, 16:32
PM MAIL   Вверх
Snowy
Дата 26.5.2006, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Можно обмануть дельфю:
Код

type    
    TFrame = class(Forms.TFrame)    
    private    
        {Здесь методы...}    
    end;

Код

var    
    _myFrame : Unit8.TFrame;    
begin    
    _myFrame := Unit8.TFrame.Create(Self);
    {...}    
    _myFrame.Free;    
end;
Если у твоего фрейма имя класса будет TFrame, то она не будет пытаться грузить ресурсы.

P.S. Unit8 - имя твоего юнита, где ты описываешь свой фрейм.

Добавлено @ 16:50 
А нет. Соврал. Проверка не на имя, а на класс Forms.TFrame.
Тогда никак.
Создавай пустой dfm файл.  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0974 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.