Главная страница
    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.46 MB
Время: 0.04 c
14-1128594542
vrem
2005-10-06 14:29
2005.10.30
Необычное/странное событие/впечатление вашей жизни?


14-1128789968
syte_ser78
2005-10-08 20:46
2005.10.30
Програмирование в Delphi 7 Архангельский


4-1124854876
Alisher
2005-08-24 07:41
2005.10.30
Как при использовании IStorage удалить из хранилища бинарник


14-1128782095
ArtemESC
2005-10-08 18:34
2005.10.30
Как устроен загрузочный сектор диска?


3-1127150201
kilonet
2005-09-19 21:16
2005.10.30
Структура БД. Нужна помощь





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский