PDA

Ver la Versión Completa : Sobre DBCheckBox


silviodp
13-05-2004, 14:28:46
En mi aplicacion tengo un DBCheckBox, y no puedo logar que este me aparezca destildado, osea que cuando ejecuto mi aplicación me aparece tildado y en gris, es decir tengo que hacer tres click para que me aprarezca destildado y no es esto lo que quiero que haga, por su puesto.
Estoy trabajando con Paradox 7 y Delphi 5.
También les comento que éste componente tiene su propiedad Enabled:=True; y en ejecución asigno a su propiedad Checked:=False;, pero lo mismo lo hace.
Gracias.

Silvio.-

marcoszorrilla
13-05-2004, 14:35:20
Esto ocurre porque los registros que tienes grabados en la base de datos no contienen ningún valor para dicho campo.

Para las nuevas altas, lo arreglas así.

En el eventor:
OnNewRecord del campo en cuestion:

MiTablaMiCampo.Value:=False;


Un Saludo.

silviodp
13-05-2004, 16:38:27
En que evento tengo que poner el codigo para que cuando tildo el componente (DBCheckBox) me habilite por ejemplo un boton o el componete que sea.-
Gracias.

Silvio.-

marcoszorrilla
13-05-2004, 17:10:32
Tienes que programar el evento OnClick:

procedure TForm1.DBCheckBox1Click(Sender: TObject);
begin
button1.enabled:=Not(button1.Enabled);
end;



Un Saludo.

silviodp
13-05-2004, 23:16:03
Probé como vos me indicaste anda pero el tema esta cuando quiero modificar un registro donde el componente DBCheckBox está tildado, me da error mi aplicacion y el compilador me señala el evento OnClick de éste componente.Es decir aca:

procedure TForm10.BajaClick(Sender: TObject);
begin
If Form10.Baja.Checked=True Then
begin
Form10.Label10.Enabled:=True;
Form10.DBEdit9.Enabled:=True;
Form10.Label11.Enabled:=True;
Form10.DBComboBox1.Enabled:=True;
end
Else
If Form10.Baja.Checked=False Then
begin
Form10.Label10.Enabled:=False;
Form10.DBEdit9.Enabled:=False;
Form10.Label11.Enabled:=False;
Form10.DBComboBox1.Enabled:=False;
end;
end;


El boton Modificar ejecuta el siguiente procediemineto:

procedure TForm7.ModificarClick(Sender: TObject);
begin
Form10:=TForm10.Create(Self);
ModeloDatos.TblMueble.Edit;
end;


Gracias.

marcoszorrilla
13-05-2004, 23:26:57
Puedes decir exactamente que error te da?

Un Saludo.

sanxpue
14-05-2004, 02:13:13
Ups.. y mas Ups..

Para empezar


procedure TForm10.BajaClick(Sender: TObject);
begin
If Form10.Baja.Checked=True Then
begin
Form10.Label10.Enabled:=True;
Form10.DBEdit9.Enabled:=True;
Form10.Label11.Enabled:=True;
Form10.DBComboBox1.Enabled:=True;
end
Else
If Form10.Baja.Checked=False Then
begin
Form10.Label10.Enabled:=False;
Form10.DBEdit9.Enabled:=False;
Form10.Label11.Enabled:=False;
Form10.DBComboBox1.Enabled:=False;
end;
end;


Puede quedar

procedure TForm10.BajaClick(Sender: TObject);
begin
Label10.Enabled := Baja.Checked;
DBEdit9.Enabled := Baja.Checked;
Label11.Enabled := Baja.Checked;
DBComboBox1.Enabled := Baja.Checked;
end;

y me imagino que ese codigo esta dentro de la Form10 ¡¡verdad¡¡

Ahora veo que aqui creas

procedure TForm7.ModificarClick(Sender: TObject);
begin
Form10:=TForm10.Create(Self);
ModeloDatos.TblMueble.Edit;
end;


Y despues que pasa ???
Adivina Adivinador..
Y seguimos pidiendo los cursos :(

silviodp
17-05-2004, 14:38:46
El error que me da es el siguiente:

"Acces violation at address 004D31F7 in module 'CSTOCK.EXE'. Read for address FFFFFFFF."

Eso cuando quiero modificar un registro que fue tildado.
Gracias.

Silvio.-

marcoszorrilla
17-05-2004, 15:05:48
procedure TForm7.ModificarClick(Sender: TObject);
begin
Form10:=TForm10.Create(Self);
ModeloDatos.TblMueble.Edit;
end;


....

procedure TForm7.ModificarClick(Sender: TObject);
begin
ModeloDatos.TblMueble.Edit;
Form10:=TForm10.Create(Self);
end;

Tienes que poner en edición los datos antes de llamar para hacer la modificación, lo que estás haciendo como ves es lo contrario.

Un Saludo.