File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1462,17 +1462,19 @@ procedure TfrmKeymanDeveloper.UpdateFileMRU;
14621462 begin
14631463 m := TMenuItem.Create(Self);
14641464 m.Caption := ' &' +IntToStr(i+1 )+' ' +FGlobalProject.MRU.EllipsisFile(i);
1465- m.Hint := FGlobalProject.MRU.Files[i] ;
1465+ m.Tag := i ;
14661466 m.OnClick := mnuFileRecentFileClick;
14671467 mnuFileRecent.Add(m);
14681468 end ;
14691469 end ;
14701470end ;
14711471
14721472procedure TfrmKeymanDeveloper.mnuFileRecentFileClick (Sender: TObject);
1473+ var
1474+ filename: string;
14731475begin
1474- with Sender as TMenuItem do
1475- OpenFilesInProject([Hint ]);
1476+ filename := FGlobalProject.MRU.Files[( Sender as TMenuItem).Tag];
1477+ OpenFilesInProject([filename ]);
14761478end ;
14771479
14781480{ -------------------------------------------------------------------------------
@@ -1552,7 +1554,7 @@ procedure TfrmKeymanDeveloper.mnuProjectClick(Sender: TObject);
15521554 begin
15531555 m := TMenuItem.Create(Self);
15541556 m.Caption := ' &' +IntToStr(i+1 )+' ' +FProjectMRU.EllipsisFile(i);
1555- m.Hint := FProjectMRU.Files[i] ;
1557+ m.Tag := i ;
15561558 m.OnClick := mnuProjectRecentFileClick;
15571559 mnuProjectsRecent.Add(m);
15581560 end ;
@@ -1567,7 +1569,7 @@ procedure TfrmKeymanDeveloper.mnuProjectRecentFileClick(Sender: TObject);
15671569var
15681570 filename: string;
15691571begin
1570- filename := (Sender as TMenuItem).Hint ;
1572+ filename := FProjectMRU.Files[ (Sender as TMenuItem).Tag] ;
15711573 OpenProject(filename);
15721574end ;
15731575
Original file line number Diff line number Diff line change @@ -231,11 +231,13 @@ destructor TMRUList.Destroy;
231231end ;
232232
233233function TMRUList.EllipsisFile (Index: Integer): string;
234+ var
235+ buffer: array [0 ..MAX_PATH] of char;
234236begin
235- Result := Files[Index];
237+ StrPCopy(buffer, Files[Index]) ;
236238
237- if PathCompactPath(0 , PWideChar(Result) , GetSystemMetrics(SM_CXSCREEN) div 3 ) then // I4697
238- Result := string(PChar(Result)) // This removes the terminating nul
239+ if PathCompactPath(0 , buffer , GetSystemMetrics(SM_CXSCREEN) div 3 ) then // I4697
240+ Result := buffer // This removes the terminating nul
239241 else
240242 Result := ExtractFileName(Files[Index]);
241243end ;
You can’t perform that action at this time.
0 commit comments