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

Вниз

Canvas как параметр   Найти похожие ветки 

 
Urvin   (2006-06-26 08:22) [0]

Хочу сделать функцию, где среди ее параметров хотел бы видеть канвас того объекта, на котором хочу порисовать, например че-та подобное
procedure DrawLine(var C: TCanvas);
begin
 c.moveto(0,0); c.lineto(10,10);
end;
...
...
DrawLine(BitMap1.Canvas)


проблема в том, что свойства объекта C меняют свой привычный синтаксис.
объясните, в чем я неправ?


 
tButton ©   (2006-06-26 08:25) [1]

procedure DrawLine(h: HWND);
var
 c: tCanvas;
begin
c.handle:=h;
c.moveto(0,0); c.lineto(10,10);
end;
...
...
DrawLine(BitMap1.Canvas.Handle);

так.
или так
procedure DrawLine(h: HWND);
var
 b: tBitMap;
begin
b.handle:=h;
b.Canvas.moveto(0,0); b.Canvas.lineto(10,10);
end;
...
...
DrawLine(BitMap1.Handle);

эксперементируй =)


 
Urvin   (2006-06-26 08:31) [2]

пасиба большое! =)


 
Urvin   (2006-06-26 08:51) [3]

Access Violation At adress.... =(


 
MBo ©   (2006-06-26 09:01) [4]

Буду краток ;)

>Urvin  
>свойства объекта C меняют свой привычный синтаксис.
????

>tButton ©   (26.06.06 08:25) [1]
;))))


 
tButton ©   (2006-06-26 09:04) [5]

каюсь =)
c:=tCanvas.Create;
или
b:=tBitMap.Create;
или
button:=tButton.Create =)

главное что? что? Create надо, после Create присвоить хендл, а вот Free - ненадо, или надо но перед этим хендл поменять на исходный
т.е.
b:=tBitMap.Create;
old_handle:=b.Handle;
b.Handle:=h;
... // графические изощрения
b.Handle:=old_handle;
b.Free;

так правильно
а то если я скажу, что память всё-равно освобождается сама - меня запинают =)


 
tButton ©   (2006-06-26 09:07) [6]


> MBo
> >Urvin  
> >свойства объекта C меняют свой привычный синтаксис.
> ????

С - объект передаваемый в процедуру =)
очевидно синтаксис меняется при переходе от tBitMapCanvas к tCanvas
или как их там, не помню точно =)


 
Urvin   (2006-06-26 09:09) [7]

c:=tCanvas.Create;
вот так пошло)))

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


 
tButton ©   (2006-06-26 09:11) [8]


> Сейчас они сбиваются на те, которые по умолчанию

естественно =)
а может забить на имадж? =)
сделай себе объект tBitMap и рисуй на нём
с последующим BitBlt или если угодно
BitMap1.Image.Canvas.Draw


 
MBo ©   (2006-06-26 09:11) [9]

приведенного в нулевом посте код (без var) вполне достаточно, больше ничего не нужно

procedure DrawLine(C: TCanvas);
begin
 c.moveto(0,0);
 c.lineto(10,10);
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.03 c
8-1138362837
korban1
2006-01-27 14:53
2006.07.16
Работа с TBitmap


4-1144071379
alexeysc
2006-04-03 17:36
2006.07.16
остановка печати


2-1151109122
Maggot
2006-06-24 04:32
2006.07.16
Послать *.doc на печать.Подскажите пожалуйста!


2-1151385632
xZorg
2006-06-27 09:20
2006.07.16
Socket s


2-1151354245
SergNic
2006-06-27 00:37
2006.07.16
о возможностях Delphi 2006 Prof