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

Вниз

Сохранить рисунок с TPanel   Найти похожие ветки 

 
DelphiLexx ©   (2006-01-11 17:39) [0]

Есть наследник от TPanel:

TMyPicturePanel = class(TPanel)

private
image1: TImage;
...
imageN: TImage; {N - определенное кол-во компонентов TImage которые размещаются на TPanel"и}
...
end;

Задача состоит в следующем:
Создаём экземпляра  класса MyPicturePanel: TMyPicturePanel;
Нужно каким-то образом сохранить картинки размещенные на TMyPicturePanel как единое целое в файл.
Как это сделать - может быть свойство какое -либо добавить в TMyPicturePanel.


 
DVM ©   (2006-01-11 18:21) [1]


> Нужно каким-то образом сохранить картинки размещенные на
> TMyPicturePanel как единое целое в файл.

картинки в поток - поток в файл


 
Leonid Troyanovsky ©   (2006-01-11 18:25) [2]


> DelphiLexx ©   (11.01.06 17:39)  

> Нужно каким-то образом сохранить картинки размещенные на
> TMyPicturePanel как единое целое в файл.


Делаем битмап размером с панель.
Раскрашиваем его цветом панели (если надо).
Затем  
bmp.Canvas.CopyRect (Image1.BoundsRect, Image1.Picture.Bitmap.Canvas,
Image1.ClientRect); и т.д.
Сохраняем в файл, bmp.Free.

--
Regards, LVT.


 
KA_ ©   (2006-01-18 16:18) [3]

А можно поизвращаться :)
Канва умеет себя легко копировать. Но у TPanel канва недоступна.
Применим hack-класс:

type
 THackPanel = class(TCustomControl)
 public
    property Canvas;
 end;


Теперь у TMyPicturePanel сделаем метод сохранения в файл:

procedure TMyPicturePanel.SaveToFile(const aFileName: String);
var
 Bitmap: TBitmap;
begin
 with TBitmap.Create do
 try
   Width := Self.ClientWidth;
   Height := Self.ClientHeight;
   Bitmap.Canvas.CopyRect(Self.ClientRect, THackPanel(Self).Canvas, Self.ClientRect);
 finally
   Free;
 end;  
end;


 
MBo ©   (2006-01-18 16:31) [4]

>KA_
У него и так наследник...


 
kostan ©   (2006-01-20 04:44) [5]

Можно создать канву для панели:
     CanvasOtobr:=tcanvas.Create;
     CanvasOtobr.Handle:=GetDC(panel1.handle);


 
Leonid Troyanovsky ©   (2006-01-20 09:53) [6]


> KA_ ©   (18.01.06 16:18) [3]

> Канва умеет себя легко копировать. Но у TPanel канва недоступна.

> kostan ©   (20.01.06 04:44) [5]

> Можно создать канву для панели:


 А зачем канва панели, если рисуют на TImage?

--
Regards, LVT.


 
KA_ ©   (2006-01-20 11:53) [7]

Леонид, в первом посте сказано, что имейджей много.


 
Плохиш ©   (2006-01-20 12:33) [8]


> Как это сделать - может быть свойство какое -либо добавить
> в TMyPicturePanel.

Конечно надо, только не свойство, а два метода SaveToFile и LoadFromFile.


 
Leonid Troyanovsky ©   (2006-01-20 12:59) [9]


> KA_ ©   (20.01.06 11:53) [7]
> Леонид, в первом посте сказано, что имейджей много.


Много, и они на панели.
Хотя, конечно,  рисовать непосредственно на панели, было б удобней.
Однако, с другой стороны, если б картинки были там, то:
1. как рисовать на Canvas панели уже было известно;
2. вопрос должен был звучать так: как сохранить картинку на канве
(панели) в файл (а не картинки, как единое целое).

Впрочем, наши дедуктивные выводы могут остаться неподтвержденными.

--
Regards, LVT.



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

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

Наверх




Память: 0.46 MB
Время: 0.042 c
2-1138553667
tort
2006-01-29 19:54
2006.02.19
Ошибкак в Mediaplayer1?


11-1119470765
Trubis
2005-06-23 00:06
2006.02.19
Вопросы по ListView1


2-1138691604
ORMADA
2006-01-31 10:13
2006.02.19
Шифрование+Открытые/Закрытые ключи


2-1138793071
sergeii
2006-02-01 14:24
2006.02.19
Label ?


2-1138896451
dera
2006-02-02 19:07
2006.02.19
Не знаю, сможете ли помочь...





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