1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
| unit Test;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
FONCTION_DELETE = 46;
type
TFrmTest = class(TForm)
ComboBox: TComboBox;
Label1: TLabel;
Label2: TLabel;
procedure FormShow(Sender: TObject);
procedure ComboBoxKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure EnvisagerSuppressionDeLaListe ();
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
FrmTest: TFrmTest;
implementation
{$R *.dfm}
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
procedure TFrmTest.FormShow(Sender: TObject);
begin
ComboBox.Clear;
ComboBox.Items.Insert(ComboBox.Items.Count, 'a');
ComboBox.Items.Insert(ComboBox.Items.Count, 'c');
ComboBox.Items.Insert(ComboBox.Items.Count, 'e');
ComboBox.Items.Insert(ComboBox.Items.Count, 'g');
ComboBox.Items.Insert(ComboBox.Items.Count, 'i');
ComboBox.Items.Insert(ComboBox.Items.Count, 'k');
ComboBox.Items.Insert(ComboBox.Items.Count, 'm');
ComboBox.Text := '';
end;
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
procedure TFrmTest.ComboBoxKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if ((ComboBox.Text <> '')
and (ssCtrl in Shift)) then
begin //Tester fonction suppres. ou insert.
if (Key = FONCTION_DELETE) then
begin //Envisager suppression
EnvisagerSuppressionDeLaListe ();
end;
end;
end;
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
procedure TFrmTest.EnvisagerSuppressionDeLaListe ();
var
i : integer;
sauve : string;
begin
i := 0;
while ((i < ComboBox.Items.Count)
and (ComboBox.Text > ComboBox.Items.Strings [i])) do
i := i + 1; //occurs de la liste
if ((i < ComboBox.Items.Count)
and (ComboBox.Text = ComboBox.Items.Strings [i])) then
begin
ComboBox.Items.Delete (i);
end
else
begin
sauve := ComboBox.Text;
Application.MessageBox (pChar ('N''existe pas dans la liste'), '', MB_OK + MB_ICONSTOP);
//ShowMessage (pChar ('N''existe pas dans la liste'));
//ComboBox.SetFocus;
//ComboBox.Text := sauve;
end;
end;
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
end. |
Partager