![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как програмно изменить размер канвы 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