Главная страница
    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.46 MB
Время: 0.009 c
2-1151385233
bajenovv
2006-06-27 09:13
2006.07.16
помогите плиз новичку!!!!


1-1149131475
TButton
2006-06-01 07:11
2006.07.16
4bit -> 8bit


6-1141672060
redlord
2006-03-06 22:07
2006.07.16
FindFirst FindNext для FTP servera


2-1151418022
manevil
2006-06-27 18:20
2006.07.16
Ожидание выполнения задачи


2-1151569501
learner
2006-06-29 12:25
2006.07.16
Управление VCL из нити





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