unit EditPos; var EditPosReg: TJvRegAuto; const EditPosCfg = 'EditPos.cfg'; procedure InitEditPos; begin EditPosReg := TJvRegAuto.Create(MainWindow); EditPosReg.IniFile := WorkingDir + EditPosCfg; EditPosReg.UseIni := True; EditPosReg.UseReg := False; end; procedure DoneEditPos; begin { we must delete old records in 'EditPos.cfg' } //.. EditPosReg.Free; end; procedure CloseEditPos(FileName: string); var i: Integer; begin if FileName = '' then Exit; ODS('Save edit pos'); EditPosReg.EraseSection(FileName); EditPosReg.WriteInteger(FileName, 'X', Editor.CaretX); EditPosReg.WriteInteger(FileName, 'Y', Editor.CaretY); EditPosReg.WriteInteger(FileName, 'Left', Editor.LeftCol); EditPosReg.WriteInteger(FileName, 'Top', Editor.TopRow); {EditPosReg.WriteInteger(FileName, 'WindowLeft', MainWindow.Left); EditPosReg.WriteInteger(FileName, 'WindowTop', MainWindow.Top); EditPosReg.WriteInteger(FileName, 'WindowWidth', MainWindow.Width); EditPosReg.WriteInteger(FileName, 'WindowHeight', MainWindow.Height);} for i := 0 to 9 do if Editor.BookmarkValid[i] then begin EditPosReg.WriteInteger(FileName, 'Bookmarks.' + IntToStr(i) + '.X', Editor.BookmarkX[i]); EditPosReg.WriteInteger(FileName, 'Bookmarks.' + IntToStr(i) + '.Y', Editor.BookmarkY[i]); end; end; procedure OpenEditPos(FileName: string); var i: Integer; X, Y: Integer; begin if FileName = '' then Exit; ODS('Restore edit pos for file ' + FileName); Editor.CaretX := EditPosReg.ReadInteger(FileName, 'X', 0); Editor.CaretY := EditPosReg.ReadInteger(FileName, 'Y', 0); Editor.SetLeftTop(EditPosReg.ReadInteger(FileName, 'Left', 0), EditPosReg.ReadInteger(FileName, 'Top', 0)); { MainWindow.Left := EditPosReg.ReadInteger(FileName, 'WindowLeft', MainWindow.Left); MainWindow.Top := EditPosReg.ReadInteger(FileName, 'WindowTop', MainWindow.Top); MainWindow.Width := EditPosReg.ReadInteger(FileName, 'WindowWidth', MainWindow.Width); MainWindow.Height := EditPosReg.ReadInteger(FileName, 'WindowHeight', MainWindow.Height); } for i := 0 to 9 do begin X := EditPosReg.ReadInteger(FileName, 'Bookmarks.' + IntToStr(i) + '.X', -1); Y := EditPosReg.ReadInteger(FileName, 'Bookmarks.' + IntToStr(i) + '.Y', -1); if (X > -1) and (Y > -1) then begin Editor.BookmarkX[i] := X; Editor.BookmarkY[i] := Y; Editor.BookmarkValid[i] := True; end else Editor.BookmarkValid[i] := False; end; end; end.