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

Вниз

TKOLOpenDirDialog   Найти похожие ветки 

 
Blackie   (2006-10-21 21:06) [0]

Беру, ставлю на форму компонент OpenDirDialog. Запускаю проект. Ошибка "Undeclared identifier: TKOLOpenDirDialog". Если же его ставить с самого начала вместе с KOLProject, возникают другие ошибки, такие как "Unit mckObjs was compiled with a different version of KOL.NewImageList". Переустанавливать KOL?


 
Vladimir Kladov   (2006-10-21 21:18) [1]

что такое переустановить KOL?

Build проекту надо делать. У вас остался dcu от другого проекта или пакета, в котором вместо TOpenDirDialog использовался TOpenDirDialogEx. Delphi считает, что файл исходного кода не менялся (а он и не менялся), а то, что символы условной компиляции другие, он не замечает.


 
Blackie   (2006-10-22 22:44) [2]

Build именно поэтому и не удается сделать. Под "переустановкой KOL" я имею в виду замену dcu-файлов. Только какие надо менять, непонятно.


 
D[u]fa ©   (2006-10-22 23:25) [3]


> Build именно поэтому и не удается сделать.


нихэ не понятно %) неможешь нажать в меню проекта Build All?


 
Vladimir Kladov   (2006-10-23 16:01) [4]

я догадался: после бросания компонента на форму Delphi вперед попытался сообразить, и всунул mck-часть компонента после скобок {$IFNDEF KOL_MCK} в uses. Решение: перезасунуть его руками внутрь скобок.


 
Blackie   (2006-10-23 21:50) [5]


> нихэ не понятно %) неможешь нажать в меню проекта Build
> All?

если нажать build, возникнут все те же 2 ошибки: "Undeclared identifier: TKOLOpenDirDialog" в самом проекте и "Missing operator or semicolon" в соотв. inc-файле.

Привожу код.
{ KOL MCK } // Do not remove this line!
{$DEFINE KOL_MCK}
unit ArchiverUnit;

interface

{$IFDEF KOL_MCK}
uses Windows, Messages, ShellAPI, KOL {$IFNDEF KOL_MCK}, mirror, Classes, Controls, mckControls, mckObjs, Graphics {$ENDIF (place your units here->)};
{$ELSE}
{$I uses.inc}
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;
{$ENDIF}

type
 {$IFDEF KOL_MCK}
 {$I MCKfakeClasses.inc}
 {$IFDEF KOLCLASSES} TForm1 = class; PForm1 = TForm1; {$ELSE OBJECTS} PForm1 = ^TForm1; {$ENDIF CLASSES/OBJECTS}
 {$IFDEF KOLCLASSES}{$I TForm1.inc}{$ELSE} TForm1 = object(TObj) {$ENDIF}
   Form: PControl;
 {$ELSE not_KOL_MCK}
 TForm1 = class(TForm)
 {$ENDIF KOL_MCK}
   KOLProject1: TKOLProject;
   KOLForm1: TKOLForm;
   OpenDirDialog1: TKOLOpenDirDialog;
   OpenSaveDialog1: TKOLOpenSaveDialog;
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1 {$IFDEF KOL_MCK} : PForm1 {$ELSE} : TForm1 {$ENDIF} ;

{$IFDEF KOL_MCK}
procedure NewForm1( var Result: PForm1; AParent: PControl );
{$ENDIF}

implementation

{$IFNDEF KOL_MCK} {$R *.DFM} {$ENDIF}

{$IFDEF KOL_MCK}
{$I ArchiverUnit_1.inc}
{$ENDIF}

end.


А если OpenDirDialog1: TKOLOpenDirDialog и OpenSaveDialog1: TKOLOpenSaveDialog разместить повыше   {$ENDIF KOL_MCK}, то вообще Access violation.


 
Vladimir Kladov   (2006-10-24 15:36) [6]

я вообще-то имел в виду uses. Но он чистый. Вы еще не догадались? Модуль фообще не подключен. KOLadd называется.


 
Blackie   (2006-10-24 19:13) [7]

Но KOLadd не хочет подключаться (в uses). "Unit KOLadd was compiled with a different version of KOL.PMenu".
И еще не понятно, почему в данном случае на одном компе один и тот же листинг работает, а на втором нет. И на том, на котором работает, почему-то не надо KOLadd.


 
Blackie   (2006-10-24 20:23) [8]

Ну вот сейчас вроде подключил koladd, спасибо.
а все-таки почему в одном случае надо подключать этот модуль, а во втором нет? листинг одинаковый, версия KOL тоже.


 
Vladimir Kladov   (2006-10-24 20:44) [9]

это просто другой модуль. Разве вы не в курсе, что если компилятор пишет Undeclared, то надо ему дать модуль, в котром оно declared?


 
Blackie   (2006-10-25 21:46) [10]


> это просто другой модуль.

В environment options|library у меня был прописан путь к файлу koladd.pas, но при ближайшем рассмотрении оказалось, что он, мягко говоря, поврежден (размер файла 0 байт, определению TKOLOpenDirDialog там будет просто негде разместиться). Очевидно, это был какой-то старый файл от предыдущей версии KOL, который скопировался с ошибкой. Я просто навел порядок с путями и build проекта сделался.



Страницы: 1 вся ветка

Текущий архив: 2007.06.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
2-1179801041
ALEX][ANDR
2007-05-22 06:30
2007.06.10
ТАЙМЕР


6-1164041827
NiGGa
2006-11-20 19:57
2007.06.10
PPPoE соединение


2-1179823907
Lobach
2007-05-22 12:51
2007.06.10
Как получить число из строки


15-1178537817
Kolan
2007-05-07 15:36
2007.06.10
А мастер я таки добил :)


15-1179303837
TUser
2007-05-16 12:23
2007.06.10
Создание инсталяшки ... опять