PDA

Ver la Versión Completa : Problema extraño con showmodal =S


Ken_Masters
15-11-2006, 01:06:59
Hola a todos, lo que sucede es que tengo un problema con la funcion showmodal. Yo tengo una forma que contiene un botón, el código de ese botón es:


procedure Forma1.BitBtn1Click(Sender: TObject);
begin
Forma2.showmodal;
end;


Se supone que forma1 no debe poder entrar ni debe intrometerse para nada hasta que cierre forma2, el problema es que cuando hago cualquier acción en la forma2 (como dar de alta o dar de baja algo) esta se cierra y aparece la forma1!!:confused:. He estado checándolo por todos lados pero la vdd nos e que pueda ser, aquí les voy a dejar el código de mi botón de altas de la forma2, a ver si algo tiene que ver :confused: (aunque este problema lo tengo con cualquier boton)


procedure TAltas.BitBtn1Click(Sender: TObject);
var
mensaje:integer;
begin
if (dbedit1.Text='') or (edit1.Text='') then
begin
mensaje:=Application.MessageBox('No deje el campo vacio. Gracias', 'Error de entrada');
end
else
begin
try
datamodule2.agrega_area.Parameters.ParamByName('nombre').Value:=dbedit1.Text;
datamodule2.agrega_area.Parameters.ParamByName('id_departamento').Value:=edit1.Text;
datamodule2.agrega_area.ExecSQL;
dbgrid1.DataSource.DataSet:=datamodule2.consulta_area;
datamodule2.consulta_area.Active:=false;
datamodule2.consulta_area.Active:=true;
dbgrid1.DataSource.DataSet.Last;
except on E:Exception do
begin
E.Message:='error';
application.MessageBox('No puede haber claves repetidas.Gracias','Error de entrada');
end;
end;
end;

end;


Gracias por la atención XD

Ken_Masters
15-11-2006, 01:12:24
mmm no se que pasó no se muestra el código se ve horrible jeje, lo voya poenr otra vez :

Código Delphi [-] (http://www.clubdelphi.com/foros/#)procedure Forma1.BitBtn1Click(Sender: TObject); begin Forma2.Showmodal; end;


Código del botón de altas de la forma2 :

Código Delphi [-] (http://www.clubdelphi.com/foros/#)procedure Froma2.BitBtn1Click(Sender: TObject); var mensaje:integer; begin if (dbedit1.Text='') or (edit1.Text='') then begin mensaje:=Application.MessageBox('No deje el campo vacio. Gracias', 'Error de entrada'); end else begin try datamodule2.agrega_area.Parameters.ParamByName('nombre').Value:=dbedit1.Text; datamodule2.agrega_area.Parameters.ParamByName('id_departamento').Value:=edit1.Text; datamodule2.agrega_area.ExecSQL; dbgrid1.DataSource.DataSet:=datamodule2.consulta_area; datamodule2.consulta_area.Active:=false; datamodule2.consulta_area.Active:=true; dbgrid1.DataSource.DataSet.Last; except on E:Exception do begin E.Message:='error'; application.MessageBox('No puede haber claves repetidas.Gracias','Error de entrada'); end; end; end; end;

seoane
15-11-2006, 01:29:27
Veo que estas utilizando un BitBtn, comprueba la propiedad ModalResult del BitBtn. Si no quieres que se cierre el form debe tener el valor mrNone,

Ken_Masters
15-11-2006, 01:57:11
Muchísimas gracias funciona perfeco, era muy sencillo sin embargo jamás se me hubiera ocurrido XD