Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.043 c
3-1140200020
V-kras
2006-02-17 21:13
2006.04.16
Чем отличается TQuery?


15-1143419024
Ketmar
2006-03-27 04:23
2006.04.16
Guano Apes -- Break The Line -- clip


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


2-1143788951
Ega23
2006-03-31 11:09
2006.04.16
Поиск параметров командной строки


4-1138123111
Игорь Степанов
2006-01-24 20:18
2006.04.16
Использование функции GetTickCount для создания задержки в 8 мсе





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский