Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-04-2013
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 12
wolfran_hack Va por buen camino
MensajeBox Temporal?

estoy buscando alguna forma de tener un MensajeBox temporal, esto quiere decir que se muestre por X segundos y luego se cierre sin intervención del usuario, esto es posible? estuve mirando el MensajeBox en si no posee esta propiedad. O me recomiendan hacerlo con un Formulario?
Responder Con Cita
  #2  
Antiguo 29-04-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola wolfran_hack.

Revisa en este hilo: enviar un mensaje y que se auto cierre

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 29-04-2013
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 12
wolfran_hack Va por buen camino
[Error] Missing operator or semicolon delphi

Estoy realizando un Log de errores contra un Memo1, por ejemplo:

Código Delphi [-]
Memo1.Lines.Add( formatdatetime('hh:nn:ss',now) + ' ; ' + 'Error: ' + Edit1.Text )

y me encuentro que al incluir esta linea por ejemplo en un IF:

Código Delphi [-]
  If Edit1.Text = '' then
     Memo1.Lines.Add( formatdatetime('hh:nn:ss',now) + ' ; ' + 'Error no se ingreso nada. ' )
     MessageBox(Handle,'Error no se ingreso nada.    ', 'BioStudio SMS', MB_ICONSTOP)
    else

me lanza este error:

[Error] Missing operator or semicolon delphi?
Responder Con Cita
  #4  
Antiguo 29-04-2013
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Recuerda que en Delphi debe utilizarse el símbolo de punta y coma (";") para separar sentencias. Por otra parte, los estatutos de control If, While y For necesitan llevar Begin y End cuando contienen varias sentencias.
Código Delphi [-]
  If Edit1.Text = '' Then
  Begin
     Memo1.Lines.Add (FormatDateTime ('hh:nn:ss', Time) + ' ; ' + 'Error: no se ingresó nada.');
     MessageBox (Handle, 'Error: no se ingresó nada.', 'BioStudio SMS', mb_IconStop);
  End
  Else
Nota: semicolon en inglés es punto y coma.

---------------

Por cierto, permitiéndome un paréntesis un poco fuera de tema, al ver la primera sentencia de ese If, pensé que usando GHF quedaría un poco más corta:
Código Delphi [-]
Memo1.Lines.Add (ghISOTime (Time) + ' ; ' + 'Error: no se ingresó nada.');
Pero ahora me surgió la inquietud de permitir que el parámetro de ghISOTime sea opcional (usando en ese caso la hora actual), con lo que se acortaría un poco más:
Código Delphi [-]
Memo1.Lines.Add (ghISOTime + ' ; ' + 'Error: no se ingresó nada.');
Creo que será algo para agregar al repertorio.

Saludos.

Última edición por Al González fecha: 29-04-2013 a las 03:19:27.
Responder Con Cita
  #5  
Antiguo 29-04-2013
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 12
wolfran_hack Va por buen camino
Me Lanza:

Código:
[Error] SmsSender.pas(127): Incompatible types: 'HWND' and 'String'
[Error] SmsSender.pas(127): Incompatible types: 'Integer' and 'PAnsiChar'
[Error] SmsSender.pas(127): Incompatible types: 'Integer' and 'PAnsiChar'
[Error] SmsSender.pas(128): Missing operator or semicolon
Código Delphi [-]
127 MessageBoxTimeout(Application.Handle,'La aplicación se cerrará en unos segundos...','',MB_SYSTEMMODAL or MB_TOPMOST or MB_ICONINFORMATION, 0, 4000); // 4000 = 4 seg
128 Application.Terminate;
Responder Con Cita
  #6  
Antiguo 29-04-2013
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 12
wolfran_hack Va por buen camino
sep me falto el forms! igual no me muestra el mensaje, nunca aparece.

Última edición por wolfran_hack fecha: 29-04-2013 a las 04:13:25.
Responder Con Cita
  #7  
Antiguo 29-04-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, todo lo relacionado con este tema síguelo en este hilo, he movido todos los mensajes que has escrito en 3 hilos distintos esparcidos, pues realmente todo era lo mismo.
Gracias.
Responder Con Cita
  #8  
Antiguo 29-04-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por wolfran_hack Ver Mensaje
Me Lanza:

Código:
[Error] SmsSender.pas(127): Incompatible types: 'HWND' and 'String'
[Error] SmsSender.pas(127): Incompatible types: 'Integer' and 'PAnsiChar'
[Error] SmsSender.pas(127): Incompatible types: 'Integer' and 'PAnsiChar'
[Error] SmsSender.pas(128): Missing operator or semicolon
Código Delphi [-]
127 MessageBoxTimeout(Application.Handle,'La aplicación se cerrará en unos segundos...','',MB_SYSTEMMODAL or MB_TOPMOST or MB_ICONINFORMATION, 0, 4000); // 4000 = 4 seg
128 Application.Terminate;
Hola wolfran_hack.

Si copiaste y pegaste exáctamente el código que te indiqué en el mensaje #2 no tendrías por que recibir error alguno.
De todos modos para no seguir dandole vueltas al asunto, el código completo del ejemplo:
Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation  {$R *.dfm}

function MessageBoxTimeOut(hWnd: HWND; lpText: PChar; lpCaption: PChar; uType: UINT;
      wLanguageId: WORD; dwMilliseconds: DWORD): Integer; stdcall; 
      external user32 name 'MessageBoxTimeoutA';

procedure TForm1.Button1Click(Sender: TObject);
begin
  MessageBoxTimeout(Application.Handle,
                    'La aplicación se cerrará en unos segundos...','',
                    MB_SYSTEMMODAL + MB_TOPMOST + MB_ICONINFORMATION,  // (+ = or)
                    0,
                    4000); // 4000 = 4 seg
   Application.Terminate;
end;

end.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 01-05-2013
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 12
wolfran_hack Va por buen camino
[Error] No funciona.

como no funcionaba en mi proyecto (nunca se visualizaba el mensaje) cree uno en blanco y copie y pegue tal cual tu código y puse un botón. Al querer compilarlo me lanza el antivirus:



se que no es un virus, desactivo el antivirus por unos minutos, no se visualiza nunca el mensaje al presionar el botón.

le cambie esta parte:

Código Delphi [-]
external user32 name 'MessageBox';

y me lanza este error:

Cita:
No se encuentra el punto de entrada del procedimiento MessageBox en la biblioteca de vínculos dinámicos user32.dll.
Responder Con Cita
  #10  
Antiguo 02-05-2013
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 12
wolfran_hack Va por buen camino
MessageBoxTimeOut

Encontré este otro:

Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    //Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

const
  MB_TIMEDOUT = 32000;

implementation  {$R *.dfm}

function MessageBoxTimeOut(hWnd: HWND; lpText: PChar; lpCaption: PChar; uType: UINT; wLanguageId: WORD; dwMilliseconds: DWORD): Integer; stdcall; external user32 name 'MessageBoxTimeoutA';

procedure TForm1.Button1Click(Sender: TObject);
var
  iRet: Integer;
  iFlags: Integer;
begin
   iFlags := MB_OK or MB_SETFOREGROUND or MB_SYSTEMMODAL or MB_ICONINFORMATION;
   MessageBoxTimeout(Application.Handle, 'El Mensaje se Mostrar por X tiempo..', 'Titulo del Mensaje', iFlags, 0, 2000) ; //2000 son 2 segundos.
end;

end.

y funciona, pero me lanza:

Responder Con Cita
  #11  
Antiguo 02-05-2013
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 12
wolfran_hack Va por buen camino
Tengo una solución parcial, descargue una User32.dll que encontré por la red y la coloque en la carpeta del proyecto y dejo de lanzarme el "cartelito" de virus; debe de ser porque Avast! verifica que aplicaciones pueden o no usar al User32.dll que ya viene con el Windows.

User32.dll (44 KB): Solo la DLL.
http://mega.co.nz/#!CMJW0DxL!MXvKoVP...iOgFHh3CUwyH0Y

Mensaje Temporal.rar (176 KB): Proyecto con la DLL.
http://mega.co.nz/#!KNBhGDJK!A9xQARP...Ka7Jf6zpTqiZWM
Responder Con Cita
  #12  
Antiguo 02-05-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Tenes que configurar las opciones del escudo de protección de archivos agregando a la lista de exclusiones a Delphi32.exe o a tu aplicación.

Avast: Seguridad -> Escudo del sistema de archivos -> Exclusiones.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #13  
Antiguo 02-05-2013
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 16
TOPX Va camino a la fama
Y yo creería que tiene que ver con usar el infame "Delphi 7 Second Edition".
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
error de missing separator con el siguiente codigo feliz-58 C++ Builder 7 28-03-2013 14:06:05
Error Master Missing Record Edgtho Varios 6 16-12-2006 02:06:56
Error in module seleccionar: 'End'. missing at end of module. richi Varios 16 09-08-2006 11:44:56
Error Missing right quote gusanita SQL 9 05-08-2006 01:45:59
ERROR: Missing connection or ConnectionString!!!!!!!! DarkByte Conexión con bases de datos 3 09-09-2004 15:28:42


La franja horaria es GMT +2. Ahora son las 11:52:27.


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
Copyright 1996-2007 Club Delphi