Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с компиляцией [D5, D6, Win2k]


Tristania ©   (2005-11-25 14:06:00) 

Здраствуйте!
Вот такая проблема:
Пытаюсь в шестой Дельфе скомпилить программу, написанную в Пятом. Все используемые библиотеки подключены и все вроде гуд.
Вот только компилятор ругается. А именно:
В программе используются формы, которые описаны не как наследники TForm, а как наследники TObject.
В файле проекта они создаются как обычно, через Application.CreateForm. Вот на это место компилятор-то и ругается:

Incompatible types: 'TComponentClass' and 'Class reference'

Будет ли это скомпилено в Пятой Дельфе и как можно это переписать для Шестой?

Вот...


han_malign   (2005-11-25 15:41:00) [1]


> Я немного преувеличил. Имел ввиду WndProc, Handle

- ну это тянет, максимум, на  заглушку вроде TThread.Synchronize для обработки единственного, собственной генерации, сообщения, или реакции на WM_QUIT...


Плохиш   (2005-11-25 15:25:00) [2]


> Tristania ©   (25.11.05 15:17) [10]
> Я немного преувеличил. Имел ввиду WndProc, Handle

Да, немного, всего-то на предка 4го поколения.


Tristania   (2005-11-25 15:17:00) [3]

Я немного преувеличил. Имел ввиду WndProc, Handle


Плохиш   (2005-11-25 15:16:00) [4]


> Tristania ©   (25.11.05 14:34) [2]
> Вот так. Имена не имеют значение, но как видно тут есть
> некоторые аттрибуты обыкновенное формы
.

Можно указать на аттрибуты?  А то, под каким углом не всматривался, не увидел :-(


han_malign   (2005-11-25 15:12:00) [5]


> но как видно тут есть некоторые аттрибуты обыкновенное формы

Очевидно - раз оконные классы переписаны с нуля, то и основной класс приложения должен быть свой.
И вообще возникает подозрение, что это Windows Object Library(OWL) от BP7 - так что "создаваться как обычно" это в Delphi ну никак не получится...

З.Ы. А вообще советую посмотреть KOL и FreePascal - не исключено что это от туда...


umbra   (2005-11-25 14:53:00) [6]

так не надо CreateFormпользовать. да и Application, наверно, не нужно. просто создай объект


Reindeer Moss Eater   (2005-11-25 14:53:00) [7]

Защитили исходники от "дураков"


Digitman   (2005-11-25 14:51:00) [8]

да ну не могла она в ТАКОМ виде компилиться !)
хотя бы по причине несовместимости типов ..

первый параметр метода CreateForm() требует указания класса, являющегося наследником именно TComponent и никакого иного класса.

и в Д5, и в Д6, и в Д7 в этом отношении все одинаково и ничего не менялось ... да и поменяться не могло, ибо это строго концептуальный момент


Tristania   (2005-11-25 14:45:00) [9]

Да, не просто....
С толку сбивает то, что с исходниками есть и ЕХЕ-ха, так что прога компилилась...у них...


Digitman   (2005-11-25 14:41:00) [10]


> Может они пытались написать свой класс формы?


ну так в любом случае наследоваться следовало бы от TComponent, но никак не от TObject !


Tristania   (2005-11-25 14:34:00) [11]

Это не я.
Прога чужая.
Сам класс, который ОНИ создают имеет такое описание:


 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:26:00) [12]


> Будет ли это скомпилено в Пятой Дельфе


и в 5-й не будет ..

с какого перепугу ты пытаешься создать объект-форму, в то время как класс этого объекта не является наследником (прямым или не прямым) TCustomForm ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо