Текущий архив: 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.46 MB
Время: 0.009 c