Главная страница
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.041 c
2-1151327547
Id
2006-06-26 17:12
2006.07.16
Смена раскладки


2-1151152802
b.o.n.d.007
2006-06-24 16:40
2006.07.16
Я не могу понять, почему Делфи не считает куски формулы?


15-1150612858
Michael5
2006-06-18 10:40
2006.07.16
Хочу поучаствовать в каком-нибудь проекте!


2-1151658794
fast2
2006-06-30 13:13
2006.07.16
Как перевести строку (типа String) в последовательность...


11-1128850472
rofl
2005-10-09 13:34
2006.07.16
TKolTreeView - drag and drop