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

Вниз

Проблема с KOLmdvXLGrid   Найти похожие ветки 

 
gyv   (2002-11-28 13:51) [0]

Делаю небольшой проект на KOL(без MCK). Понадобилось добавить в него ФОрму с гридом. Нашел нужный компонент, добавил исходник в проект, сделал в функции такой код


var ct, Form: PControl; i: integer;
begin
Form := NewForm( Applet, "***" ).SetSize( 500, 500 );
ct := NewmdvXLGrid( Form, 1, 1, gsStandard, [ xlgColSizing, xlgRowSizing, xlgColMoving, xlgRowMoving ] ).SetAlign( caClient );
// ct := NewmdvXLGrid( Form, 7, 7, gsStandard, [ ] );

Причем неважно какая из строчек "ct:=" за(рас)коментирована - результат один. При ее выполнении происходит ошибка 216 (AV). И происходит она внутри функции InitCustomData. Сначала она сбоила на NewFont, а затем еще раньше - на NewList. После прослеживания отладчиком выяснилось, что сбоит в TObj.Create на


constructor TObj.Create;
--> asm
//CALL System.@ObjSetup - Generated always by compiler
//JZ @@exit

PUSH ( отмечено стрелкой)
Делаю небольшой проект на KOL(без MCK). Понадобилось добавить в него ФОрму с гридом. Нашел нужный компонент, добавил исходник в проект, сделал в функции такой код


var ct, Form: PControl; i: integer;
begin
Form := NewForm( Applet, "***" ).SetSize( 500, 500 );
ct := NewmdvXLGrid( Form, 1, 1, gsStandard, [ xlgColSizing, xlgRowSizing, xlgColMoving, xlgRowMoving ] ).SetAlign( caClient );
// ct := NewmdvXLGrid( Form, 7, 7, gsStandard, [ ] );

Причем неважно какая из строчек "ct:=" за(рас)коментирована - результат один. При ее выполнении происходит ошибка 216 (AV). И происходит она внутри функции InitCustomData. Сначала она сбоила на NewFont, а затем еще раньше - на NewList. После прослеживания отладчиком выяснилось, что сбоит в TObj.Create на


constructor TObj.Create;
--> asm
//CALL System.@ObjSetup - Generated always by compiler
//JZ @@exit

PUSH EAX

или на

constructor TObj.Create;
--> begin
Init;


(отмечено стрелкой), т.е. на начальном коде конструктора.

Что я делаю не так? Может, там есть хитрости при компилировании KOL с этим компонентом (типа USE_CONSTRUCTORS?) Одинаково сбоят как ASM_VERSION так и Pascal (адреса только разные). Пробовал ставить замену стандартных модулей - не помогает. KOL v.1.57, grid - тоже последняя.


 
Gandalf   (2002-11-28 17:07) [1]

Не хочу бросать тень на плетень, возможно ошибка в компоненте(не обижаться, но такое бывает - сам не без греха).

Но например чистый MCK проет + mdvXLGrid бросили, Col,RowCount=3. Запустили - вылетели ( KOnMCK=1.57(asm/pas), mdvXLGrid =1.00b, WinXP, Delphi5).

Насчет кода:

ct:PmdvXLGrid;
...
ct := PmdvXLGrid(NewmdvXLGrid( Form, 0, 0, gsStandard, [
... ^^^^^^^^^^


 
mdw ©   (2002-11-28 23:14) [2]


...При ее выполнении происходит ошибка 216 (AV). И происходит она внутри функции InitCustomData. Сначала она сбоила на NewFont, а затем еще раньше - на NewList.

У меня такая же фигня возникала (не устойчивая), причину выяснить не удалось:(...
Но вроде помогает изменение TabOrder, т.е. чем меньше, тем лучше.


 
mdw ©   (2002-11-29 00:10) [3]

>на KOL(без MCK)
Поиграйся порядком создания контролов.

Да, кстати, а почему без MCK?


 
gyv   (2002-11-29 11:04) [4]

2Gandalf
Изначальный вариант был именно такой. Выясняя причину раз 20 перепахивал исходник и в момент отсылки он был в таком виде.
Демка компилируется и работает "на ура", а брошенный в полупустой проек контрол вызывает такой перекос.

2mdw
Это сложно - контрол всего 1 на форме.
А без MCK - мне там особо визуальность не нужна. 7 кнопок на 1й форме и грид на другой. Вот и все. У меня MCK на D4 не встал 1 раз(что-то криво собрал или конфликтанул с чем-то) - все как на старом добром BP делаю ручками. Привычка.


 
gyv   (2002-11-29 11:10) [5]

Забыл - сейчас D5UP1, платформа Win2KengSP3 (но она, скорее всего, неважна).

И еще - может, есть еще какой grid. Что-то я в самом KOL его не видел(???). Мне достаточно простого StringGrid. Изменение ширины колонок мышкой - желательно, но некритично. Остальное - неважно.


 
mdw ©   (2002-11-29 12:42) [6]

2 gyv
Я сталкивался еще с такой фенькой: ставишь новую версию MCK(KOL) и проект начинает глючить, и пока не пересоберешь остальные использумые пакеты - неработает.... Хотя если MCK не используешь, то влиять не должно.
Вчера попробовал твой кусок кода - работает (D6up2). Если пришлешь конкретный кусок (глючащий) - поковыряюсь (KOLmdvXLGrid - мое детище). Хотя сам сталкивался с ошибкой при NewFont и NewList, но причины так и не понял - присто изменил порядок создания (двинул в начало) и заработало.
Да еще. В версии 1.00b капитальная ошибка при изменени кол-ва колонок\строк. В 1.00 - исправил.


 
mdw ©   (2002-11-29 13:29) [7]

Кажется причину ошибки нашел. Как исправлю скину обновление


 
gyv   (2002-11-29 14:27) [8]

2mdw
У меня KOL собирается вместе с проектом. Не оченьудобно, но зато отлаживать легко - где я накосячил - сразу вылезает (пусть и в другом месте ;)

Thnx.


 
Gandalf   (2002-11-29 15:01) [9]


> Я сталкивался еще с такой фенькой: ставишь новую версию
> MCK(KOL) и проект начинает глючить, и пока не пересоберешь
> остальные использумые пакеты - неработает.... Хотя если
> MCK не используешь, то влиять не должно.


Так и должно быть, это даже написано в инструкции по инсталяции КОЛиМСК (раньше было)- но их читает, инструкции-то.


 
mdw ©   (2002-11-29 16:14) [10]

2 gyv
Ну вроде исправил, хотя то или не то - не знаю (У меня эта ошибка возникла при добавлении 2х Gridov). Обновление на delphi.mastak.ru отправил. ЕСли срочно могу намылить тебе, а то здесь может обновиться и через неделю...%)


 
gyv   (2002-12-06 13:59) [11]

Прошу прощения, но это снова я.
Поставил новый вариант, но проблемы остались. Вернее, переместились. Если раньше AV вылезал в момент создания компонента, то теперь - в момент отрисовки. Текст проекта могу выслать (там текста кила на 4 в архиве).


 
mdw ©   (2002-12-06 15:25) [12]

2gyv
Тяжело так ошибки ловить. Но вообще то предположения есть. Такое предложение: я немного покромсаю исходник и пришлю тебе, если ошибка исчезнет - буду хоть знать куда копать...
А еще, раз ошибка при отрисовке попробуй потключать в Paint процедуры отрисовки - там отдельно все рисуется. Опять же может локализовать удасться.


 
gyv   (2002-12-06 17:17) [13]

если я раскоментирую

( Rect, Position.x, Position.y, ACanvas, IsCellSelected[Position.x, Position.y], True)
если я раскоментирую

Cells[Position.x, Position.y].Draw(Rect, Position.x, Position.y, ACanvas, IsCellSelected[Position.x, Position.y], True);

в procedure DrawSelect(ACanvas: PCanvas);
Падает (может, и не в ней), но причина, похоже, где-то там.

AV при обращении к Position


 
mdw ©   (2002-12-06 17:42) [14]

А попробуй вместо
IsCellSelected[Position.x, Position.y]
в
Cells[Position.x, Position.y].Draw(Rect, Position.x, Position.y, ACanvas, IsCellSelected[Position.x, Position.y], True);
поставить Тruе или False


 
mdw ©   (2002-12-06 18:16) [15]

2gyv
А лучше Текст проекта пришли - проще будет


 
Dimaxx   (2002-12-16 00:59) [16]

А что это за компонент такой? Может, кинете его или ссылку мне на мыло, плз? Спасибо...


 
sniknik ©   (2002-12-16 13:14) [17]

Прям на этом сайте смотри. Ссылка сверху над темами.



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

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

Наверх




Память: 0.51 MB
Время: 0.008 c
14-58428
IBSN
2003-08-01 16:01
2003.08.18
ctrl+alt+delete или OnExit


14-58470
Мышь
2003-07-22 21:04
2003.08.18
Как послать в StoredProc длинную строку в качестве параметра


14-58392
mao
2003-08-04 14:36
2003.08.18
String to PChar


14-58449
Soft
2003-08-01 16:50
2003.08.18
Вам когда-нибудь кошмары снятся?


14-58430
Delphi5.01
2003-08-02 20:51
2003.08.18
Pravilnoe osveshenie?