Exercice Delphi
Manipulation des Listes - opérations de base
Unit - Screenshot
- Download -
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
lb_1 : TListBox;
lbl1 : TLabel;
edt1 : TEdit;
btnAjouter : TButton;
btnInserer : TButton;
btnSupprimer : TButton;
btnTrier : TButton;
btnFill : TButton;
btnCharger : TButton;
btnSauvegarder : TButton;
btnClear : TButton;
btnRemplacer : TButton;
btnUp : TButton;
btnDown : TButton;
btnRecharger : TButton;
lblfiletxt : TLabel;
lblfile : TLabel;
dlgOpen : TOpenDialog;
dlgSave : TSaveDialog;
gr_info : TGroupBox;
lblIndextxt : TLabel;
lblIndex : TLabel;
lblCounttxt : TLabel;
lblCount : TLabel;
procedure btnAjouterClick(Sender: TObject);
procedure btnInsererClick(Sender: TObject);
procedure btnSupprimerClick(Sender: TObject);
procedure btnTrierClick(Sender: TObject);
procedure btnChargerClick(Sender: TObject);
procedure btnSauvegarderClick(Sender: TObject);
procedure btnRemplacerClick(Sender: TObject);
procedure lb_1Click(Sender: TObject);
procedure btnClearClick(Sender: TObject);
procedure btnUpClick(Sender: TObject);
procedure btnDownClick(Sender: TObject);
procedure btnRechargerClick(Sender: TObject);
procedure lb_1DblClick(Sender: TObject);
procedure btnFillClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure show_info;
// afficher le nombre d'élément et le numéro de lélément sélectionné
// -> il faut précéder les contrôles par "Form1."
begin
Form1.lblCount.Caption := IntToSTr(Form1.lb_1.Items.Count);
Form1.lblindex.Caption := IntToSTr(Form1.lb_1.ItemIndex);
end;
procedure TForm1.btnAjouterClick(Sender: TObject);
// ajouter à la fin l'élément affiché dans le champ d'édition
var S:string;
begin
S:=edt1.Text;
lb_1.Items.Add(S);
show_info;
end;
procedure TForm1.btnInsererClick(Sender: TObject);
// insérer à l'endroit sélectionné l'élément du champ d'édition
var S:string;
idx:integer;
begin
S:=edt1.Text;
idx:=lb_1.ItemIndex;
lb_1.Items.Insert(idx,S);
show_info;
end;
procedure TForm1.btnSupprimerClick(Sender: TObject);
// supprimer l'élément sélectionné
var idx : integer;
begin
idx := lb_1.ItemIndex;
if idx=-1 then exit;
lb_1.Items.Delete(lb_1.ItemIndex);
if lb_1.Items.count = idx then idx := idx-1;
lb_1.ItemIndex := idx;
show_info;
end;
procedure TForm1.btnTrierClick(Sender: TObject);
// trier la liste mais accepter par après des ajouts non triés
begin
lb_1.Sorted:=true;
lb_1.Sorted:=false;
show_info;
end;
procedure TForm1.lb_1Click(Sender: TObject);
// afficher le numéro de l'élément sélectionné quand on clique dessus
begin
show_info;
end;
procedure TForm1.lb_1DblClick(Sender: TObject);
// copier l'élément double-cliqué vers le champ d'édition
begin
show_info;
edt1.Text := lb_1.items[lb_1.itemindex];
end;
procedure TForm1.btnClearClick(Sender: TObject);
// vider la liste
begin
lb_1.Clear;
show_info;
end;
procedure TForm1.btnUpClick(Sender: TObject);
// déplacer l'élément sélectionné une place vers le haut
var S : string;
idx : integer;
begin
idx := lb_1.ItemIndex;
if idx<1 then exit;
S := lb_1.Items[idx];
lb_1.Items[idx] := lb_1.Items[idx-1];
lb_1.Items[idx-1] := S;
lb_1.ItemIndex := idx-1;
show_info;
end;
procedure TForm1.btnDownClick(Sender: TObject);
// déplacer l'élément sélectionné une place vers le bas
var S : string;
idx : integer;
begin
idx := lb_1.ItemIndex;
if (idx=-1) or (idx=lb_1.Items.Count-1) then exit;
S := lb_1.Items[idx];
lb_1.Items[idx] := lb_1.Items[idx+1];
lb_1.Items[idx+1] := S;
lb_1.ItemIndex := idx+1;
show_info;
end;
procedure TForm1.btnFillClick(Sender: TObject);
// remplir la liste avec 15 nombre aléatoires entre 0 et 99
var I : integer;
begin
randomize;
lb_1.clear;
for I:=1 to 15 do lb_1.Items.Add(IntToStr(random(100)));
show_info;
end;
// --------------------------------------------------------------------
// FILE OPERATIONS
// --------------------------------------------------------------------
procedure TForm1.btnChargerClick(Sender: TObject);
// Choisir un fichier et le charger dans la liste
// Le nom du fichier est inscrit dans un libellé
begin
if dlgopen.execute then
begin
lblfile.caption := dlgopen.FileName;
lb_1.Items.LoadFromFile(lblfile.caption);
show_info;
end;
end;
procedure TForm1.btnRechargerClick(Sender: TObject);
// Recharger un fichier dans la liste
// Le nom du fichier se trouve dans un libellé
begin
if lblfile.caption <> '' then
begin
lb_1.Items.LoadFromFile(lblfile.caption);
show_info;
end;
end;
procedure TForm1.btnSauvegarderClick(Sender: TObject);
// Choisir un fichier et sauvegarder la liste dans ce fichier
// Le nom du fichier est inscrit dans un libellé
begin
if dlgsave.execute then
begin
lblfile.caption := dlgsave.FileName;
lb_1.Items.SaveToFile(lblfile.caption)
end;
end;
procedure TForm1.btnRemplacerClick(Sender: TObject);
// Sauvegarder la liste dans un fichier
// Le nom du fichier se trouve dans un libellé
begin
if lblfile.caption <> '' then
lb_1.Items.SaveToFile(lblfile.caption);
end;
end.
c29exem1b.zip
..