hast du mal in die Ini-Datei gekuckt? Wohl nicht, sonst hättest du was anderes gefragt.
Der Hund liegt hier begraben:
Delphi-Quellcode:
for i := 0 to slKeyNumbers.Count-1 do
begin
NewItem := TMenuItem.Create(mnuFile);
NewItem.Caption := '&'+IntToStr(i)+' '+ExtractFilename(ini.ReadString('MRU', IntToStr(i), ''));
if NewItem.Caption = '' then
continue;
NewItem.Tag := i;
NewItem.OnClick := MyMenuItemClick;
mnuFile.Insert(mnuFile.Count, NewItem);
end;
Wenn ein Eintrag drin ist, dann läuft die Schleife von? Genau 0 bis ein Eintrag minus eins, also genau wie viel mal? Gar kein mal. Nimm das minus eins bei der for-Schleife raus.
Mann, das Ding habe ich in 20 Minuten zusammengekloppt. Es sollte ja auch nur das Prinzip verdeutlichen. Ich habe nie den Anspruch auf perfekten Code erhoben.