Главная страница
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.045 c
2-1151330730
bulavkin
2006-06-26 18:05
2006.07.16
DelphX --- Отобразить спрайт


5-1135472981
sirin
2005-12-25 04:09
2006.07.16
Список классов, зарегестрированных в Delphi


11-1130397427
Dodfr
2005-10-27 11:17
2006.07.16
Bug in TStrList.IndexOfName


2-1151260756
rus0303
2006-06-25 22:39
2006.07.16
использование индекса


15-1150144664
Константинов
2006-06-13 00:37
2006.07.16
Как отстоять право на чистый воздух?