Главная страница
    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.47 MB
Время: 0.04 c
3-1135146531
epolyak
2005-12-21 09:28
2006.02.19
Большой проект


15-1138817907
Alarm
2006-02-01 21:18
2006.02.19
Поздравление Керку


6-1131460316
vishnia
2005-11-08 17:31
2006.02.19
Работа ISAPI DLL


15-1138075876
Ozone_zabil_parol
2006-01-24 07:11
2006.02.19
Цифровой фитик. Проблема выбора.


1-1137746245
kyn66
2006-01-20 11:37
2006.02.19
Как настроить DBGridEh для операции с футорами ?





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