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

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

Как програмно изменить размер канвы TImage


JEK2 ©   (2006-03-01 10:02:00) 

Рисую на канве Image - 2 прямоугольника с рамками
Значения размеров(высота,ширина) Image беру из Edit1.Text и Edit2.Text
Например после запуска проги:
ввожу значение ширины 200 и высоты 200 -прямоугольники отрисовываются нормально
ввожу значение ширины 150 и высоты 150 -прямоугольники отрисовываются нормально
ввожу значение ширины 250 и высоты 250 -прямоугольники отрисовка происходит НЕ ТАК как хотелось бы :(
Т.е. если ввести значение превышающее первоначально-введенное значение, то отрисовка происходит не так как надо,
что делаю не верно?

procedure TForm1.Button1Click(Sender: TObject);
var
r1,r2: TRect;
x1,y1,x2,y2:Integer;
im_height, im_width:Integer;
begin
im_height:=StrToInt(Edit1.Text);
im_width:=StrToInt(Edit2.Text);
Image1.Height:= im_height;
Image1.Width:= im_width;
x1:=0;
y1:=0;
y2:=x1+Image1.Height;
x2:=y1+Image1.Width;
r1:=Rect(x1,y1,x2,y2);
r2:=Rect(x1+8,y1+8,x2-8,y2-8);

with Image1.Canvas do
  begin
    Brush.Color:=clWhite;
    FillRect(r1);
    Brush.Color:=clBlack;
    FrameRect(r1);
    Brush.Color:=clBlack;
    FrameRect(r2);
  end;
end;


antonn   (2006-03-01 13:07:00) [1]

кстати, правая/нижняя граница рисуется на пиксель левее/выше


JEK2   (2006-03-01 12:16:00) [2]


> Image1.Picture.Bitmap.Width:=Image1.Width
> Image1.Picture.Bitmap.Height:=Image1.Height

Спасибо большое.


REP   (2006-03-01 11:53:00) [3]

Image1.Picture.Bitmap.Width:=Image1.Width
Image1.Picture.Bitmap.Height:=Image1.Height


Наверх

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