Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2011, 18:27   #11
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

вот попробуи
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Image1.Height := Image1.Height + 100;
  Image1.Width := Image1.Width + 100;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Image1.Picture := nil;
  with Image1.Canvas do begin
    Pen.Color := clGray;
    Pen.Mode := pmXor;
    Brush.Style := bsClear;
    Rectangle(Image1.BoundsRect);
  end;
end;
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 12.03.2011, 18:53   #12
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

Цитата:
Сообщение от ArtGrek Посмотреть сообщение
Image1.Picture := nil;
да, эта строка ключевая. Хотя почему именно так надо я не понимаю
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 12.03.2011, 19:08   #13
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

чесно, сам не знаю, у меня ее не было, ет тебе попытался зделать и добавил
может кто нибудь знающии заидет и пояснит
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 12.03.2011, 19:16   #14
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

и что, у тебя без нее работало?
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 12.03.2011, 19:23   #15
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

мне ето не нужно было, вот разобрался, во время изменения картинки ее битмап не меняеца, а так тоже работает
Код:
  Image1.Height := Image1.Height + 100;
  Image1.Width := Image1.Width + 100;
  Image1.Picture.Bitmap.Height := Image1.Height;
  Image1.Picture.Bitmap.Width := Image1.Width;
  Image1.Canvas.Rectangle(Image1.BoundsRect);
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 12.03.2011, 22:24   #16
A-IX-2
Форумчанин
 
Аватар для A-IX-2
 
Регистрация: 08.10.2010
Сообщений: 101
По умолчанию

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Image1.Canvas.Rectangle(0,0,Image1.ClientWidth,Image1.ClientHeight);
end;
без этого работает, но я так понимаю, без этого Вам не подойдет?)
"Думаешь, будет трудно? Конечно, будет! Но, только закаляя дух, людьми становятся люди!"
A-IX-2 вне форума Ответить с цитированием
Старый 13.03.2011, 11:01   #17
x128
Форумчанин
 
Регистрация: 03.02.2010
Сообщений: 178
По умолчанию

Код:
procedure ImgFillAndResize(const h,w: integer; const c: TColor);
begin
  with Form1.Image1.Picture.Bitmap do begin
    Height:=h;
    Width:=w;
    Canvas.Brush.Color:=c;
    Canvas.FillRect(Canvas.ClipRect);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ImgFillAndResize(200, 200, clRed);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Image1.AutoSize:=true;
  ImgFillAndResize(100, 100, clWhite);
end;

Последний раз редактировалось x128; 13.03.2011 в 11:03.
x128 вне форума Ответить с цитированием
Старый 14.03.2011, 19:32   #18
GreyScall
Пользователь
 
Аватар для GreyScall
 
Регистрация: 01.01.2011
Сообщений: 29
Лампочка

Цитата:
Сообщение от Don Karleone Посмотреть сообщение
да в общем то размер наверное увеличивается, но визуально я этого не вижу. На форме по прежнему остается белый квадрат размером 100 на 100. А должен стать 200 на 200.
Совершенно верно... Изменение размеров компонента не приводит к изменению размеров изображения...

Код:
Image1.Picture.Bitmap.Width:=256;
Image1.Picture.Bitmap.Height:=256; // Задали размеры изображению;
Image1.Width:=300;
Image1.Height:=200; // Задали размеры компоненту (не обязательно такие же как у изображения; а если Image1.AutoSize==True, то они будут автоматически подстраиваться под изображение);
Image1.Canvas.FillRect(Image1.Canvas.ClipRect); // Залили изображение цветом кисти (Image1.Canvas.Brush.Color);
Цитата:
Сообщение от Alex2391 Посмотреть сообщение
... и у меня проект вызывает исключение с сообщением "Can only modify an image if it contains a bitmap". В чем может быть дело?
Видимо у вас в TImage.Picture загружено изображение в формате отличном от bmp...

Код:
Var TempBMP: TBitmap;

. . .

If (Image1.Picture.Graphic<>Nil) Then // Если изображение присутствует;
      If (Image1.Picture.Graphic.ClassName<>'TBitmap') Then // И оно не в bmp формате;
            Begin
            TempBMP:=TBitmap.Create; // Создали временный битмап;
            Try
                  TempBMP.Assign(Image1.Picture.Graphic); // Скопировали изображение из Image1.Picture в битмап;
                  Image1.Picture.Bitmap.Assign(TempBMP); // Изменили формат изображения на bmp;
            Finally
                  TempBMP.Free; // Удалили временный битмап;
                  End;
            End;
Regards, GreyScall.
GreyScall вне форума Ответить с цитированием
Старый 14.03.2011, 20:38   #19
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
не стоит это помещать в OnPaint
Почему? Я с коллегой солидарен, и сам стараюсь отрисовку именно в события отвечающие за отрисовку пихать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.03.2011, 22:26   #20
GreyScall
Пользователь
 
Аватар для GreyScall
 
Регистрация: 01.01.2011
Сообщений: 29
По умолчанию

Только не с TImage... Оно по сути просто хранит изображение и при перерисовке само выводит его на окно...
А вот если динамически изменяющиеся векторные фигуры рисовать в каком-нибудь TPaintBox - тогда да, другое дело...
Regards, GreyScall.
GreyScall вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение размеров Image Sheva_ Помощь студентам 7 17.01.2011 11:26
Определение размеров компонента и положения по хендлу Marsel737 Общие вопросы Delphi 10 03.05.2010 00:53
Изменение размеров фигуры по F1 inzener-tolik Win Api 4 24.03.2010 15:37
Изменение размеров фигур artemavd Общие вопросы Delphi 2 03.03.2010 21:40
Изменение размеров pinksky Microsoft Office Excel 3 18.04.2008 15:52