Hallo ihr zwei,
da der Zugriffsschlüssel für die INI-Datei das ListBox-Item ist, darf es erst gelöscht werden, wenn die INI-Datei bearbeitet wurde. Die Prüfung, ob überhaupt ein Item markiert wurde, würde ich außerhalb des event handlers machen und darüber den Button erst aktivieren (Button.Enabled := ListBox.ItemIndex >= 0). Bei der Sicherheitsfrage sollte man die wichtige Information (um welchen Benutzer es sich handelt) gleich mit rein packen. Wenn der gerade aktive Benutzer nicht gelöscht werden darf, dann muss man auch das prüfen (bei Button.Enabled := ...).
Delphi-Quellcode:
resourcestring
S_USERSECTION = 'Users';
S_SAFETYFIRST = 'Benutzer "%s" löschen?';
procedure TUserForm.DeleteButtonClick(Sender: TObject);
var
msg: string;
begin
with ListBox do
begin
msg := Format(S_SAFETYFIRST, [Items[ItemIndex]);
if MessageDlg(msg, mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
ini.DeleteKey(S_USERSECTION, Items[ItemIndex]);
Items.Delete(ItemIndex);
end;
end;
Getippt und nicht getestet.
Freundliche Grüße