![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Замостить Timage
Шакал © (2009-01-16 10:24:00)Доброго времени суток!
Создал форму, с верху и слева панели - нужно всю остальную область замостить (из небольшого .bmp) т.е. сделать фон.
Пишу следующий код:
procedure TForm1.FormPaint(Sender: TObject);
var
x,y: integer;
pic: tbitmap;
pic1: timage;
begin
pic1:=timage.Create(form1);
pic1.Align:=alClient;
pic1.Parent:=form1;
pic:=tbitmap.Create;
pic.LoadFromFile('img\pole.bmp');
for x:=0 to round(pic1.width/120) do
for y:=0 to round(pic1.height/150) do
pic1.Canvas.Draw( X*120, Y*150, pic);
end;
Изоброжение появляется, но постоянно мигает (похоже постоянно прорисовывается заново).
Подскажите плиз...
Шакал (2009-01-16 13:41:00) [1]а не все ок....просто timage забыл удалить.....
ОГРОМНОЕ СПАСИБО {RASkov}
И Всем огромное человеческое спасибо за помощь...
Шакал (2009-01-16 13:36:00) [2]
> {RASkov} ©
В принципе работает без тормозов, НО проц грузит на 99% и каждую 1 секунду жрет по 16 кб памяти....
{RASkov} (2009-01-16 12:57:00) [3]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
private { Private declarations }
public { Public declarations }
BMP: TBitmap;
end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
BMP:=TBitmap.Create;
BMP.LoadFromFile(<name.bmp>);
end;
procedure TForm1.FormPaint(Sender: TObject);
var X, Y: Integer;
begin
for X:=0 to ClientWidth div BMP.Width do
for Y:=0 to ClientHeight div BMP.Height do
Canvas.Draw(X*BMP.Width, Y*BMP.Height, BMP);
end;
end.
Ega23 (2009-01-16 12:45:00) [4]
> Например, в TForm.OnCreate
Это для старта. И в OnResize
KSergey (2009-01-16 12:30:00) [5]> Шакал (16.01.09 12:17) [16]
> я имел ввиду количество раз мощения)))
Их не надо искусственно ограничивать. Достаточно разместить этот код в обработчике, срабатывающем 1 раз за время жизни программы (или формы), а не каждый раз при отрисовке.
Например, в TForm.OnCreate
Ega23 (2009-01-16 12:30:00) [6]
> я имел ввиду количество раз мощения)))
Тебе незнакомы операции деления, вычитания, сложения и умножения?
Может ну его нафиг, программирование? В армии люди нужны... Да и с дворниками как-то тоже не очень...
Шакал (2009-01-16 12:17:00) [7]
> TForm.ClientWidth, TForm.ClientHeight + F1.
я имел ввиду количество раз мощения)))
Шакал (2009-01-16 12:12:00) [8]
> Надо использовать компонент TZamostitelRestrictor
напишешь, скинь на мыло)))
Ega23 (2009-01-16 11:55:00) [9]
> а как ограничить?
>
TForm.ClientWidth, TForm.ClientHeight + F1.
Медвежонок Пятачок (2009-01-16 11:55:00) [10]Надо использовать компонент TZamostitelRestrictor
Шакал (2009-01-16 11:47:00) [11]
> > 2. ОДИН РАЗ его мостишь.
а как ограничить?
Медвежонок Пятачок (2009-01-16 11:42:00) [12]procedure TForm1.FormPaint(Sender: TObject);
.....
Caption := Format('Я закаким-то хреном загрузил этот файл уже %d раз'#13#10'А пофик, потому как я суров',[Tag]);
Tag := Succ(Tag);
......
Шакал (2009-01-16 11:29:00) [13]
> А не слишком ли ты суров?
в чем суровость? объясните плиз...
Ega23 (2009-01-16 11:21:00) [14]
> а пример кода мона-_О
Сам подумай. Учись учиться.
Шакал (2009-01-16 11:10:00) [15]
> Алгоритм такой:
> 1. Заводишь в памяти Bitmap, выставляешь ему размеры.
> 2. ОДИН РАЗ его мостишь.
> 3. При перерисовке формы назначаешь этот битмап канвасу
> формы.
а пример кода мона-_О
>
> Ты полчасика поводи, потом придёшь, ещё и про нехватку памяти
> спросишь.
через две минуты выдает)))))
Ega23 (2009-01-16 11:05:00) [16]
> А не слишком ли ты суров?
Это цветочки. Он ещё по экземпляру TImage создаёт на каждую перерисовку.
Ega23 (2009-01-16 11:04:00) [17]Ну всё правильно, у тебя на каждую перерисовку такая фигня идёт.
Алгоритм такой:
1. Заводишь в памяти Bitmap, выставляешь ему размеры.
2. ОДИН РАЗ его мостишь.
3. При перерисовке формы назначаешь этот битмап канвасу формы.
Плохиш (2009-01-16 11:02:00) [18]
> Шакал (16.01.09 10:51) [3]
>
> и проц почти на 100% приложение грузит....
>
Ты полчасика поводи, потом придёшь, ещё и про нехватку памяти спросишь.
Медвежонок Пятачок (2009-01-16 11:01:00) [19]procedure TForm1.FormPaint(Sender: TObject);
var
....
pic.LoadFromFile('img\pole.bmp');
.....
А не слишком ли ты суров?
Шакал (2009-01-16 10:51:00) [20]и проц почти на 100% приложение грузит....