Форум: "Основная";
Текущий архив: 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.032 c