Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.19;
Скачать: CL | DM;

Вниз

Сохранить рисунок с 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
2-1138464552
Гаврилов В.А.
2006-01-28 19:09
2006.02.19
Как получить значение arccos


2-1138804252
Dot
2006-02-01 17:30
2006.02.19
чтение строки из текстового файла


15-1138180213
Red_imp
2006-01-25 12:10
2006.02.19
Народ посоветуйте программу для учета трафика


15-1138667970
Lab74
2006-01-31 03:39
2006.02.19
kladovka.net.ru Hacked... и ссылка на delphimaster.ru


15-1138630265
Суслик
2006-01-30 17:11
2006.02.19
Про XHTML