Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Timage en formulario principal (https://www.clubdelphi.com/foros/showthread.php?t=41599)

Loviedo 20-03-2007 18:59:56

Timage en formulario principal
 
Tengo un Timage como fondo del formulario principal, pero se produce un efecto 'feo' cuando se inicia la aplicación, Se muestra el formulario y a continuación se inserta la imagen. ¿Como puedo hacer para que se muestre el formulario con la imagen como fondo sin que se produzca ese retardo en la imagen?.
Utilizo Windows XP y JPeg.
Gracias anticipadas.

Lepe 20-03-2007 19:43:57

¿Cuando insertas la imagen? ¿en qué evento del Form?

Lo propio sería en el OnCreate de la Forma, incluso hacer el cambio de tamaño (un resize) antes de mostrar el form. Al llamar a Form1.Show ya todo está preparado sin "efectos raros"

Saludos

Loviedo 20-03-2007 21:35:28

Lo he probado en todos los eventos y nada. Primero se crea el form y luego se inserta la imagen. No es que sea un problema, pero es más elegante que aparezca el formulario con su imagen de fondo.
[Saludos]
Gracias.
[/Saludos]

basti 20-03-2007 23:03:07

Prueba lo siguiente, no sé si es la mejor forma de hacerlo, pero acabo de probarlo y funciona:

OnCreate del form:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  TransparentColor := True;
  TransparentColorValue := clBlack;
  Color := clBlack;
  BorderStyle := bsNone;
end;

OnProgress del TImage:
Código Delphi [-]
procedure TForm1.Image1Progress(Sender: TObject; Stage: TProgressStage;
  PercentDone: Byte; RedrawNow: Boolean; const R: TRect;
  const Msg: String);
begin
  if PercentDone = 100 then
  begin
    TransparentColor := False;
    Color := clBtnFace;
    BorderStyle := bsSizeable;
  end;
end;

Lo que hace es hacer el form transparente en el create, y restablecerlo cuando la imagen está totalmente cargada.

Loviedo 21-03-2007 01:49:38

Gracias. La idea es lo que he buscado, hacer invisible el form y cuando la imagen esté cargada hacerlo visible, pero a mi no me funciona.

Con este procedimiento el fondo se elimina, pero sólo el fondo.
Código Delphi [-]
procedure Tform1.WMEraseBkgnd(var Msg:TMessage);
begin
   Msg.Result:=1;
end;

Saludos.

mRoman 22-05-2015 23:10:14

El efecto se quita si el TToolBar en su propiedad Align, se la cambio a "alCustom".... esto puediera resolver el problema.....pero yo creo que no es la mejor opcion de resolverlo.


La franja horaria es GMT +2. Ahora son las 04:12:39.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi