Ver Mensaje Individual
  #1  
Antiguo 08-03-2011
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Reputación: 17
gaston260 Va por buen camino
no entiendo porque parpadea imagen en splash screen

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;  // sacar barra de titulo

  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  CONTADOR: Integer;
  contador2: Integer;
  contador3: integer;
  contadortiempo: Integer;

implementation

{$R *.dfm}

procedure TForm1.CreateParams(var Params: TCreateParams) ;   // sacar barra de titulo
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;
    //Image1.Refresh;

    if contador2 > 240 then
    begin
      contador3 := contador3 - 1;
      ProgressBar3.Position:= contador3;
      Form1.AlphaBlendValue:= contador3;
      Image1.Repaint;
      //Image1.Refresh;
      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.
Responder Con Cita