Форум: "Основная";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];
ВнизПомогите с компиляцией Найти похожие ветки
← →
Tristania © (2005-11-25 14:06) [0]Здраствуйте!
Вот такая проблема:
Пытаюсь в шестой Дельфе скомпилить программу, написанную в Пятом. Все используемые библиотеки подключены и все вроде гуд.
Вот только компилятор ругается. А именно:
В программе используются формы, которые описаны не как наследники TForm, а как наследники TObject.
В файле проекта они создаются как обычно, через Application.CreateForm. Вот на это место компилятор-то и ругается:
Incompatible types: "TComponentClass" and "Class reference"
Будет ли это скомпилено в Пятой Дельфе и как можно это переписать для Шестой?
Вот...
← →
Digitman © (2005-11-25 14:26) [1]
> Будет ли это скомпилено в Пятой Дельфе
и в 5-й не будет ..
с какого перепугу ты пытаешься создать объект-форму, в то время как класс этого объекта не является наследником (прямым или не прямым) TCustomForm ?
← →
Tristania © (2005-11-25 14:34) [2]Это не я.
Прога чужая.
Сам класс, который ОНИ создают имеет такое описание:
TNazvanieClassa = class(TObject)
procedure First(Sender: TObject; const Param1: String; var Param2: Boolean);
procedure Second(Sender: TObject);
private
FWindowHandle : HWND;
procedure WndProc(var MsgRec: TMessage); virtual;
function Func1(param: string): string;
procedure Func2(param: string; const Value: string);
{ Private declarations }
public
{ Public declarations }
FHalting : boolean;
constructor Create;
destructor Destroy; override;
procedure WMSTARTServing( var Msg : TMessage ); message WM_STARTServing;
published
property Handle : HWND read FWindowHandle;
end;
Вот так. Имена не имеют значение, но как видно тут есть некоторые аттрибуты обыкновенное формы. Может они пытались написать свой класс формы?
← →
Digitman © (2005-11-25 14:41) [3]
> Может они пытались написать свой класс формы?
ну так в любом случае наследоваться следовало бы от TComponent, но никак не от TObject !
← →
Tristania © (2005-11-25 14:45) [4]Да, не просто....
С толку сбивает то, что с исходниками есть и ЕХЕ-ха, так что прога компилилась...у них...
← →
Digitman © (2005-11-25 14:51) [5]да ну не могла она в ТАКОМ виде компилиться !)
хотя бы по причине несовместимости типов ..
первый параметр метода CreateForm() требует указания класса, являющегося наследником именно TComponent и никакого иного класса.
и в Д5, и в Д6, и в Д7 в этом отношении все одинаково и ничего не менялось ... да и поменяться не могло, ибо это строго концептуальный момент
← →
umbra © (2005-11-25 14:53) [6]так не надо
CreateForm
пользовать. да иApplication
, наверно, не нужно. просто создай объект
← →
Reindeer Moss Eater © (2005-11-25 14:53) [7]Защитили исходники от "дураков"
← →
han_malign © (2005-11-25 15:12) [8]
> но как видно тут есть некоторые аттрибуты обыкновенное формы
Очевидно - раз оконные классы переписаны с нуля, то и основной класс приложения должен быть свой.
И вообще возникает подозрение, что это Windows Object Library(OWL) от BP7 - так что "создаваться как обычно" это в Delphi ну никак не получится...
З.Ы. А вообще советую посмотреть KOL и FreePascal - не исключено что это от туда...
← →
Плохиш © (2005-11-25 15:16) [9]
> Tristania © (25.11.05 14:34) [2]
> Вот так. Имена не имеют значение, но как видно тут есть
> некоторые аттрибуты обыкновенное формы.
Можно указать на аттрибуты? А то, под каким углом не всматривался, не увидел :-(
← →
Tristania © (2005-11-25 15:17) [10]Я немного преувеличил. Имел ввиду WndProc, Handle
← →
Плохиш © (2005-11-25 15:25) [11]
> Tristania © (25.11.05 15:17) [10]
> Я немного преувеличил. Имел ввиду WndProc, Handle
Да, немного, всего-то на предка 4го поколения.
← →
han_malign © (2005-11-25 15:41) [12]
> Я немного преувеличил. Имел ввиду WndProc, Handle
- ну это тянет, максимум, на заглушку вроде TThread.Synchronize для обработки единственного, собственной генерации, сообщения, или реакции на WM_QUIT...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.014 c