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

Вниз

Вопрос для тех кто работал с формами в DLL   Найти похожие ветки 

 
Ghost. ©   (2002-08-05 17:40) [0]

Почему при рисовании на канвас формы вызваной из dll выдается ошибка или как ее надо правильно вызвать, чтобы можно было рисовать?


 
Skier ©   (2002-08-05 17:45) [1]

>Ghost
А как ты её вызываешь ?


 
Ghost. ©   (2002-08-05 17:51) [2]

FUNCTION CreateTheForm: Pointer; Export;
BEGIN
Result := Tvdesk.Create(NIL);
END;

FUNCTION ShowTheForm(P: Pointer): Boolean; Export;
BEGIN
Tvdesk(P).Show;
Result := TRue;
END;


 
Skier ©   (2002-08-05 18:00) [3]

>Ghost
У host-приложения и у DLL разные таблицы классов и разные
входы в них, поэтому когда ты пытаешься закастить
Pointer, который указывает на форму созданной в DLL, в
host-приложении то - происходит ошибка
(в твоём случае это - класс Tvdesk)

Насколько я знаю в этом случае могут спасти интерфейсы.


 
Ghost. ©   (2002-08-05 18:08) [4]

Чета ты так загрузил ...дело в том, что программа в dll полностью рабочая и довольно таки большая и ошибок кроме рисования на канвасе формы нет.а что такое интерфейсыя не заню


 
Skier ©   (2002-08-05 18:15) [5]

>Ghost

> ошибок кроме рисования на канвасе формы


Попробуй это :


Canvas.Lock;
//......рисуешь...
Canvas.Lock;


 
Skier ©   (2002-08-05 18:16) [6]

>Ghost
Ошибся :)
После Canvas.Lock - Canvas.UnLock;



 
Ghost. ©   (2002-08-05 18:22) [7]

нет тоже самое пишу
vdesk.Canvas.Lock;
vdesk.canvas.Draw(0,0,ecln.image);
vdesk.Canvas.Unlock;
и ошибка, а если
Image3.Picture.Bitmap.Assign(ecln.image)
которая на форме находится..то все работает..тока моргат


 
Skier ©   (2002-08-05 18:24) [8]

>Ghost.
Какая ошибка ?


 
Ghost. ©   (2002-08-05 18:27) [9]

Access violation at address 00e9d054 in module "11.dll". Read of adress 000000238


 
Mystic ©   (2002-08-06 01:20) [10]

Может помочь флажок Build with runtime packages в Project|Options


 
Ghost. ©   (2002-08-06 09:30) [11]

Сам разобрался просто из dll явно нельзя обращаться к форме работает просто
canvas.Draw(0,0,ecln.image);



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

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

Наверх




Память: 0.49 MB
Время: 0.017 c
1-60648
Leran2002
2002-08-08 15:16
2002.08.19
InstallShield


1-60691
Vovaka
2002-08-06 13:31
2002.08.19
Поддержка дополнительного языка


1-60586
Nikoss
2002-08-06 00:10
2002.08.19
Подскажите, как узнать из какой процедуры была вызванна процедура


1-60661
demona
2002-08-09 04:57
2002.08.19
есть ли компонент как ColorGrid, но с , хотя бы, 256 цветами?


1-60717
ReZOnAnS
2002-08-07 07:05
2002.08.19
Обработка параметров