Главная страница
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.035 c
15-1178804267
Desdechado
2007-05-10 17:37
2007.06.10
Шаблоны документов и их наполнение из БД


2-1178790080
MaksON
2007-05-10 13:41
2007.06.10
Помогите, пожалуйста!


10-1133359168
AndDem
2005-11-30 16:59
2007.06.10
Печать многих документов в Word


15-1179297538
IMHO
2007-05-16 10:38
2007.06.10
Сегодня - финал Кубка УЕФА!


15-1179035202
Пол
2007-05-13 09:46
2007.06.10
инет-магазин