hola gente estoy usando este codigo que hice muy a mi manera
y no entiendo xq se demora en repintar la imagen no se si necesito poner un imagen1.repait o un Application.ProcessMessages lo que si se es que tengo un MediaPlayer y al reproducir el sonido la imagen despues de la mitad de tiempo parpadea, este es mi codigo
Código Delphi
[-]unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls, ComCtrls, MPlayer;
type
TForm1 = class(TForm)
Image1: TImage;
Timer1: TTimer;
Label1: TLabel;
ProgressBar2: TProgressBar;
ProgressBar3: TProgressBar;
Label2: TLabel;
MediaPlayer1: TMediaPlayer;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
procedure CreateParams(var Params: TCreateParams); override;
public
end;
var
Form1: TForm1;
CONTADOR: Integer;
contador2: Integer;
contador3: integer;
contadortiempo: Integer;
implementation
{$R *.dfm}
procedure TForm1.CreateParams(var Params: TCreateParams) ; begin
BorderStyle:= bsNone;
inherited;
Params.ExStyle:= Params.ExStyle or WS_EX_STATICEDGE;
Params.Style:= Params.Style or WS_SIZEBOX;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
contadortiempo:= contadortiempo + 1;
Label2.Caption:= inttostr(contadortiempo);
Label2.Caption:= Label2.Caption + IntToStr(0);
contador2:= contador2 + 1;
ProgressBar2.Position:= contador2;
Form1.AlphaBlendValue := contador2;
Image1.Repaint;
if contador2 > 240 then
begin
contador3 := contador3 - 1;
ProgressBar3.Position:= contador3;
Form1.AlphaBlendValue:= contador3;
Image1.Repaint;
CONTADOR:= CONTADOR + 1;
end;
IF CONTADOR > 254 THEN
Begin
Form1.Close;
End;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
MediaPlayer1.Open;
MediaPlayer1.Play;
CONTADOR:= 0;
CONTADOR2:= 0;
CONTADOR3:= 255;
contadortiempo:= 0;
end;
end.