Vraag : Om het even welk beeld aan Bitmap

Hello,

What is de beste procedure/functie transformatie om het even welk beeld (.jpg, .png, enz.) aan Bitmap met of zonder het plaatsen van de afmetingen?

Regards,
Carlos

Antwoord : Om het even welk beeld aan Bitmap

Op versies van Vensters later toen Win95, kunt u subklasse uitgeeft controle aan
onderschep het Wm_ctlcoloredit- bericht (voor TEdit, zou het zijn
CN_CTLCOLOREDIT in plaats daarvan) en keer een borstel terug die van bitmap wordt gecre�ërd.
U kunt bitmap van het type van vooruitgangsvertoning dan trekken u wilt.
Hier is een eenvoudig voorbeeld:

TForm1 = klasse (TForm)
gepubliceerd
Edit1: TEdit;
Timer1: TTimer;
procedure FormCreate (Afzender: TObject)
procedure Timer1Timer (Afzender: TObject);
privé
OldWndProc: TWndMethod;
procedure EditWndProc (var Bericht: TMessage);
eind;

procedure TForm1.FormCreate (Afzender: TObject);
begin
OldWndProc: = Edit1.WindowProc;
Edit1.WindowProc: = EditWndProc;
eind;

procedure TForm1.EditWndProc (var Bericht: TMessage);
var
bmp: TBitmap;
r: TRect;
oldRight: Geheel;
begin
als Message.Msg = CN_CTLCOLOREDIT toen
begin
Windows.SetTextColor (Message.WParam,
ColorToRGB (Edit1.Font.Color));
Window.SetBkMode (TRANSPARANTE Message.WParam,);

bmp: = TBitmap.Create;
probeer
r: = Edit1.ClientRect;
bmp. Breedte: = (r.Right - r.Left);
bmp. Hoogte: = (r.Bottom - r.Top);

als Edit1.Tag > 0 toen
begin
oldRight: = r.Right;
r.Right: = r.Left + ((r.Right - r.Left) *
(Uitgebreid (Edit1->Tag)/100);

bmp. Canvas.Brush.Color: = clAqua;
bmp. Canvas.FillRect (r);

r.Left: = r.Right;
r.Right: = oldRight;
eind;

bmp. Canvas.Brush.Color: = Edit1.Color;
bmp. Canvas.FillRect (r);

Message.Result: = Windows.CreatePatternBrush (bmp. Behandel);
tot slot
bmp. Vrij;
eind;

Uitgang;
eind;

OldWndProc (Bericht);
eind;

procedure TForm1.Timer1Timer (Afzender: TObject);
begin
// plaatste ik Timer1.Interval aan 50ms…

als Edit1.Tag >= 100 toen
Edit1.Tag: = 0
anders
Edit1.Tag: = Edit1.Tag + 1;

Edit1.Invalidate;
eind;
Andere oplossingen  
 
programming4us programming4us