PDA

Ver la Versión Completa : Imagen png con formulario transparente?


marcosl
22-11-2007, 20:18:56
ok señores, tengo este problema tengo una imagen png toda muy bonita , ahora quiero utilizar esta imagen como splash...

El problema es como hago que solo se muestre la imagen TENGAN ENCUENTRA QUE LA IMAGEN PNG TIENE COLORES ALPHA..

si pongo el formulario con alpha 0 me transparenta hasta la imagen asi que no logro que se vea la imagen...

si pongo un color de transparencia los bordes de la imagen (alpha) se ven pixelados...

No puedo hacer que el formulario tome el contorno de la imagen esto es obvio.

Si capturo lo que tengo de fondo y lo pongo detras de la imagen da la sensacion de transparencia hasta que alguien mueve alguna ventana...



Así que aquí estoy imagen png como splash y sin fondo.... sigo buscando solución

xEsk
23-11-2007, 01:49:12
Si capturo lo que tengo de fondo y lo pongo detras de la imagen da la sensacion de transparencia hasta que alguien mueve alguna ventana...
Pues así es como lo hacen la mayoría de programas que muestran un Splash-Screen "molón"... xD El Photoshop, el CodeBlocks, etc... utilizan esta técnica o parecida (y les ocurre lo mismo que a ti, como es lógico! xD).

Teniendo en cuenta, que lo que quieres es mostrar un Splash-Screen, no creo que importe mucho lo de que te mueven una ventana, porqué un Splash-Screen no debería durar mucho tiempo en pantalla (a no ser que tu programa tarde mil en abrirse xDD).

Es mi humilde opinión.

Saludos.

marcosl
23-11-2007, 13:20:58
El tiempo que aparece el splash es relativo, que tal si quiero que mi programa se abra y que todabia persista mi splash en el centro o si mi program es pesado y mi splash tiene una barra de progreso y mientras esta cargando el usuario esta haciendo otras cosas.

No es la idea que nos pase lo mismo que a otros programas, en el foro somos mas para pensar.

En cuanto tenga una solución la comparto con ustedes.

"Lo difícil se hace rápido, lo imposible tardamos un ratito más."

fide
24-11-2007, 21:29:44
Buscar un color extraño, como el fucia ese, y ponerlo como TransParentColor del form. de ahi, ponerle Transparent := True;

y solo se vera la PNG con sombra y todo...

ArdiIIa
24-11-2007, 21:54:42
Prueba esto:


procedure TForm1.Button1Click(Sender: TObject);
begin
Brush.Style := bsClear;
BorderStyle := bsNone;
end;

Saludos

marcosl
26-11-2007, 12:41:56
Fide, eso solo funciona con los bmp si tengo un png tengo colores Alpha, que son los colores alpha, son todos aquellos que se funden con el color que tenemos de fondo, si pongo un color y lo pongo como transparente el borde de la imagen queda pixelada y horrible.

Ardilla, eso es lo q es estoy haciendo pero no soluciona el refresco del fondo del splash al cambiar el fondo del escritorio.


talves.. un timer... o capturar el mesaje de windows cuando se mueven las ventanas...

ArdiIIa
26-11-2007, 14:31:31
Ardilla, eso es lo q es estoy haciendo pero no soluciona el refresco del fondo del splash al cambiar el fondo del escritorio.
talves.. un timer... o capturar el mesaje de windows cuando se mueven las ventanas...

Ya me di cuenta después y realicé otras pruebas....


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls, ComCtrls;

type


TForm1 = class(TForm)
Image1: TImage;
ProgressBar1: TProgressBar;
procedure CreateParams(var Params: TCreateParams); override;
procedure InicioProcesos;
procedure Image1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;


var
Form1: TForm1;

implementation

{$R *.dfm}



procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle := Params.ExStyle OR WS_EX_TRANSPARENT;
Brush.Style := bsClear;
BorderStyle := bsNone;
Refresh;
end;


procedure TForm1.InicioProcesos;
Var I : integer;
begin
For I := 0 To 100 DO
Begin
Sleep(50);
ProgressBar1.Position := I;
End;
Close;

end;

procedure TForm1.Image1Click(Sender: TObject);
begin
InicioProcesos;
end;

end.



OJO: Código original (http://delphi.about.com/)

marcosl
26-11-2007, 14:53:03
Bien ardilla estamos un paso mas cerca o almenos hicimos uno al costado...

El tema es este, cuando se abre otra ventana mi splash queda detras... y si lo traigo adelante cuesta un poco que me haga caso, y por otro lado si lo tengo adelante y muevo cualquier ventana que tenga de fondo el splash se mueve con el...

ya se ya se se hace lo que se puede lo que no se compra hecho, igual no vi el cod solo lo implemente dentro de un rato veo como resolver estos dos temas restantes.

Gracias por tu colaboración...

marcosl
26-11-2007, 15:16:15
..que econtre fue que si mi aplicacion esta maximizada y hay otra aplicacion corriendo mi imagen de splash se borra al minimizar o maximizar otras ventanas, tambiem encontre el defecto o limitacion que al abrir otra ventana mi imagen se reproduce en todas las ventanas que abro (esto si antes movi la ventana anterior con mi splash que se muevo en conjunto a las otras ventanas)...preguntando se llega a Roma, o no.


Ô_o

jhonyboy777
06-06-2010, 23:09:23
instalale el suipack a delphi y trae una herramienta con la que puedes crear formas o formularios a partir de una imagen, solo funciona con bmp pero no hay problema ya que en la configuracion del componente te quita el color que tu gustes para que sea tranaparente espero que te sirva esta informacion y que no sea muy tarde

emesystem
07-09-2012, 17:29:19
[QUOTE=ArdiIIa;248408]Ya me di cuenta después y realicé otras pruebas....

que tal [ ARDILLA ] :D
MUCHISIMAS GRACIAS, A MI SI ME SIRVIÓ TU EJEMPLO
ESO ES LO QUE ANDABA BUSCANDO EXACTAMENTE! :D
TE ENVÍO UN GRAN SALUDO!
Y POR CIERTO TENDRÁN CÓDIGO,
PARA VISUALIZAR VIDEO ATRAVES DE UNA CAMARA WEB!?
SE LOS AGRADECERÍA MUCHISIMO