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

Вниз

Виртуальный 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 вся ветка

Форум: "Основная";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.01 c
14-87058
Николай Быков
2003-01-08 04:41
2003.01.27
В сети что ли нет ресурсов с материалами по.....


14-87034
John
2003-01-09 19:28
2003.01.27
Возможно совсем глупый вопрос...


4-87195
Виталик
2002-12-11 14:51
2003.01.27
Окно без панели заголовка


1-86964
AndreiR
2003-01-17 11:24
2003.01.27
Как изменить цвет фришта в TDateTimePicker е?


7-87166
BJValentine
2002-11-05 16:07
2003.01.27
Автозагрузка





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