![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TKOLOpenDirDialog
Blackie © (2006-10-21 21:06:00)Беру, ставлю на форму компонент OpenDirDialog. Запускаю проект. Ошибка "Undeclared identifier: TKOLOpenDirDialog". Если же его ставить с самого начала вместе с KOLProject, возникают другие ошибки, такие как "Unit mckObjs was compiled with a different version of KOL.NewImageList". Переустанавливать KOL?
Blackie (2006-10-25 21:46:00) [1]
> это просто другой модуль.
В environment options|library у меня был прописан путь к файлу koladd.pas, но при ближайшем рассмотрении оказалось, что он, мягко говоря, поврежден (размер файла 0 байт, определению TKOLOpenDirDialog там будет просто негде разместиться). Очевидно, это был какой-то старый файл от предыдущей версии KOL, который скопировался с ошибкой. Я просто навел порядок с путями и build проекта сделался.
Vladimir Kladov (2006-10-24 20:44:00) [2]это просто другой модуль. Разве вы не в курсе, что если компилятор пишет Undeclared, то надо ему дать модуль, в котром оно declared?
Blackie (2006-10-24 20:23:00) [3]Ну вот сейчас вроде подключил koladd, спасибо.
а все-таки почему в одном случае надо подключать этот модуль, а во втором нет? листинг одинаковый, версия KOL тоже.
Blackie (2006-10-24 19:13:00) [4]Но KOLadd не хочет подключаться (в uses). "Unit KOLadd was compiled with a different version of KOL.PMenu".
И еще не понятно, почему в данном случае на одном компе один и тот же листинг работает, а на втором нет. И на том, на котором работает, почему-то не надо KOLadd.
Vladimir Kladov (2006-10-24 15:36:00) [5]я вообще-то имел в виду uses. Но он чистый. Вы еще не догадались? Модуль фообще не подключен. KOLadd называется.
Blackie (2006-10-23 21:50:00) [6]
> нихэ не понятно %) неможешь нажать в меню проекта 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-23 16:01:00) [7]я догадался: после бросания компонента на форму Delphi вперед попытался сообразить, и всунул mck-часть компонента после скобок {$IFNDEF KOL_MCK} в uses. Решение: перезасунуть его руками внутрь скобок.
D[u]fa (2006-10-22 23:25:00) [8]
> Build именно поэтому и не удается сделать.
нихэ не понятно %) неможешь нажать в меню проекта Build All?
Blackie (2006-10-22 22:44:00) [9]Build именно поэтому и не удается сделать. Под "переустановкой KOL" я имею в виду замену dcu-файлов. Только какие надо менять, непонятно.
Vladimir Kladov (2006-10-21 21:18:00) [10]что такое переустановить KOL?
Build проекту надо делать. У вас остался dcu от другого проекта или пакета, в котором вместо TOpenDirDialog использовался TOpenDirDialogEx. Delphi считает, что файл исходного кода не менялся (а он и не менялся), а то, что символы условной компиляции другие, он не замечает.