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

Вниз

Как передать Canvas   Найти похожие ветки 

 
Aleksey   (2005-10-05 11:25) [0]

Здравствуйте, Мастера....

У меня есть Длл"я, там есть функция

Function LineToolMove (Canvas: TCanvas; X,Y:LongInt; FgColor,BgColor:TColor; Var Hist: Boolean): Pointer;
Begin
 If LineStart
 Then Begin
       Canvas.LineTo(LineOldX,LineOldY);
       LineOldX:=X;
       LineOldY:=Y;
       Canvas.LineTo(X,Y);
      End
 Else Begin
       LineStart:=true;
       LineOldX:=X;
       LineOldY:=Y;
       Canvas.LineTo(X,Y);
      End;
 Result:=nil;
End;

, такая например.... Основная программа ее вызывает так

Function LineToolMove (Image.Canvas, X,Y,FgColor,BgColor, Hist);


Мне говорят, что я не могу читать/писать по такомуто адресу, Ошибка в Длл


 
Гаврила ©   (2005-10-05 11:40) [1]

Передавай не Canvas, а Canvas.handle
(HDC)


 
TUser ©   (2005-10-05 11:45) [2]

... и в dll создавай свою канву и пиши ей
DllCanvas.Handle:=ResievedHandle;


 
Aleksey   (2005-10-05 12:43) [3]

Передаю handle.... -> Access violation
Может я криво Длл функции  вызываю?
Подскажите как надо, плз.


 
clickmaker ©   (2005-10-05 12:45) [4]


> Aleksey   (05.10.05 12:43) [3]
> Передаю handle.... -> Access violation
> Может я криво Длл функции  вызываю?
> Подскажите как надо, плз.

а ты канву часом не забыл создать?
C := TCanvas.Create;
C.Handle := HandleFromExe;


 
evvcom ©   (2005-10-05 12:48) [5]


> Может я криво Длл функции  вызываю?
> Function LineToolMove (Image.Canvas, X,Y,FgColor,BgColor,
>  Hist);

Ну так ты ее точно не вызовешь. Вероятно, криво. Извини, что-то телепатор не телепатирует. Сломался, однако.


 
Aleksey   (2005-10-05 13:00) [6]

2clickmaker
Создал

2evvcom
Function LineToolMove (Image.Canvas.HANDLE, X,Y,FgColor,BgColor,Hist);


 
TUser ©   (2005-10-05 14:15) [7]

А реализацию функции напиши. Надо - как в [4]


 
evvcom ©   (2005-10-05 14:19) [8]


> Aleksey   (05.10.05 13:00) [6]

Ну что, прям вот так и вызываешь?

> Function LineToolMove (Image.Canvas.HANDLE, X,Y,FgColor,
> BgColor,Hist);

Да не надо ля-ля...


 
GuAV ©   (2005-10-05 20:39) [9]

Aleksey   (05.10.05 12:43) [3]
Передаю handle.... -> Access violation


Приведи код из dll.

На всякий случай - VCL может пересоздавать HDC, поэтому HDC переданный в dll не следует сохранять - он может быть пересоздан, его можно считать действительным только до возврата из функции.



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

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

Наверх




Память: 0.48 MB
Время: 0.052 c
11-1109970995
dimaxx
2005-03-05 00:16
2005.10.30
WordWrap в KOLRichEdit


2-1128600837
Sysanin
2005-10-06 16:13
2005.10.30
Переменные в функциях


14-1128009414
Kerk
2005-09-29 19:56
2005.10.30
9 признаков американца (наверно баян)


4-1125042482
ganda
2005-08-26 11:48
2005.10.30
Подключится к интернету зная только имя соединения


3-1127219035
Rule
2005-09-20 16:23
2005.10.30
Длина строки в Firebird 1.5