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

Вниз

Как передать 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.052 c
1-1127758387
NikNet
2005-09-26 22:13
2005.10.30
Где скачать хороший бесплатный компонент для СКИН?


1-1128376693
Германн
2005-10-04 01:58
2005.10.30
Не могу "запустить" программу под дебаггером из IDE.


14-1128450542
Piter
2005-10-04 22:29
2005.10.30
Создание интерфейса с помощью различных DLL


5-1106254826
Чайник
2005-01-21 00:00
2005.10.30
Изменение типа публикуемого свойства


1-1128437154
Aleksey
2005-10-04 18:45
2005.10.30
Error 217





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