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

Вниз

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

Наверх





Память: 0.46 MB
Время: 0.007 c
2-1151579681
fast2
2006-06-29 15:14
2006.07.16
Как проверить, что переменная типаTDate "пустая", т.е....


2-1151048540
Delphi basic
2006-06-23 11:42
2006.07.16
TQuery против TTable


2-1151313933
GrBob
2006-06-26 13:25
2006.07.16
WMI - самое начало.


15-1150263922
Ega23
2006-06-14 09:45
2006.07.16
С Днём рождения! 14 июня


2-1151426032
fast2
2006-06-27 20:33
2006.07.16
Как сразу (не построчно) очистить StringGrid?





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