novembre
2008
2.1.4 – Nouvelle interface-utilisateur
Après avoir montré comment sauvegarder et lire des objets dans des fichiers-textes, je vous propose de compléter l’interface-utilisateur.
La figure 2 ci-dessus montre FormRepert en mode conception.
Remarquez les boutons et les composants qui ont été ajoutés, ainsi que les images affectées aux boutons et qui sont contenues dans ImageList1.
ImageList1 est affectée aux propriétés Images de ToolBar1, ActionList1 et MainMenu1.
Les actions contenues dans ActionList1 sont aNew, aOpen, aSave, aSaveAs et aExit dans la catégorie File, et aCreate, aModify et aDelete dans la catégorie Person.
A ce stade ne sont implémentées que les méthodes correspondant aux actions du groupe File:
begin
Close;
end;
procedure TFormRepert.aNewExecute(Sender: TObject);
begin
if (MessageDlg('Voulez-vous enregistrer le fichier courant ?',
mtWarning, [mbYes, mbNo], 0) = mrYes)
then
aSaveExecute(Sender);
People.Clear;
ListBox1.Items := PeopleList.Strings;
end;
procedure TFormRepert.aOpenExecute(Sender: TObject);
begin
if OpenDialog1.Execute then begin
CurrentFileName := OpenDialog1.FileName;
ReadPeopleFromFile(CurrentFileName);
ListBox1.Items := PeopleList.Strings;
end;
end;
procedure TFormRepert.aSaveAsExecute(Sender: TObject);
begin
//enregistrer dans un fichier différent
SaveDialog1.InitialDir := ExtractFilePath(CurrentFileName);
SaveDialog1.DefaultExt := ExtractFileExt(CurrentFileName);
if SaveDialog1.Execute then begin
CurrentFileName := SaveDialog1.FileName;
SavePeopleToFile(CurrentfileName);
end;
end;
procedure TFormRepert.aSaveExecute(Sender: TObject);
begin
//enregistrement dans le fichier actif, sinon enregistrer sous
if not FileExists(CurrentFileName) then
aSaveAsExecute(Sender)
else begin
SavePeopleToFile(CurrentFileName);
MessageDlg('Le fichier'+#13+#10+CurrentFileName+#13+#10
+'a été correctement enregistré', mtInformation, [mbOK], 0);
end;
end;