Ir al contenido


Foto

Problema Eliminando un Item de un StringList desde un TCheckListBox


  • Por favor identifícate para responder
3 respuestas en este tema

#1 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 07 julio 2012 - 12:53

Pues eso, tengo un StringList Llamado Permisos y un CheckListBox llamado clPermisos, en su evento OnClickCheck tengo el siguiente code>



delphi
  1. procedure TFABMUsers.clPermisosClickCheck(Sender: TObject);
  2. begin
  3.   if clPermisos.Checked[clPermisos.ItemIndex] then begin
  4.     if AnsiContainsText(Permisos.Text,clPermisos.Items.Text) then begin
  5.       Permisos.Delete(Permisos.IndexOf(clPermisos.Items.Strings[clPermisos.ItemIndex]));
  6.       Permisos.Add(clPermisos.Items.Strings[clPermisos.ItemIndex]);
  7.     end else Permisos.Add(clPermisos.Items.Strings[clPermisos.ItemIndex]);
  8.   end else if AnsiContainsText(Permisos.Text,clPermisos.Items.Text) then
  9.     Permisos.Delete(Permisos.IndexOf(clPermisos.Items.Strings[clPermisos.ItemIndex]));
  10. end;



El objetivo de eso es que al acotejar uno de los Items del CheckListBox se agregue al StringList, hasta aquí todo bien, perooo..., al quitarle el cotejo no logro eliminarlo del StringList, ¿En qué puedo estar fallando?.

Saludos.
  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 07 julio 2012 - 12:57

Grrrr !!!...Me contesto yo mismo  8o|  8o|



delphi
  1. procedure TFABMUsers.clPermisosClickCheck(Sender: TObject);
  2. begin
  3.   if clPermisos.Checked[clPermisos.ItemIndex] then begin
  4.     if AnsiContainsText(Permisos.Text,clPermisos.Items.Strings[clPermisos.ItemIndex]) then begin
  5.       Permisos.Delete(Permisos.IndexOf(clPermisos.Items.Strings[clPermisos.ItemIndex]));
  6.       Permisos.Add(clPermisos.Items.Strings[clPermisos.ItemIndex]);
  7.     end else Permisos.Add(clPermisos.Items.Strings[clPermisos.ItemIndex]);
  8.   end else if AnsiContainsText(Permisos.Text,clPermisos.Items.Strings[clPermisos.ItemIndex]) then
  9.     Permisos.Delete(Permisos.IndexOf(clPermisos.Items.Strings[clPermisos.ItemIndex]));
  10. end;



Saludos.
  • 0

#3 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 08 julio 2012 - 01:11

Ah vaya pequeño detalle :)

Saludos
  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 08 julio 2012 - 02:29

Ah vaya pequeño detalle :)

Saludos


Así es mi estimado, al final de manera oficial ya lo estoy usando con Objetos:



delphi
  1. procedure TFABMUsers.clPermisosClickCheck(Sender: TObject);
  2. begin
  3.   if clPermisos.Checked[clPermisos.ItemIndex] then begin
  4.     if AnsiContainsText(Permisos.Text,TString(clPermisos.Items.Objects[clPermisos.ItemIndex]).Str) then begin
  5.       Permisos.Delete(Permisos.IndexOf(TString(clPermisos.Items.Objects[clPermisos.ItemIndex]).Str));
  6.       Permisos.Add(TString(clPermisos.Items.Objects[clPermisos.ItemIndex]).Str);
  7.     end else Permisos.Add(TString(clPermisos.Items.Objects[clPermisos.ItemIndex]).Str);
  8.   end else if AnsiContainsText(Permisos.Text,TString(clPermisos.Items.Objects[clPermisos.ItemIndex]).Str) then
  9.     Permisos.Delete(Permisos.IndexOf(TString(clPermisos.Items.Objects[clPermisos.ItemIndex]).Str));
  10. end;



La Clase TString es ésta (Coincidencialmente se llama igual al de Zarko Gajic en Delphi.about.com :D):



delphi
  1. TString = class(TObject)
  2.     private
  3.     FStr: String;
  4.   public
  5.     constructor Create(const AStr: String) ;
  6.     property Str: String read FStr write FStr;
  7.   end;
  8.  
  9. constructor TString.Create(const AStr: String) ;
  10. begin
  11.   inherited Create;
  12.   FStr := AStr;
  13. end;



Saludos.
  • 0




IP.Board spam blocked by CleanTalk.