Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Задание размера TMetafile


Gydvin ©   (2007-06-01 09:36:00) 

Не пойму, что за ерунда. Делаю так

var
 wmf: tmetafile;
....

 wmf := TMetafile.Create;

 wmf.Transparent := true;
 wmf.Enhanced := true;
 wmf.Height := 35;
 wmf.Width := 35;

with TMetafileCanvas.Create(wmf, 0) do
 try
//рисую
 finally
   Free;
 end;


Размеры у wmf не изменяются.

А если так то все работает.

var
 wmf: tmetafile;
....

 wmf := TMetafile.Create;

 wmf.Transparent := true;
 wmf.Enhanced := true;
 wmf.Height := 35;
 wmf.Width := 35;

with TMetafileCanvas.Create(wmf, 0) do
 try
//пустой
 finally
   Free;
 end;


with TMetafileCanvas.Create(wmf, 0) do
 try
//рисую
 finally
   Free;
 end;


Почему? И как лечить


umbra   (2007-06-01 15:23:00) [1]

как говорит великий и ужасный F1 о TMetaFileCanvas.Create:

Create sets the size of the TMetafile object from ReferenceDevice if it does not already have the MMHeight and MMWidth properties set.


Gydvin   (2007-06-01 14:29:00) [2]

без ;do ессно


Gydvin   (2007-06-01 14:28:00) [3]

D7

пробовал так

with TMetafileCanvas.CreateWithComment( wmf, 0, 'qw', 'qw' ); do
try
   ...

finally
  Free;
end;


Desdechado   (2007-06-01 14:06:00) [4]

Версия дельфей какая?
У меня на 5-ке проблем не было, да и на 7-ке не замечал.


Gydvin   (2007-06-01 13:59:00) [5]


> Ты думаешь, что при рисовании за границей указанных размеров
> они будут растягиваться?

Нет недумаю. Мне нужно именно задать размеры полотна. Тоесть размеры
указанные метафайлу не применяются с первой попытки к созданной канве. Только со второй, как показанно в [0] пример 2.

CreateWithComment( oMeta, 0, 'qw', 'qw' );

Тоже самое.


Desdechado   (2007-06-01 12:48:00) [6]

А почему они должны меняться?
Ты думаешь, что при рисовании за границей указанных размеров они будут растягиваться? Нет, не будут.
Помню, были какие-то проблемы при создании полотна без примечаний, поэтому всегда создаю с примечаниями.
var
 oMeta: TMetafile;
 oCanv: TMetafileCanvas;
begin
 oMeta := TMetafile.Create();
 oMeta.Height := 250;
 oMeta.Width := 470;
 oCanv := TMetafileCanvas.CreateWithComment( oMeta, 0, s1, s2 );


Наверх

Титульная страница Поиск, карта сайта Написать письмо