Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.18;
Скачать: CL | DM;

Вниз

Помогите с компиляцией   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.049 c
2-1133129521
Diatel
2005-11-28 01:12
2005.12.18
Как сделать аналог дизассемблера IDA.


6-1126245093
Tor
2005-09-09 09:51
2005.12.18
Получение данных через TCP соединение


2-1133260791
nickmas
2005-11-29 13:39
2005.12.18
Компонент TabControl


4-1129633004
timotei
2005-10-18 14:56
2005.12.18
BSOD KeBugCheckEx как???


2-1133426018
coral
2005-12-01 11:33
2005.12.18
ADO