Problème de sélection sur ListBox

Résolu
Sceyllia Messages postés 8 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 21 mars 2013 - 14 mars 2011 à 10:50
cs_mourad555 Messages postés 12 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 22 février 2020 - 3 avril 2011 à 14:32
Bonjour à tous,

Je me décide de solliciter un coup de main, car je n'arrive pas a trouver une solution a mon problème.

Voilà, j'ai une ListBox dans laquelle j'aimerais sélectionner l'ouverture/fermeture de mes lecteurs CD/DVD.

Le soucis est que seul mon premier lecteur "réagit" a cette "commande" alors que j'aimerais pouvoir l'effectuer

sur le lecteur de mon choix, je ne sais pas si ma question est claire...

Voici mon code :

procedure TForm1.FormCreate(Sender: TObject);
var
Drive: char;
begin
for Drive := 'A' to 'Z' do
begin
if (GetDriveType(PChar(Drive + ':\')) = DRIVE_CDROM) then ListBox1.Items.Add(Drive + ':');
end;
ListBox1.ItemIndex := 1;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
CloseDoor(ListBox1.Items.Text);
end;

procedure TForm1.Quitter1Click(Sender: TObject);
begin
Close;
end;

end.

je remercie à l'avance celui ou celle qui voudra bien m'aider.

Merci.

11 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
14 mars 2011 à 14:28
Salut,

peu importe si le code se trouve dans dans l'évènement d'un TButton ou d'un OnChange ...
il faut modifier le code comme suit:

[b]begin
  with /bListBox1 [b]do
    if /bItemIndex > -1 [b]then
      /bCloseDoor(Items[ItemIndex]);
end;

ceci devrait résoudre ton problème.

en effet ListBox1.Items.Text te renvoi le contenu de la liste ... pas l'élément sélectionné.
Pour t'en convaincre il te suffit de faire:
ShowMessage(ListBox1.Items.Text);


[hr]@+Cirec
[hr]
3
Rejoignez-nous