Problemas con el TCheckbox
Publicado por Misael (51 intervenciones) el 10/02/2003 05:30:18
Estoy realizando una practica que busca un archivo y al encontrarlo captura los atributos con el filegetattr, y durante ese proceso comparo el valor que es capturado , y con este determino cuales son los checkbox que activo, que identificara los atributos que poseen ese archivo. Posteriormente he creado en el Evento onclick de cada checkbox un calculo cada vez que presiono algunos de ellos .
el problemas radica que cuando localizo el archivo , y capturo los atributos para comparar el evento onclic de esos checkbox se activa, y cuando voy hacer los calculos en la forma, se me altera , pues ya previamente han realizado la operacion.
aqui anexo un codigo de ejemplo para que se entiende mejor el problema:
Var
TForm:Form;
Atributo:Integer;
procedure btnLocalizar(Sender:TObject);
Begin
if FileGetAttr('c:\msdos.sys')=faReadOnly Then
chkReadOnly.checked:=True
Else
if FileGetAttr('c:\msdos.sys')=faHidden Then
chkHidden.checked:=True;
Atributo:=FileGetAttr('c:\msdos.sys');
end;
procedure chkHiddenClick(Sender:TObject);
Begin
if chkHidden.checked Then
Atributo:=Attributo + faHidden
Else
Atributo:=Atributo - faHidden;
end;
procedure btnAceptar(Sender:TObject),
Begin
FilesetAttr('c:\msdos.sys',Atributo);
end;
Por favor le agradecer su respuesta, ya que intentado varias formas para intentar resolver el problema que tengo con el codigo que tengo dentro de los eventos onclick de chekbox y no he podido , ya que no he entiendo por que se activa cuando los activos en el momento de comparar.
el problemas radica que cuando localizo el archivo , y capturo los atributos para comparar el evento onclic de esos checkbox se activa, y cuando voy hacer los calculos en la forma, se me altera , pues ya previamente han realizado la operacion.
aqui anexo un codigo de ejemplo para que se entiende mejor el problema:
Var
TForm:Form;
Atributo:Integer;
procedure btnLocalizar(Sender:TObject);
Begin
if FileGetAttr('c:\msdos.sys')=faReadOnly Then
chkReadOnly.checked:=True
Else
if FileGetAttr('c:\msdos.sys')=faHidden Then
chkHidden.checked:=True;
Atributo:=FileGetAttr('c:\msdos.sys');
end;
procedure chkHiddenClick(Sender:TObject);
Begin
if chkHidden.checked Then
Atributo:=Attributo + faHidden
Else
Atributo:=Atributo - faHidden;
end;
procedure btnAceptar(Sender:TObject),
Begin
FilesetAttr('c:\msdos.sys',Atributo);
end;
Por favor le agradecer su respuesta, ya que intentado varias formas para intentar resolver el problema que tengo con el codigo que tengo dentro de los eventos onclick de chekbox y no he podido , ya que no he entiendo por que se activa cuando los activos en el momento de comparar.
Valora esta pregunta


0