Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.16;
Скачать: CL | DM;

Вниз

Подскажите плиз.... как загружать рисунок на форму?   Найти похожие ветки 

 
vegarulez ©   (2006-03-30 08:12) [0]

У меня почему-то не получается сделать фоном формы рисунок...
как это везде описывается в инете, с помощью этого кода:
_______
unit bmpformu;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;

type
TBmpForm = class(TForm)
 Button1: TButton;
 procedure FormDestroy(Sender: TObject);
 procedure FormPaint(Sender: TObject);
 procedure Button1Click(Sender: TObject);
 procedure FormCreate(Sender: TObject);
private
 Bitmap: TBitmap;
 procedure ScrambleBitmap;
 procedure WMEraseBkgnd(var m: TWMEraseBkgnd); message WM_ERASEBKGND;
end;

var
BmpForm: TBmpForm;

implementation
{$R *.DFM}

procedure TBmpForm.FormCreate(Sender: TObject);
begin
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile("bor6.bmp");
end;

procedure TBmpForm.FormDestroy(Sender: TObject);
begin
Bitmap.Free;
end;

// since we"re going to be painting the whole form, handling this
// message will suppress the uneccessary repainting of the background
// which can result in flicker.
procedure TBmpform.WMEraseBkgnd(var m : TWMEraseBkgnd);
begin
m.Result := LRESULT(False);
end;

procedure TBmpForm.FormPaint(Sender: TObject);
var
x, y: Integer;
begin
y := 0;
while y < Height do
begin
 x := 0;
 while x < Width do
 begin
 Canvas.Draw(x, y, Bitmap);
 x := x + Bitmap.Width;
 end;
 y := y + Bitmap.Height;
end;
end;

procedure TBmpForm.Button1Click(Sender: TObject);
begin
ScrambleBitmap; Invalidate;
end;

// scrambling the bitmap is easy when it"s has 256 colors:
// we just need to change each of the color in the palette
// to some other value.
procedure TBmpForm.ScrambleBitmap;
var
pal: PLogPalette;
hpal: HPALETTE;
i: Integer;
begin
pal := nil;
try
 GetMem(pal, sizeof(TLogPalette) + sizeof(TPaletteEntry) * 255);
 pal.palVersion := $300;
 pal.palNumEntries := 256;
 for i := 0 to 255 do
 begin
 pal.palPalEntry[i].peRed := Random(255);
 pal.palPalEntry[i].peGreen := Random(255);
 pal.palPalEntry[i].peBlue := Random(255);
 end;
 hpal := CreatePalette(pal^);
 if hpal <> 0 then
 Bitmap.Palette := hpal;
finally
 FreeMem(pal);
end;
end;

end.
________

У меня получается просто прозрачная форма через которую всё видно и посередине не прозрачная кнопка...
подскажите в чём тут трабла?
icq:250921382


 
AbrosimovA   (2006-03-30 09:13) [1]

У твоей формы в Events глянь, там должны OnCreate = FormCreate, OnDestroy = FormDestroy и OnPaint = FormPaint.


 
vegarulez ©   (2006-03-30 09:49) [2]

Ага. Спасибо. Получилось.
Но вот тут возникает тогда другой вопрос, в описании к этому модулю написано:
Этот модуль заполняет фон формы рисунком bor6.bmp (256 цветов) и меняет его палитру при нажатии кнопки
Что это значит меняет его палитр при нажатии кнопки???
При нажатии у меня ничего не происходит... (


 
vegarulez ©   (2006-03-30 13:44) [3]

up


 
Nsk3D ©   (2006-03-30 14:08) [4]

Амба!Точно прозрачная форма а кнопка не прозрачная?


 
vegarulez ©   (2006-03-30 21:39) [5]

2 Nsk3D  типа атжог?
С формой я уже разобрался, рисунок помешается, как уже было написано выше.... читай лучше...

Теперь вопрос в другом зачем нужна кнопка?
У меня при нажатии на неё ничего не происходит...
в описании написано Этот модуль заполняет фон формы рисунком bor6.bmp и меняет его палитру при нажатии кнопки

Что значит меняет палитру? Перегоняет в 256 цветов рисунок боьлшей битовости или что?
Почему тогда у меня ничего не получается при нажатии на батон? В чём проблема?...



Страницы: 1 вся ветка

Текущий архив: 2006.04.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
2-1144239738
_Вован
2006-04-05 16:22
2006.04.16
Как центрировать форму на экране во время выполнения приложения?


2-1143362680
mrv78
2006-03-26 12:44
2006.04.16
проблемы lookup поля


15-1143363049
Yegorchic
2006-03-26 12:50
2006.04.16
Backup по-русски


15-1143186521
Ega23
2006-03-24 10:48
2006.04.16
С Днём рождения! 24 марта


4-1138295443
Святослав
2006-01-26 20:10
2006.04.16
Как программно вызвать окно настройки шрифтов?