Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   ¿como mandar mensajes desde Datamodule? (https://www.clubdelphi.com/foros/showthread.php?t=6029)

nefy 15-12-2003 20:11:10

¿como mandar mensajes desde Datamodule?
 
Hola tengo un problema; quiero enviar mensajes antes de que guarde la tabla pero tengo mis tablas en un DataModule y es la primera vez que uso uno de estos. Podría alguien decirme por favor como mandar los mensajes antes de que guarde la tabla.
Yo lo intente desde eventos en las tablas que estan en el datamodule pero no los acepta.

Gracias por la ayuda que me puedan brindar.

Descendents 15-12-2003 20:15:27

Perdona pero no te entiendo.

Mensajes, te refieres a showmessages? o application.messagebox? o que ?

si es esto, mira note falte el uses dialogs.

Un saludo

nefy 15-12-2003 20:17:36

el uses dialogs usar donde? y me refiero a un showmsg o puede
ser un applic.msgbox no importa

Descendents 15-12-2003 20:19:46

arriba del unit del data module, estan los uses.
alli le añades dialogs.

uses
SysUtils, Classes;

uses
SysUtils, Classes,dialogs;

a ver que tal
Un saludo

nefy 15-12-2003 20:23:08

si esta declarada en el datamodule
pero no reconoce el showmsg
lo que pasa es que yo quiero que aparezca el msg en otra form aunque el msg lo declare en un evento del datamodule. Como le hare?

Descendents 15-12-2003 20:24:52

desde el form , tienes en el uses el datamodule?

No te compila? o te da error donde? y cuando?

Descendents 15-12-2003 20:27:40

Lo declaraste en un evento del datamodule o en un evento de la tabla del datamodule?

nefy 15-12-2003 20:28:37

Cita:

Descendents comentó:
desde el form , tienes en el uses el datamodule?

No te compila? o te da error donde? y cuando?

O sea, mando el mensaje asi:
procedure TDM.TApzAfterPost(DataSet: TDataSet);
begin
if Principal.ComboBox16.ItemIndex=-1 then
begin
showmessage('Favor de editar una colonia valida');
Principal.combobox16.ItemIndex:=0;
Principal.dbedit12.Text:=TColon_Apa.Fields[2].AsString;
Principal.ActiveControl:=Principal.Combobox16;
end;
end;

en el datamodule pero no lo reconoce ni enviara en la Form Principal

nefy 15-12-2003 20:30:55

es en el evento antes de guardar (AfterPost) de una tabla

Descendents 15-12-2003 20:34:43

has mirado si entra el programa dentro del codigo?

ponte encima de esta linea

if Principal.ComboBox16.ItemIndex=-1 then

y dale a F5. Entonces corre el programa y cuando se pare , dale a F8 y iras avanzando y mira a ver si entra.

Sino entra, es que if Principal.ComboBox16.ItemIndex=-1 then
le hace no entrar.Esta condición no es correcta supongo.

Y si entra , mira cuando pase por showmessage a ver que hace.

Por cierto si quieres que para antes de grabar es el beforepost no afterpost.

Un saludo

nefy 15-12-2003 20:37:30

Tienes razon en lo del evento pero el error es el siguiente:

[Error] Unit4.pas(1888): Undeclared identifier: 'showmessage'
[Fatal Error] Unit3.pas(228): Could not compile used unit 'Unit4.pas'

Y esto no permite que se ejecute el programa. Obviamente la unit4 es donde estan los eventos

Descendents 15-12-2003 20:41:43

O sea no te compila.
en el unit4 seguro que tienes dialogs en el uses?

miralo bien.
Sino añadelo.

Descendents 15-12-2003 20:44:08

substituye el showmessage por
MessageDlg('Favor de editar una colonia valida', mtWarning, [mbOK], 0);

nefy 15-12-2003 20:51:53

ya estuvo gracias faltaba lo de uses

Lepe 16-12-2003 11:30:24

para futuros casos haz lo siguiente:

vete a un form, escribe showmessage o la funcion que quieras ejecutar en el datamodule, ponte encima con el raton y dale a F1

te dirá que está declarado en la Unit Qdialogs, o la que toque en su momento ;), así que te vas al datamodule y allí añades el uses.

Si no te sale la ayuda,

Me pasó que dentro del datamodule, no podia usar el objeto Application.Messagebox y era algo tan simple como eso, buscar en que unidad está declarado el objeto application y añadirlo al uses. Algo tonto.... pero si es la primera vez que usas un datamodule te comes el coco pensando que dentro de él no puedes usar la función que buscas.

Si dentro del form, tampoco te sale en que unidad está definido lo que buscas, pues no queda mas remedio que arrancar la ayuda manualmente y ponerlo allí, incluso puede que tengas que irte al menú MS SDK help files del menu inicio de windows y arrancar el archivo Win32 Programer's Reference (si se trata de una API de Windows.)

La verdad, Delphi tiene una ayuda EXCELENTE!!

saludos


La franja horaria es GMT +2. Ahora son las 14:29:42.

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