Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   forma siempre visible. (https://www.clubdelphi.com/foros/showthread.php?t=22335)

JXJ 13-06-2005 07:04:18

forma siempre visible.
 
'¿como puedo lograr que mi forma este siempre visible.?

he estado probando con lo siguiente compila una parte y
no da el resultaod deseado la forma se sigue ocultando , cuando
cambio a otra ventana o programa.,

esto de abajo lo encontre en latium software de aqui
http://www.latiumsoftware.com/es/pascal/0025.php
Para que un formulario se mantenga siempre visible por encima de otros
formularios, tanto pertenecientes a la misma aplicación como a otras
aplicaciones, podemos establecer el valor de la propiedad FormStyle en
fsStayOnTop. Si luego deseáramos volver el formulario a la normalidad,
podemos establecer FormStyle en fsNormal. Sin embargo, modificar el
calor de la propiedad FormStyle en tiempo de ejecución no se recomienda.
En vez de ello, podemos usar la función SetWindowPos de la API de
Windows pasándole HWND_TOPMOST como segundo parámetro para activar el
efecto:
Código Delphi [-]
  procedure TForm1.Button1Click(Sender: TObject);
  begin
    SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0,
      SWP_NOMOVE + SWP_NOSIZE);
  end;
Para desactivar este efecto, volvemos a llamar a SetWindowPos, esta vez
pasándole WND_NOTOPMOST como segundo parámetro:
{este codigo me da problemas. con lo de WND_NOTOPMOST}
  procedure TForm1.Button1Click(Sender: TObject);
  begin
    SetWindowPos(Handle, WND_NOTOPMOST, 0, 0, 0, 0,
      SWP_NOMOVE + SWP_NOSIZE);
  end;
----------------
La ventana que quiero este siempre visible es una creada modalmente.,

vale gracias por su atención

sanxpue 27-08-2006 09:54:59

Saludos
 
Bueno ya se que despues de mas de un año, pero nunca es tarde.. el codigo que bajaste esta bien nada mas que le la falta la H en el segundo procedimiento

Código Delphi [-]
  procedure TForm1.Button1Click(Sender: TObject);
  begin
    SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0,
      SWP_NOMOVE + SWP_NOSIZE);
  end;

  Para desactivar este efecto, volvemos a llamar a SetWindowPos, esta vez
  pasándole HWND_NOTOPMOST como segundo parámetro:
  {este codigo me da problemas. con lo de WND_NOTOPMOST}

  procedure TForm1.Button1Click(Sender: TObject);
  begin
    SetWindowPos(Handle, HWND_NOTOPMOST, 0, 0, 0, 0,
      SWP_NOMOVE + SWP_NOSIZE);
  end;

Y Saludos a todos.. no me he muerto lo que pasa es que me congelaron como a paleta jo (En el mi extrabajo)

Saludos

JXJ 28-08-2006 05:43:42

Gracias Sanxpue

ese codigo, siempre es util.

BlueSteel 26-01-2011 23:27:58

Excelente... justo estaba buscando esto

Código Delphi [-]
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0,SWP_NOMOVE + SWP_NOSIZE);
Salu2:p:cool:

Ñuño Martínez 27-01-2011 11:12:48

Ya sé que esto es viejo, pero desde siempre lo mejor para que la forma de cada uno sea siempre visible es ir desnudo, o como mucho con un tanga...:rolleyes:

BlueSteel 27-01-2011 17:57:20

Estimados,,,, tengo un pequeño problema con la ejecución del codigo

Código Delphi [-]
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0,SWP_NOMOVE + SWP_NOSIZE);

Bueno, este se ejecuta bien, pero segun cierta condición, me arroja un mensaje con el codigo

Código Delphi [-]
ShowMessage('Credencial ya ha ingresado.....');

el problema es que no puedo ver el mensaje y tampoco cerrarlo, y se me queda estancado el sistema...:confused::confused::(

como puedo solucionar esto...

Salu2:p:eek:

Ñuño Martínez 28-01-2011 09:49:56

Creo que aquí lo importante es saber cuál es esa "cierta condición". Pon un poco más de código (el método completo, por ejemplo).

BlueSteel 28-01-2011 17:08:36

Cita:

Empezado por Ñuño Martínez (Mensaje 389130)
Creo que aquí lo importante es saber cuál es esa "cierta condición". Pon un poco más de código (el método completo, por ejemplo).


a lo que voy es que el formulario queda siempre visible... en el formulario estoy ingresando a través de un lector de codigos de barra en un Edit un codigo (credenciales que las personas compran para ingresar al Estadio)... ese codigo se consulta en la base y las condiciones las arroja...

- Si codigo es correcto, pregunta si existe en la base... si no existe lanza un mensaje...

el mensaje lo lanzo con el
Código Delphi [-]
ShowMessage('Credencial no existe.....');

- Si el codigo existe, pregunto si ya ha ingresado por la puerta...

si lo ha realizado lanzo otro mensaje

Código Delphi [-]
ShowMessage('Credencial ya ha ingresado.....');

- y por ultimo si no ha ingresado, tambien tengo que preguntar si la credencial esta bloqueada lo que realizo con el sgte mensaje
Código Delphi [-]
ShowMessage('Credencial esta BLOQUEADA.....');
si ninguna de las condiciones anteriores se cumple, recien guardo el registro en la base.

lo que pasa es que los mensajes que lanza, no los puedo visualizar por que el formulario esta siempre visible, y por ende no puedo seguir trabajando


espero haberme explicado bien...

Salu2:p:o

Ñuño Martínez 04-02-2011 12:51:39

¿Y por qué no intentas forzar el foco para que la ventana sea visible antes de mostrar el mensaje?

Si ya lo has intentado, sin éxito, pues no sé qué más se puede hacer...


La franja horaria es GMT +2. Ahora son las 03:27:25.

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