Вопросы и Ответы
22. Как заполнить форму ЛЮБЫМ растровым изображением?
Стандартные средства Windows позволяют заполнять форму только изображением размером 8х8 точек (см. "Вопрос и Ответ 19"). Для заполнения формы растровым изображением любого размера необходимо в методе Paint заполнять всю форму нужным растровым изображением вручную.
............
............ bmp: TBitMap; {Объект TBitMap} end;
public
kX, kY: Integer; {Количество
целых изображений по X и Y}
............
procedure
TForm1.FormCreate(Sender: TObject); begin bmp := TBitMap.Create; {Создаем объект TBitMap} end;
............ {Вызывается
при изменении размеров окна (и при его создании
тоже)} {Проверяем
загружено или нет изображение} {Вычисляем
какое целое число раз поместится изображение на
экране по вертикали и горизонтали} END;
end;
............ procedure
TForm1.FormPaint(Sender: TObject); {Проверяем
загружено или нет изображение} FOR X := 0 TO kX DO {Количество изображений по X плюс одно} FOR Y := 0 TO kY DO {Количество изображений по Y плюс одно} Canvas.Draw(X*bmp.Width, Y*bmp.Height, bmp); {Рисуем} end;
............ procedure
TForm1.FormDestroy(Sender: TObject); bmp.Free; {Удаляем
объект TBitMap} end;
............
bmp.LoadFromFile('fon.bmp'); {Загружаем в него изображение}
procedure TForm1.FormResize(Sender: TObject);
begin
IF bmp.Handle <> 0 THEN BEGIN
kX := Width DIV bmp.Width;
kY := Height DIV bmp.Height;
Refresh; {Перерисовываем
окно}
VAR X, Y: Integer;
begin
IF bmp.Handle <> 0 THEN
begin
...предыдущая страница следующая...
оглавление