Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-01-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Buscar un flag concreto en una combinación de ellos (MessageBox)

Buenas a todos.
Seguro que es una tontería, pero la verdad es que no lo he hecho nunca y no es algo que domine, así que a ver si los que sabéis me podéis dar la pista.

Tengo una llamada, por ejemplo, como esta (la parte importante es la del final):

Código Delphi [-]
  // parámetros similares a MessageBox
  MensajeUsuario(PChar(Mensaje1), PChar(Titulo1), MB_ICONSTOP or MB_OK or MB_APPLMODAL);
  MensajeUsuario(PChar(Mensaje1), PChar(Titulo1), MB_ICONERROR or MB_OK or MB_APPLMODAL);
  ...

El control llega al procedimiento MensajeUsuario, y me gustaría saber el tipo de icono que se ha seleccionado.
Es decir, cual de los siguientes valores se ha pasado en el tercer parámetro (siempre irá uno de los siguientes):
  • MB_ICONEXCLAMATION
  • MB_ICONWARNING
  • MB_ICONINFORMATION
  • MB_ICONASTERISK
  • MB_ICONQUESTION
  • MB_ICONSTOP
  • MB_ICONERROR
  • MB_ICONHAND

La llamada tiene la siguiente cabecera:

Código Delphi [-]
  procedure MensajeUsuario(AMsg, ATitle:PChar; AFlags:integer);

Supongo que debe haber algo como:

Código Delphi [-]
  if (MB_ICONEXCLAMATION in AFlags) then
    ...

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #2  
Antiguo 30-01-2015
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
Hola Germán.

El operador In sólo trabaja con conjuntos.

AFlags es de tipo numero entero, por lo cual hay que recurrir a una típica verificación de bits:
Código Delphi [-]
Icono := AFlags And mb_IconMask;  // Obtenemos la bandera de icono contenida en AFlags
Nota que la API de Windows incluye la constante MB_ICONMASK (máscara de bits de posibles iconos), fundamentalmente con ese propósito.

Un saludo.
Responder Con Cita
  #3  
Antiguo 30-01-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Hola Al.
Gracias por contestar. Ya sabía yo que para tí esto sería fácil...

Cita:
Empezado por Al González Ver Mensaje
El operador In sólo trabaja con conjuntos.
Si, si,... Era para poner un ejemplo de cómo podría ser. Se que no se puede utilizar en ese contexto.

Cita:
Empezado por Al González Ver Mensaje
AFlags es de tipo numero entero, por lo cual hay que recurrir a una típica verificación de bits...
Lo pruebo...

Gracias.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 30-01-2015
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Cita:
Empezado por Neftali Ver Mensaje
Hola Al.
Ya sabía yo que para tí esto sería fácil...
Yo tambien lo sabia
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Responder Con Cita
  #5  
Antiguo 30-01-2015
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
Aprovechando el tema. Tal vez quieras echarle un vistazo a algunas funciones de GH Freebrary que van por esta línea.

Por ejemplo:
Código Delphi [-]
  If ghShowMsg ('Confirmar', '¿Desea guardar el archivo?', mb_YesNo) = IDYes Then
presentará una ventana con el icono MB_ICONQUESTION, mientras que
Código Delphi [-]
  If ghShowMsg ('Confirmar', '¡No ha salvado los cambios! ¿Guardar?', mb_YesNo) = IDYes Then
presentará una ventana con el icono MB_ICONEXCLAMATION.

ghShowMsg verifica si el mensaje de texto mismo contiene el signo de exclamación o el signo de interrogación para determinar el icono a usar.

La sugerencia es por si te sirve este material para enriquecer las ideas de lo que estás haciendo.

Un cordial saludo.

Al.
Responder Con Cita
  #6  
Antiguo 30-01-2015
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
Cita:
Empezado por Caminante Ver Mensaje
Yo tambien lo sabia
Varios halagos en pocos días; mi cumpleaños fue hace tiempo. Sospecho que ya apareció el verdadero asesino de Kennedy.
Responder Con Cita
  #7  
Antiguo 31-01-2015
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 Germán
Cita:
Empezado por Neftali Ver Mensaje
...
El control llega al procedimiento MensajeUsuario, y me gustaría saber el tipo de icono que se ha seleccionado.
Es decir, cual de los siguientes valores se ha pasado en el tercer parámetro (siempre irá uno de los siguientes):
  • MB_ICONEXCLAMATION
  • MB_ICONWARNING
  • MB_ICONINFORMATION
  • MB_ICONASTERISK
  • MB_ICONQUESTION
  • MB_ICONSTOP
  • MB_ICONERROR
  • MB_ICONHAND
...
Recién leo la consulta, y veo que vas a tener un problema al tratar de discriminar algunos de esos valores. El único unívocamente identificable es MB_ICONQUESTION.
Código:
MB_ICONERROR        0x00000010L
MB_ICONSTOP         0x00000010L
MB_ICONHAND         0x00000010L
-------------------------------
MB_ICONQUESTION     0x00000020L
-------------------------------
MB_ICONEXCLAMATION  0x00000030L
MB_ICONWARNING      0x00000030L
-------------------------------
MB_ICONINFORMATION  0x00000040L
MB_ICONASTERISK     0x00000040L
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Ellas y Ellos jcarteagaf Humor 1 06-08-2011 03:43:05
TERROR ALERT!!: China se cambia a Windows y bota Red Flag Linux. Epachsoft Noticias 10 30-07-2007 18:12:35
Me encanta lo concreto del club delphi Arcioneo La Taberna 1 20-12-2006 02:22:32
como saber si una vandera (flag) esta activa o no en una variable DWord orfeo API de Windows 4 03-03-2005 22:22:00
Imprimir con word en impresora en concreto Firibiri Servers 0 07-10-2003 11:09:09


La franja horaria es GMT +2. Ahora son las 21:19:54.


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