Вниз
Скачать: CL | DM;

Виртуальный Canvas (полотно)   Найти похожие ветки 

← →
Сатир ©   (2003-01-17 18:00) [0]

Уважаемые мастера!
Поскажите, пожалуйста, как можно создать виртуальный сабж.
Данный объект требуется для хранения в памяти изображения (напр., jpeg-картинки), из частей которого формируется другое - реальное.
Вот кусок кода:
var Canvas:TCanvas;
Dest,Source:TRect;
begin
Canvas:=TCanvas.Create;
try
Canvas.Draw(0,0,Skin.Picture.Graphic);<-вот здесь полюётся компилятор:(((
//TopLeft
Source:=Rect(0,0,EdgeTopLeft.Width,EdgeTopLeft.Height);
Dest:=Source;
can.CopyRect(Dest,Canvas,Source);
finally
Canvas.Free;
end;
end;


← →
gsu ©   (2003-01-17 18:40) [1]

>> Данный объект требуется для хранения в памяти изображения
используй TBitmap
>> вот здесь полюётся компилятор
procedure Draw(X, Y: Integer; Graphic: TGraphic)


← →
Сатир ©   (2003-01-17 18:44) [2]

Всем спасибо
Уже догадался сам.
Нужно создавать экземпляр не TCanvas, а TBitmap, а уже его полотно и использовать.
Вот исправленный код, если кому интересно
procedure SSkinBorder.PaintSkin(can: TCanvas; var r: TRect);
var Dest,Source:TRect;
BitMap:TBitMap;
begin
BitMap:=TBitMap.Create;
With Bitmap do
try
Canvas.Draw(0,0,Skin.Picture.Graphic);
//TopLeft
Source:=Rect(0,0,EdgeTopLeft.Width,EdgeTopLeft.Height);
Dest:=Source;
can.CopyRect(Dest,Canvas,Source);
finally
BitMap.Free;
end;
end;


← →
Сатир ©   (2003-01-17 18:47) [3]

2gsu © (17.01.03 18:40)
и тебе спасибо,
зря, что перед тем как отвечать, не обновил страницу:)


← →
gsu ©   (2003-01-17 18:54) [4]

(-:|~


← →
Сатир ©   (2003-01-17 20:01) [5]

ладно, раз пошла такая пьянка, тогда скажите мне, пожалуйста, почему первый код рисует на кавасе, а второй - увы:(
Первый код:
procedure SSkinBorder.PaintSkin(can: TCanvas; var r: TRect);
var Dest,Source:TRect;
BitMap:TBitMap;
begin
BitMap:=TBitMap.Create;
With Bitmap do
try
Can.Draw(0,0,Skin.Picture.Graphic);
...


Второй код:
procedure SSkinBorder.PaintSkin(can: TCanvas; var r: TRect);
var Dest,Source:TRect;
BitMap:TBitMap;
begin
BitMap:=TBitMap.Create;
With Bitmap do
try
Canvas.Draw(0,0,Skin.Picture.Graphic);
//TopLeft
Source:=Rect(0,0,20,20);
can.CopyRect(Source,Canvas,Source);
...


← →
gsu ©   (2003-01-17 20:17) [6]

в 1 коде ты вообще bitmap не используешь !!!
а во 2 создаешь, но не задаешь размеры Bitmap


← →
Сатир ©   (2003-01-17 20:25) [7]

2gsu © (17.01.03 20:17)
спасибо



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
14-87051
Makhanev A.S.
2003-01-11 13:49
2003.01.27
Сколько раз можно перезаписывать инфу на CD-RW -шку?


6-87013
Invisible
2002-11-26 21:47
2003.01.27
Трассировка


3-86719
b_baranov
2003-01-06 19:25
2003.01.27
FIBDataSet, run-time формирование SQL- запроса


7-87174
BarikNT
2002-11-13 01:12
2003.01.27
Загрузка DLL


3-86687
Aleksandr
2003-01-08 16:21
2003.01.27
Проблема с черезстрочным раскрашиванием Grid.




   Наверх