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

Вниз

Ошибка в TKOLOpenDirDialog из MCK?   Найти похожие ветки 

 
Unknown Mystic ©   (2006-03-17 09:01) [0]

Что-то давно я не программировал на Delphi... не знаю с какой версии это пошло...

Как я понял в некоторый момент определение
TKOLOpenDirDialog = POpenDirDialog
было заменено на
TKOLOpenDirDialog = POpenDirDialogEx

В то время как компонент из MCK в inc файл пишет создание объекта с помощью NewOpenDirDialog, что и вызывает ошибку не соответствия типов...


 
ECM ©   (2006-03-17 12:05) [1]

Да, есть такой эффект...Но только при использовании KOLadd. Опишите ситуацию и в письмо Владимиру...
Пока можно выкрутится так: поставьте в uses модуля где находится OpenDirDialog объявление KOLadd раньше объявления KOL

uses ... KOLadd, KOL...


 
Unknown Mystic ©   (2006-03-17 17:11) [2]

Ничего не понимаю... Мне KOLadd то не нужен... Я когда сначала кинул TKOLOpenDirDialog на форму и попытался скомпилить, мне Delphi сказала, что идентификатор TKOLOpenDirDialog не определен, ну я и решил, что этот компонент был перенесен в KOLadd.pas, чтобы сам KOL.pas уменьшить... В KOL.pas я его даже как-то и не смотрел...

Чтобы это могло быть? Криво установленный KOL? Но тогда не понятно, почему остальные компоненты нормально работают... Устанавливал 2.30 + обновление 2.30 -> 2.34 ...


 
Unknown Mystic ©   (2006-03-17 17:51) [3]

Полазил я тут еще... Похимичил в KOL.pas... скомпилил... закрыл все без сохранения изменений...

Тьфу ты... Мистика какая-то... После того как один раз заставил все это скомпилиться проблема исчезла... В том числе и в другом проекте использующем этот компонент...

Теперь все работает, но я так и не понял, что это было...


 
ECM ©   (2006-03-17 18:50) [4]

Никакой "неизвестной мистики"...:))

В KOL.PAS объявлен OpenDirDialog и присутствует запись:

{$IFDEF KOL_MCK}
type  TKOLOpenDirDialog = POpenDirDialog;
{$ENDIF}

В KOLadd.pas объявлен OpenDirDialogEx и присутствует:

{$IFDEF KOL_MCK}
type TKOLOpenDirDialog = POpenDirDialogEx;
{$ENDIF}

Соответственно если в uses KOLadd расположено после KOL возникает разногласие с сгенерированным МСК-кодом в inc. Возможно Вы бросали на форму компонент требующий KOLadd (тотже Action(List) например) при этом ошибка возникла. Потом компонент был убран - и проблема "рассосалась"
т.к. без KOLadd в uses то же всё в порядке


 
Vladimir Kladov   (2006-03-18 09:52) [5]

т.е. если вынести его из KOLadd скажем в KOLDirDlgEx, то проблема должна исчезнуть, так?


 
ECM ©   (2006-03-18 10:43) [6]


> .е. если вынести его из KOLadd скажем в KOLDirDlgEx, то
> проблема должна исчезнуть, так?

Ну, вобщем, да ... хотя можно было бы и переделать MCK, чтобы переключать что использовать Ex или нет... хотя как вы этом случае определить есть ли KOLadd...чтобы использовать Ex.
Может лучше отказаться от использования автоматической замены  

{$IFDEF KOL_MCK}
type TKOLOpenDirDialog = POpenDirDialogEx;
{$ENDIF}

в KOLadd?
Или сделать отдельный MCK-компонент?
типа TKOLOpenDirDialogEx...


 
Unknown Mystic ©   (2006-03-18 11:19) [7]


> ECM ©   (17.03.06 18:50) [4]

Это то как раз понятно...

Не понятно то, почему сначала не компилилось... Ни "готовый" проект созданый в версии 1.97 (или что-то в этом роде), ни новый, который был создан для попытки разобраться с этой ошибкой и содержащий один единственный TKOLOpenDirDialog... Оба не использовали KOLadd...

Я говорю не про несоответствие типов, а про почему-то возникавшую, а потом исчезнувшую ошибку - TKOLOpenDirDialog не определен... Попросту говоря, поначалу Delphi почему-то не видела определение в KOL.pas ...


 
ECM ©   (2006-03-18 12:16) [8]

Ну тогда возможно были какие-то проблемы с DEFINE KOL_MCK. Может глюк с kol.dcu... в таких случаях надо делать ребилд или предварительно стереть все dcu


 
Maloric   (2006-03-18 12:37) [9]

Здраствуйте, у меня кстати точно такая же проблема возникала, я сам не понимал почему и KolAdd тоже не использовал, в конце конков вместо TKOLOpenDirDialog использовал POpenDirDialog без визуального компонента.


 
Thaddy   (2006-03-18 16:33) [10]

seems to be a namespace "problem".
That is no problem:

You can use:

[CODE]
koladd.TKOLOpenDirDialog
[/CODE]

Just prepend the unit name without pas


 
Unknown Mystic ©   (2006-03-19 11:48) [11]


> ECM ©   (18.03.06 12:16) [8]

Возможно, что именно так... Среди прочего я пробовал убирать ifdef вокруг определения и все компилилось. Правда может к тому времени все уже исправилось...


> Thaddy   (18.03.06 16:33) [10]

I speak not about incompatibility of types, but about for some reason arisen and then disappeared problem - identifier TKOLOpenDirDialog not defined... Speaking simply, at first Delphi did not see this definition in KOL.pas, for some reason...
(Last 2 strings of Unknown Mystic ©   (18.03.06 11:19) [7])


 
Barloggg   (2006-03-21 09:30) [12]

хмм... а я просто разремал строчку с POpenDirDialog (которая в inc файле) и все работает. пользуюсь этим диалогом как ни в чем не бывало...
и вот только сейчас узнал, что оказывается нужно было koladd подключить... хе-хе...
если уж что и стоит действительно добавлять так это комментарий в inc файл чтобы не разремывали, а просто подключили koladd файл...


 
Unknown Mystic ©   (2006-03-22 13:53) [13]


> Barloggg   (21.03.06 09:30) [12]


Для работы с TKOLOpenDirDialog не надо раскомментировать строку в MCKfakeClasses.inc, если ты этот inc имел ввиду. Да после этого все работает, но должно работать и без этого! Это определение есть и в kol.pas! Только поначалу Delphi у меня его почему-то не видела. Попробуй в kol.pas заменить
{$IFDEF KOL_MCK}
type  TKOLOpenDirDialog = POpenDirDialog;
{$ENDIF}

на
type  TKOLOpenDirDialog = POpenDirDialog;
(т.е. убрать {$IFDEF KOL_MCK} и {$ENDIF})
скомпилить свой проект - должно работать, а потом вернуть как было. Все должно нормально компиллиться после этого.



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

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

Наверх




Память: 0.5 MB
Время: 0.034 c
2-1165750746
arturich
2006-12-10 14:39
2006.12.31
TWebBrowser


15-1165410940
Gero
2006-12-06 16:15
2006.12.31
Mylene Farmer «California»


2-1166031511
callback
2006-12-13 20:38
2006.12.31
Массив с данными.


6-1155098405
VitGun
2006-08-09 08:40
2006.12.31
Программное создание и настройка Dial-Up соединения


15-1165569508
novill
2006-12-08 12:18
2006.12.31
Как окно "компьютер используется и заблокирован" подвинуть в угол