PDA

Ver la Versión Completa : Se puede hacer rotar los showmessages entre los botones ???


llSnakell
25-01-2011, 23:00:35
Hola

Lo que pasa es que estoy haciendo un Programa con mensajes y botones.
Lo que quiero realizar es que los mensajes que aparareceran al presionar los botones , vayan cambiando de botones !! Para que al apretar un boton no aparesca el mismo mensaje .

Se podra ??

Gracias

Saludos !

ecfisa
25-01-2011, 23:03:31
Hola.

Sobre la pregunta del título, la respuesta es no. ShowMessage es un procedimiento cuya ventana no tiene esa capacidad.

En cuanto a el mensaje, no entiendo muy bién esta parte al presionar los botones , vayan cambiando de botones podrías explicarlo un poco más o con algún ejemplo ?

Un saludo.

llSnakell
25-01-2011, 23:12:49
Hola

A lo que me refiero es:

Ejemplo

Tenemos 2 botones diferentes, con diferentes showmessages cada uno.
lo que quiero es que el Showmessage del 1° boton cambie al 2° boton, el Showmessage del 2° boton cambie al 1° , eso es !!!

pero lo que intento hacer es con 20 botones xD :P

Gracias

Saludos. ;)

ecfisa
25-01-2011, 23:20:06
Hola de nuevo.

Fijate si este [ Truco (http://www.clubdelphi.com/trucos/index.php?id=577) ] que hizo Lord Delfos te sirve o te dá una idea.

Otra opción es que hagas tu propio cuadro de diálogo, al fin y al cabo es sólo otro form...

Un saludo.

Neftali [Germán.Estévez]
26-01-2011, 13:11:34
Bueno, se pueden hacer cosas básicas; Cambiar algunas propiedades y ñadir algunos controles nuevos, pero si tienes que cambiar demasiado, tal vez es mejor que te crees un formulario personalizado.

Por ejemplo, con esto muestras un dialogo "estandard":

http://img153.imageshack.us/img153/4297/imagen569.png


procedure TForm1.Button4Click(Sender: TObject);
var
AMsgDialog: TForm;
res:TModalresult;
begin
AMsgDialog := CreateMessageDialog('Mensaje de prueba...', mtWarning, [mbYes, mbNo]) ;
res := AMsgDialog.ShowModal;
end;


Con este código puedes apreciar algunos cambios, incluso puedes añadir algun componente nuevo (en este caso un checkbox):


procedure TForm1.Button2Click(Sender: TObject);
var
AMsgDialog: TForm;
res:TmodalResult;
lbl:Tlabel;
btn:TButton;
img:TImage;
chk:TCheckBox;
begin
AMsgDialog := CreateMessageDialog('Mensaje de prueba...', mtWarning, [mbYes, mbNo]) ;
AMsgDialog.Caption := 'Cambiando título...' ;

// Cambiar el ancho
AMsgDialog.Width := AMsgDialog.Width * 2;

// Modificar el Label
lbl := TLabel(AMsgDialog.FindComponent('Message'));
lbl.Font.Style := lbl.Font.Style + [fsItalic];
lbl.Font.Color := clRed;

// Modificar el YES
btn := TButton(AMsgDialog.FindComponent('YES'));
btn.Font.Style := btn.Font.Style + [fsBold];

// Modificar la imagen
img := TImage(AMsgDialog.FindComponent('Image'));
img.Stretch := true;
img.Picture.LoadFromFile('r:\neftali.bmp');

// Añadir un CheckBox
chk := TCheckBox.Create(AMsgDialog);
chk.Parent := AMsgDialog;
chk.Caption := 'No volver a &recordarmelo.';
chk.Width := 200;
AMsgDialog.Height := AMsgDialog.Height + 30;
chk.Left := 15;
chk.Top := AMsgDialog.Height - 20 - 30;


res := AMsgDialog.ShowModal;

AMsgDialog.Free;

end;


http://img153.imageshack.us/img153/3907/imagen568.png