Checklistbox

kiou9 Messages postés 8 Date d'inscription mercredi 3 mars 2004 Statut Membre Dernière intervention 6 avril 2007 - 18 août 2006 à 10:38
kiou9 Messages postés 8 Date d'inscription mercredi 3 mars 2004 Statut Membre Dernière intervention 6 avril 2007 - 18 août 2006 à 13:06
bonjour à tous
voilà mon soucis: je desire encoder dans mon checklistbox la liste des clients present dans un point de vente et y associer l'id de l'encaissement!
j'utilise donc  la ligne de commande suivante dans une boucle pour creer chaque item :
     valeur:=form1.rech_encaissement.FieldByName('id_encais').Value;              CheckListBox1.AddItem(form1.client.FieldByName('nom').Value+form1.client.FieldByName('prenom').value,tobject(string(valeur)));
(cette commande fonctionne dans une autre partie de l'applic mais le tobject est un integer)    

lorsque je demande par un showmessage le contenu de valeur celui-ci me donne "id_encais' correctement
    showmessage('valeur:'+valeur);
par contre lorsque je demande par la meme formule le contenu de tobject des enregistrement selecionné
    showmessage('object:'+string(CheckListBox1.Items.Objects[i]));
 là c'est une catastrophe
j'ai un peu tout et n'importe quoi qui arrive!
    généralement le premier item est correct les suivants me donne soit des signes cabalistiques soit un message enorme avec rien dedans voire meme une saturation memoire!
pour me faciliter les choses j'ai essayer de trouver un dbchecklistbox mais rien trouver à l'heure actuel... c'est pourquoi je fais appel à l'équipe
merci d'avance de toutes vos suggestions et de vorte aide

5 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
18 août 2006 à 10:52
Salut,

Essay comme ceci :

showmessage('object:' + CheckListBox1.Items[i]);
 

@+
Cirec
0
kiou9 Messages postés 8 Date d'inscription mercredi 3 mars 2004 Statut Membre Dernière intervention 6 avril 2007
18 août 2006 à 11:00
merci de ta reponse cirec mais
cela va me donner le nom et le prenom du client non? c'est la valeur de l'object qui m'interesse! mais je vais essayer quand meme
0
kiou9 Messages postés 8 Date d'inscription mercredi 3 mars 2004 Statut Membre Dernière intervention 6 avril 2007
18 août 2006 à 11:14
c'est bien ce que je pensais de cette manière on recupère la valeur de l'item et non la valeur de l'object
or c'est la valeur de l'object qui m'interresse car cet id doit servir plutard dans la procedure
merci quand meme de ta reponse
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
18 août 2006 à 12:05
Bon alors si j'ai bien compris tu désires mettre dans l'object une valeur de type Integer et bien sur pouvoir la récuperer


 


c'est possible mais il faut convertir la valeur en String (avec IntToStr(Valeur) ) et là ça fonctionne :


 



Var

  sstr : String = 'Essais pour DelphiFr';
  Valeur : String = '123456';



implementation




{$R *.DFM}




procedure TForm1.Button1Click(Sender: TObject);
begin
 CheckListBox1.Items.AddObject(sstr, TObject(LongInt(Valeur)));
end;



procedure TForm1.CheckListBox1Click(Sender: TObject);
Const Txt = '%s  %s';
begin
   ShowMessage(Format(Txt, [CheckListBox1.Items[CheckListBox1.ItemIndex], String(CheckListBox1.Items.Objects[CheckListBox1.ItemIndex])]));
end;















@+
Cirec
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kiou9 Messages postés 8 Date d'inscription mercredi 3 mars 2004 Statut Membre Dernière intervention 6 avril 2007
18 août 2006 à 13:06
helas...
en fait j'expliquais que autre part dans mon application j'utilisais cette propriété avec un integer et que cela marchais extremement bien.
ma question est jstement pour l'executer avec un string. car a cet endroit mon id_caisse est composé de plusieurs element qui en font un systeme unique mais qui est un string!
je viens de faire une petite application qui illuste ce qui ne va pas et qui reprend grossomodo l'idée
deux formulaires:
form1
unit Unit2;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,unit3, StdCtrls, CheckLst;
type
  TForm2 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    CheckListBox1: TCheckListBox;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
form3.show;
end;
procedure TForm2.Button2Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to form2.CheckListBox1.Count-1 do
  begin

   if form2.CheckListBox1.Checked[i] then
   showmessage('item:'+checklistbox1.items[i]+' object:'+string(CheckListBox1.Items.Objects[i]));
   end;
end;
end.
form2
unit Unit3;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm3 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;
var
  Form3: TForm3;
implementation
uses
unit2;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
form2.CheckListBox1.AddItem(edit1.Text,tobject(string(edit2.Text)));
end;
end.
donc le form2.button1 permet d'ouvrir un formulaire pour remplir de checklist
le form2.button2 permet de lire les infos du checklistbox item+object... selectionne quelques items et remarque les phenomènes
0
Rejoignez-nous