Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Вниз

Ошибка в 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 вся ветка

Форум: "KOL";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.059 c
2-1165412814
kester
2006-12-06 16:46
2006.12.31
LPT в XP


2-1166025831
Pascalman
2006-12-13 19:03
2006.12.31
Подскажите пожалуйста как решить задачу:


15-1166058481
Бугага
2006-12-14 04:08
2006.12.31
«Черную дыру» поймали с поличным


11-1142941853
glesik
2006-03-21 14:50
2006.12.31
Звук при нажатии Enter или Esc


1-1161854933
MetalFan
2006-10-26 13:28
2006.12.31
правильная реализация MethodToProcedure





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский