Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Form To EMF даже, если компоненты заходят за рамку формы 
:(
    Опции темы
Delphist
  Дата 15.8.2006, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: нет
Всего: 3



Ниже расположенный код позволяет сохранить все, что расположено на форме в виде векторного рисунка формата emf.
Код

procedure TfmTech.FormToEmf;
var
  mf: TMetaFile;
  mfCanvas: TMetaFileCanvas;
begin

  mf := TMetaFile.Create;
  try
    mf.Width := fmTech.ClientWidth;
    mf.Height := fmTech.ClienHeight;
    mf.Enhanced := true;
    mfCanvas := TMetaFileCanvas.Create(mf, 0);
    try
      fmTechViewOrFrame.PaintTo(mfCanvas.Handle, 0, 0);
    finally
      mfCanvas.Free;
    end;
      mf.SaveToFile('D:\MyEmf.emf');
  finally
    mf.Free;
  end;
end;

Но остается одна проблема - как коректно сохранить компоненты формы в emf, если они заходят за границу этой формы.


Это сообщение отредактировал(а) Delphist - 15.8.2006, 10:41


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
imageman
Дата 16.8.2006, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 30.9.2004

Репутация: нет
Всего: 1



у тебя два раза mfCanvas.Free;

Пробуй увеличить размеры формы так, чтобы влезли все компоненты.

Второй вариант - уменьши все компоненты, чтобы они влезни на форму (вроде где-то есть ScaleTo  - а таким образом масштабировал всё, что расположено на панельке).

Третий вариант через Print.
PM MAIL   Вверх
Delphist
  Дата 17.8.2006, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: нет
Всего: 3



Цитата(imageman @ 16.8.2006,  10:51)
у тебя два раза mfCanvas.Free;

Третий вариант через Print.

Где ты рассмотрел два раза mfCanvas.Free smile 

Как это через Print.


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
imageman
Дата 17.8.2006, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 30.9.2004

Репутация: нет
Всего: 1



Цитата

Где ты рассмотрел два раза mfCanvas.Free

упс smile - похожие имена переменных - mf

а через принер я имел в виду на виртуальный принтер, но тебе, видимо, всё равно не пойдет, так что или уменьшай контролы или увеличивай форму.


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0435 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.