├── Program
├── Units
│ ├── unit_MHL_xml.pas
│ ├── unit_Logger.pas
│ ├── unit_ColorTabs.pas
│ ├── unit_Messages.pas
│ ├── unit_Events.pas
│ ├── unit_MHL_strings.pas
│ ├── unit_PrevInst.pas
│ └── unit_SearchUtils.pas
├── MyhomeLib.dres
├── MyhomeLib.res
├── MyhomeLib.todo
├── SQL
│ ├── по автору.SQL
│ └── по автору.sqm
├── MHL_prjgroup.tvsconfig
├── MyhomeLib_Icon.ico
├── Resources
│ ├── home-lib.ico
│ └── Images
│ │ ├── 16x16
│ │ ├── clear.bmp
│ │ ├── help.png
│ │ ├── list.png
│ │ ├── read.png
│ │ ├── toXml.png
│ │ ├── fromXml.png
│ │ ├── tools1.png
│ │ ├── tools2.png
│ │ ├── download.png
│ │ ├── editBook.png
│ │ ├── epub_icon.png
│ │ ├── file_txt.png
│ │ ├── local-read.png
│ │ ├── mobi_icon.png
│ │ ├── runScript.png
│ │ ├── selectAll.png
│ │ ├── settings.png
│ │ ├── star_small.png
│ │ ├── statistic.png
│ │ ├── toDevice.png
│ │ ├── listRefresh.png
│ │ ├── local-review.png
│ │ ├── local-unread.png
│ │ ├── remote-read.png
│ │ ├── toFavorites1.png
│ │ ├── toFavorites2.png
│ │ ├── toFavorites3.png
│ │ ├── book_finished.png
│ │ ├── fromFavorites1.png
│ │ ├── fromFavorites2.png
│ │ ├── fromFavorites3.png
│ │ ├── locateAuthor1.png
│ │ ├── locateAuthor2.png
│ │ ├── locateAuthor3.png
│ │ ├── locateAuthor4.png
│ │ ├── refreshLibList.png
│ │ ├── remote-review.png
│ │ ├── local-read-review.png
│ │ ├── refreshGenresList.png
│ │ ├── removeCollection.png
│ │ ├── selectCollection.png
│ │ ├── star_small_empty.png
│ │ ├── collectionSettings1.png
│ │ ├── collectionSettings2.png
│ │ ├── collectionSettings3.png
│ │ ├── collectionSettings4.png
│ │ ├── remote-read-review.png
│ │ ├── copyBookToCollection1.png
│ │ └── copyBookToCollection2.png
│ │ ├── 32x32
│ │ ├── en1.png
│ │ ├── en2.png
│ │ ├── en3.png
│ │ ├── en4.png
│ │ ├── en5.png
│ │ ├── en6.png
│ │ ├── en7.png
│ │ ├── en8.png
│ │ ├── help.png
│ │ ├── read1.png
│ │ ├── read2.png
│ │ ├── read3.png
│ │ ├── read4.png
│ │ ├── read5.png
│ │ ├── ru1.png
│ │ ├── ru10.png
│ │ ├── ru2.png
│ │ ├── ru3.png
│ │ ├── ru4.png
│ │ ├── ru5.png
│ │ ├── ru6.png
│ │ ├── ru7.png
│ │ ├── ru9.png
│ │ ├── newCol.png
│ │ ├── search.png
│ │ ├── bookList1.png
│ │ ├── chekAll1.png
│ │ ├── chekAll2.png
│ │ ├── chekAll4.png
│ │ ├── download.png
│ │ ├── download_2.png
│ │ ├── infoPanel1.png
│ │ ├── infoPanel2.png
│ │ ├── infoPanel3.png
│ │ ├── infopanel5.png
│ │ ├── settings1.png
│ │ ├── settings12.png
│ │ ├── settings2.png
│ │ ├── settings3.png
│ │ ├── settings4.png
│ │ ├── settings6.png
│ │ ├── settings7.png
│ │ ├── settings8.png
│ │ ├── tableView1.png
│ │ ├── treeView1.png
│ │ ├── disabled
│ │ │ ├── en1.png
│ │ │ ├── en2.png
│ │ │ ├── en3.png
│ │ │ ├── en4.png
│ │ │ ├── en5.png
│ │ │ ├── en6.png
│ │ │ ├── en7.png
│ │ │ ├── ru1.png
│ │ │ ├── ru2.png
│ │ │ ├── ru3.png
│ │ │ ├── ru4.png
│ │ │ ├── ru5.png
│ │ │ ├── ru6.png
│ │ │ ├── ru7.png
│ │ │ ├── ru9.png
│ │ │ ├── newCol.png
│ │ │ ├── read1.png
│ │ │ ├── read2.png
│ │ │ ├── read3.png
│ │ │ ├── read4.png
│ │ │ ├── read5.png
│ │ │ ├── search.png
│ │ │ ├── chekAll1.png
│ │ │ ├── chekAll2.png
│ │ │ ├── chekAll4.png
│ │ │ ├── dis_read.png
│ │ │ ├── download.png
│ │ │ ├── bookList1.png
│ │ │ ├── download_2.png
│ │ │ ├── infoPanel1.png
│ │ │ ├── infoPanel2.png
│ │ │ ├── infoPanel3.png
│ │ │ ├── infopanel5.png
│ │ │ ├── local_files.png
│ │ │ ├── settings1.png
│ │ │ ├── settings12.png
│ │ │ ├── settings2.png
│ │ │ ├── settings3.png
│ │ │ ├── settings4.png
│ │ │ ├── settings6.png
│ │ │ ├── settings7.png
│ │ │ ├── settings8.png
│ │ │ ├── tableView1.png
│ │ │ ├── treeView1.png
│ │ │ ├── deletedBooks1.png
│ │ │ ├── deletedBooks2.png
│ │ │ ├── deletedBooks3.png
│ │ │ ├── downloaded_2.png
│ │ │ ├── downloaded_3.png
│ │ │ ├── downloaded_4.png
│ │ │ ├── refreshList1.png
│ │ │ ├── refreshList2.png
│ │ │ ├── sndToDevice1.png
│ │ │ ├── sndToDevice2.png
│ │ │ ├── toFavorites1.png
│ │ │ ├── toFavorites2.png
│ │ │ ├── toFavorites3.png
│ │ │ ├── fromFavorites1.png
│ │ │ ├── fromFavorites2.png
│ │ │ ├── fromFavorites3.png
│ │ │ ├── fromFavorites4.png
│ │ │ ├── fromFavorites5.png
│ │ │ ├── fromFavorites6.png
│ │ │ ├── sndToDevice_fb2.png
│ │ │ ├── sndToDevice_lrf.png
│ │ │ ├── sndToDevice_txt.png
│ │ │ ├── sndToDevice_zip.png
│ │ │ ├── toDownloadList.png
│ │ │ ├── selectCollection1.png
│ │ │ ├── newCollectionWizard1.png
│ │ │ └── newCollectionWizard2.png
│ │ ├── downloaded_2.png
│ │ ├── downloaded_3.png
│ │ ├── downloaded_4.png
│ │ ├── local_files.png
│ │ ├── refreshList1.png
│ │ ├── refreshList2.png
│ │ ├── sndToDevice1.png
│ │ ├── sndToDevice2.png
│ │ ├── toFavorites1.png
│ │ ├── toFavorites2.png
│ │ ├── toFavorites3.png
│ │ ├── deletedBooks1.png
│ │ ├── deletedBooks2.png
│ │ ├── deletedBooks3.png
│ │ ├── fromDownloads.png
│ │ ├── fromFavorites1.png
│ │ ├── fromFavorites2.png
│ │ ├── fromFavorites3.png
│ │ ├── fromFavorites4.png
│ │ ├── fromFavorites5.png
│ │ ├── fromFavorites6.png
│ │ ├── sndToDevice_fb2.png
│ │ ├── sndToDevice_lrf.png
│ │ ├── sndToDevice_pdf.png
│ │ ├── sndToDevice_txt.png
│ │ ├── sndToDevice_zip.png
│ │ ├── toDownloadList.png
│ │ ├── selectCollection1.png
│ │ ├── sndToDevice_epub.png
│ │ ├── newCollectionWizard1.png
│ │ ├── newCollectionWizard2.png
│ │ └── update_collections.png
│ │ └── splashScreen9.png
├── Wizards
│ ├── Base
│ │ ├── frame_WizardPageBase.dfm
│ │ ├── frame_InteriorPageBase.dfm
│ │ ├── frame_DecorativePageBase.pas
│ │ ├── frm_MHLWizardBase.dfm
│ │ ├── frame_InteriorPageBase.pas
│ │ ├── frame_WizardPageBase.pas
│ │ └── frame_DecorativePageBase.dfm
│ └── NewCollection
│ │ ├── frm_NewCollectionWizard.dfm
│ │ ├── frame_NCWWelcom.dfm
│ │ ├── frame_NCWFinish.dfm
│ │ ├── frame_NCWWelcom.pas
│ │ ├── frame_NCWFinish.pas
│ │ ├── unit_NCWParams.pas
│ │ ├── frame_NCWDownload.dfm
│ │ ├── frame_NCWOperation.dfm
│ │ ├── frame_NCWCollectionFileTypes.dfm
│ │ └── frame_NCWOperation.pas
├── MyhomeLib.stat
├── MHL.groupproj.local
├── ImportImpl
│ ├── frm_BaseProgressForm.dfm
│ ├── frm_ExportProgressForm.dfm
│ ├── frm_ExportProgressForm.pas
│ ├── frm_ImportProgressForm.dfm
│ ├── unit_Export.pas
│ ├── frm_ImportProgressFormEx.dfm
│ ├── unit_CollectionWorkerThread.pas
│ ├── unit_Import.pas
│ └── frm_ImportProgressForm.pas
├── UtilsImpl
│ ├── frm_SyncOnLineProgressForm.pas
│ ├── frm_SyncOnLineProgressForm.dfm
│ ├── frm_ExportToDeviceProgressForm.pas
│ ├── frm_ExportToDeviceProgressForm.dfm
│ ├── unit_SyncOnLineThread.pas
│ └── unit_ExportToDevice.pas
├── MyhomeLib.dproj.local
├── Forms
│ ├── frm_info_popup.dfm
│ ├── frm_info_popup.pas
│ ├── frm_splash.pas
│ ├── frm_search.dfm
│ ├── Editors
│ │ ├── frm_EditAuthorEx.pas
│ │ ├── frm_EditAuthorEx.dfm
│ │ ├── frm_EditGroup.dfm
│ │ ├── frm_EditGroup.pas
│ │ ├── frm_edit_author.dfm
│ │ ├── frm_edit_reader.dfm
│ │ ├── frm_edit_reader.pas
│ │ ├── frm_edit_author.pas
│ │ ├── frm_edit_script.dfm
│ │ └── frm_edit_script.pas
│ ├── frm_author_list.pas
│ ├── frm_statistic.pas
│ ├── frm_about.pas
│ ├── frm_search.pas
│ ├── frm_genre_tree.dfm
│ ├── frm_author_list.dfm
│ └── frm_statistic.dfm
├── MyhomeLibResource.rc
├── MHL.groupproj
├── DwnldImpl
│ └── frm_DownloadProgressForm.dfm
├── DAO
│ └── SQLite
│ │ ├── Lib
│ │ └── SQLite3UDF.pas
│ │ └── unit_SQLiteUtils.pas
└── DataModules
│ └── dm_user.pas
├── Components
└── MHLComponents
│ ├── MHLButtonedEdit.rc
│ ├── MHLComponents.dproj.local
│ ├── MHLComponents.res
│ ├── MHLButtonedEdit.RES
│ ├── MHLComponents.otares
│ ├── MHLSimplePanel.pas
│ ├── MHLComponents_Icon.ico
│ ├── MHLComponents_Icon1.ico
│ ├── Resources
│ └── blue-document-code.png
│ ├── MHLComponents.stat
│ ├── MHLComponents_Register.pas
│ ├── MHLComponents.dpk
│ ├── files_list.pas
│ └── unit_AutoCompleteEdit.pas
├── Installer
├── Images
│ ├── Setup.ico
│ ├── SetupModern20.bmp
│ └── SetupModernSmall20.bmp
├── Setup_Script_MyHomeLib.iss
└── Setup_Script_MyHomeLib_x64.iss
├── .gitignore
├── Utils
├── MHLSQLiteConsole
│ ├── MHLSQLiteConsole.res
│ └── MHLSQLiteConsole.dpr
└── MHLSQLiteExt
│ ├── MHLSQLiteExt.sln
│ ├── stdafx.h
│ ├── stdafx.cpp
│ ├── ReadMe.txt
│ └── dllmain.cpp
├── README.md
└── LICENSE
/Program/Units/unit_MHL_xml.pas:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Program/MyhomeLib.dres:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/MyhomeLib.dres
--------------------------------------------------------------------------------
/Program/MyhomeLib.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/MyhomeLib.res
--------------------------------------------------------------------------------
/Program/MyhomeLib.todo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/MyhomeLib.todo
--------------------------------------------------------------------------------
/Components/MHLComponents/MHLButtonedEdit.rc:
--------------------------------------------------------------------------------
1 | CODE_EDITOR RCData "Resources\\blue-document-code.png"
2 |
--------------------------------------------------------------------------------
/Program/SQL/по автору.SQL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/SQL/по автору.SQL
--------------------------------------------------------------------------------
/Program/SQL/по автору.sqm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/SQL/по автору.sqm
--------------------------------------------------------------------------------
/Installer/Images/Setup.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Installer/Images/Setup.ico
--------------------------------------------------------------------------------
/Program/MHL_prjgroup.tvsconfig:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/Program/MyhomeLib_Icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/MyhomeLib_Icon.ico
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.dcu
2 | Out
3 | /Program/*.dsk
4 | __history
5 | *.~pas
6 | Common
7 | x64
8 | /Installer/x86
9 |
--------------------------------------------------------------------------------
/Program/Resources/home-lib.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/home-lib.ico
--------------------------------------------------------------------------------
/Program/Units/unit_Logger.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Units/unit_Logger.pas
--------------------------------------------------------------------------------
/Components/MHLComponents/MHLComponents.dproj.local:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/Installer/Images/SetupModern20.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Installer/Images/SetupModern20.bmp
--------------------------------------------------------------------------------
/Installer/Images/SetupModernSmall20.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Installer/Images/SetupModernSmall20.bmp
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/clear.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/clear.bmp
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/help.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/list.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/read.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/read.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/toXml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/toXml.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/en1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/en1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/en2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/en2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/en3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/en3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/en4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/en4.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/en5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/en5.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/en6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/en6.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/en7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/en7.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/en8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/en8.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/help.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/read1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/read1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/read2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/read2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/read3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/read3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/read4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/read4.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/read5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/read5.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/ru1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/ru1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/ru10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/ru10.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/ru2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/ru2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/ru3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/ru3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/ru4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/ru4.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/ru5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/ru5.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/ru6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/ru6.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/ru7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/ru7.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/ru9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/ru9.png
--------------------------------------------------------------------------------
/Components/MHLComponents/MHLComponents.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Components/MHLComponents/MHLComponents.res
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/fromXml.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/fromXml.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/tools1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/tools1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/tools2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/tools2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/newCol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/newCol.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/search.png
--------------------------------------------------------------------------------
/Program/Resources/Images/splashScreen9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/splashScreen9.png
--------------------------------------------------------------------------------
/Components/MHLComponents/MHLButtonedEdit.RES:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Components/MHLComponents/MHLButtonedEdit.RES
--------------------------------------------------------------------------------
/Components/MHLComponents/MHLComponents.otares:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Components/MHLComponents/MHLComponents.otares
--------------------------------------------------------------------------------
/Components/MHLComponents/MHLSimplePanel.pas:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Components/MHLComponents/MHLSimplePanel.pas
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/download.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/editBook.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/editBook.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/epub_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/epub_icon.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/file_txt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/file_txt.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/local-read.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/local-read.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/mobi_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/mobi_icon.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/runScript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/runScript.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/selectAll.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/selectAll.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/settings.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/star_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/star_small.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/statistic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/statistic.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/toDevice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/toDevice.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/bookList1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/bookList1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/chekAll1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/chekAll1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/chekAll2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/chekAll2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/chekAll4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/chekAll4.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/download.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/download_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/download_2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/infoPanel1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/infoPanel1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/infoPanel2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/infoPanel2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/infoPanel3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/infoPanel3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/infopanel5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/infopanel5.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/settings1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/settings1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/settings12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/settings12.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/settings2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/settings2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/settings3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/settings3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/settings4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/settings4.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/settings6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/settings6.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/settings7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/settings7.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/settings8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/settings8.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/tableView1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/tableView1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/treeView1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/treeView1.png
--------------------------------------------------------------------------------
/Utils/MHLSQLiteConsole/MHLSQLiteConsole.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Utils/MHLSQLiteConsole/MHLSQLiteConsole.res
--------------------------------------------------------------------------------
/Components/MHLComponents/MHLComponents_Icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Components/MHLComponents/MHLComponents_Icon.ico
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/listRefresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/listRefresh.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/local-review.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/local-review.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/local-unread.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/local-unread.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/remote-read.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/remote-read.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/toFavorites1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/toFavorites1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/toFavorites2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/toFavorites2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/toFavorites3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/toFavorites3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/en1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/en1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/en2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/en2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/en3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/en3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/en4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/en4.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/en5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/en5.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/en6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/en6.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/en7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/en7.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/ru1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/ru1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/ru2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/ru2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/ru3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/ru3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/ru4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/ru4.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/ru5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/ru5.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/ru6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/ru6.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/ru7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/ru7.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/ru9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/ru9.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/downloaded_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/downloaded_2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/downloaded_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/downloaded_3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/downloaded_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/downloaded_4.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/local_files.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/local_files.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/refreshList1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/refreshList1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/refreshList2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/refreshList2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/sndToDevice1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/sndToDevice1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/sndToDevice2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/sndToDevice2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/toFavorites1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/toFavorites1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/toFavorites2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/toFavorites2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/toFavorites3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/toFavorites3.png
--------------------------------------------------------------------------------
/Components/MHLComponents/MHLComponents_Icon1.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Components/MHLComponents/MHLComponents_Icon1.ico
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/book_finished.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/book_finished.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/fromFavorites1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/fromFavorites1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/fromFavorites2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/fromFavorites2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/fromFavorites3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/fromFavorites3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/locateAuthor1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/locateAuthor1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/locateAuthor2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/locateAuthor2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/locateAuthor3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/locateAuthor3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/locateAuthor4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/locateAuthor4.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/refreshLibList.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/refreshLibList.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/remote-review.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/remote-review.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/deletedBooks1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/deletedBooks1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/deletedBooks2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/deletedBooks2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/deletedBooks3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/deletedBooks3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/newCol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/newCol.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/read1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/read1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/read2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/read2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/read3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/read3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/read4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/read4.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/read5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/read5.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/search.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/fromDownloads.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/fromDownloads.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/fromFavorites1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/fromFavorites1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/fromFavorites2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/fromFavorites2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/fromFavorites3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/fromFavorites3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/fromFavorites4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/fromFavorites4.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/fromFavorites5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/fromFavorites5.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/fromFavorites6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/fromFavorites6.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/sndToDevice_fb2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/sndToDevice_fb2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/sndToDevice_lrf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/sndToDevice_lrf.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/sndToDevice_pdf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/sndToDevice_pdf.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/sndToDevice_txt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/sndToDevice_txt.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/sndToDevice_zip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/sndToDevice_zip.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/toDownloadList.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/toDownloadList.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/local-read-review.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/local-read-review.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/refreshGenresList.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/refreshGenresList.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/removeCollection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/removeCollection.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/selectCollection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/selectCollection.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/star_small_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/star_small_empty.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/chekAll1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/chekAll1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/chekAll2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/chekAll2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/chekAll4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/chekAll4.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/dis_read.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/dis_read.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/download.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/selectCollection1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/selectCollection1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/sndToDevice_epub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/sndToDevice_epub.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/collectionSettings1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/collectionSettings1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/collectionSettings2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/collectionSettings2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/collectionSettings3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/collectionSettings3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/collectionSettings4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/collectionSettings4.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/remote-read-review.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/remote-read-review.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/bookList1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/bookList1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/download_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/download_2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/infoPanel1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/infoPanel1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/infoPanel2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/infoPanel2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/infoPanel3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/infoPanel3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/infopanel5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/infopanel5.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/local_files.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/local_files.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/settings1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/settings1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/settings12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/settings12.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/settings2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/settings2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/settings3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/settings3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/settings4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/settings4.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/settings6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/settings6.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/settings7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/settings7.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/settings8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/settings8.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/tableView1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/tableView1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/treeView1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/treeView1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/newCollectionWizard1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/newCollectionWizard1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/newCollectionWizard2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/newCollectionWizard2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/update_collections.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/update_collections.png
--------------------------------------------------------------------------------
/Components/MHLComponents/Resources/blue-document-code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Components/MHLComponents/Resources/blue-document-code.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/copyBookToCollection1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/copyBookToCollection1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/16x16/copyBookToCollection2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/16x16/copyBookToCollection2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/deletedBooks1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/deletedBooks1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/deletedBooks2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/deletedBooks2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/deletedBooks3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/deletedBooks3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/downloaded_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/downloaded_2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/downloaded_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/downloaded_3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/downloaded_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/downloaded_4.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/refreshList1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/refreshList1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/refreshList2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/refreshList2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/sndToDevice1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/sndToDevice1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/sndToDevice2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/sndToDevice2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/toFavorites1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/toFavorites1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/toFavorites2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/toFavorites2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/toFavorites3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/toFavorites3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/fromFavorites1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/fromFavorites1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/fromFavorites2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/fromFavorites2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/fromFavorites3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/fromFavorites3.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/fromFavorites4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/fromFavorites4.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/fromFavorites5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/fromFavorites5.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/fromFavorites6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/fromFavorites6.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/sndToDevice_fb2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/sndToDevice_fb2.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/sndToDevice_lrf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/sndToDevice_lrf.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/sndToDevice_txt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/sndToDevice_txt.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/sndToDevice_zip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/sndToDevice_zip.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/toDownloadList.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/toDownloadList.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/selectCollection1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/selectCollection1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/newCollectionWizard1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/newCollectionWizard1.png
--------------------------------------------------------------------------------
/Program/Resources/Images/32x32/disabled/newCollectionWizard2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dicur3x/MyHomeLib/HEAD/Program/Resources/Images/32x32/disabled/newCollectionWizard2.png
--------------------------------------------------------------------------------
/Program/Wizards/Base/frame_WizardPageBase.dfm:
--------------------------------------------------------------------------------
1 | object WizardPageBase: TWizardPageBase
2 | Left = 0
3 | Top = 0
4 | Width = 320
5 | Height = 240
6 | Enabled = False
7 | TabOrder = 0
8 | end
9 |
--------------------------------------------------------------------------------
/Program/MyhomeLib.stat:
--------------------------------------------------------------------------------
1 | [Stats]
2 | EditorSecs=2819
3 | DesignerSecs=328
4 | InspectorSecs=117
5 | CompileSecs=297239
6 | OtherSecs=1171
7 | StartTime=3/11/2019 2:00:41 PM
8 | RealKeys=0
9 | EffectiveKeys=0
10 | DebugSecs=11654
11 |
--------------------------------------------------------------------------------
/Components/MHLComponents/MHLComponents.stat:
--------------------------------------------------------------------------------
1 | [Stats]
2 | EditorSecs=289
3 | DesignerSecs=1
4 | InspectorSecs=1
5 | CompileSecs=90613
6 | OtherSecs=726
7 | StartTime=1/3/2019 12:51:59 PM
8 | RealKeys=0
9 | EffectiveKeys=0
10 | DebugSecs=1
11 |
--------------------------------------------------------------------------------
/Program/MHL.groupproj.local:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Program/ImportImpl/frm_BaseProgressForm.dfm:
--------------------------------------------------------------------------------
1 | object ProgressFormBase: TProgressFormBase
2 | Left = 0
3 | Top = 0
4 | Caption = 'ProgressFormBase'
5 | ClientHeight = 283
6 | ClientWidth = 414
7 | Color = clBtnFace
8 | Font.Charset = DEFAULT_CHARSET
9 | Font.Color = clWindowText
10 | Font.Height = -11
11 | Font.Name = 'Tahoma'
12 | Font.Style = []
13 | OnCloseQuery = FormCloseQuery
14 | OnShow = FormShow
15 | TextHeight = 13
16 | end
17 |
--------------------------------------------------------------------------------
/Program/UtilsImpl/frm_SyncOnLineProgressForm.pas:
--------------------------------------------------------------------------------
1 | unit frm_SyncOnLineProgressForm;
2 |
3 | interface
4 |
5 | uses
6 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 | Dialogs, frm_ImportProgressForm, StdCtrls, ComCtrls;
8 |
9 | type
10 | TSyncOnLineProgressForm = class(TImportProgressForm)
11 | private
12 | public
13 | end;
14 |
15 | var
16 | SyncOnLineProgressForm: TSyncOnLineProgressForm;
17 |
18 | implementation
19 |
20 | {$R *.dfm}
21 |
22 | end.
23 |
--------------------------------------------------------------------------------
/Program/ImportImpl/frm_ExportProgressForm.dfm:
--------------------------------------------------------------------------------
1 | inherited ExportProgressForm: TExportProgressForm
2 | Caption = #1069#1082#1089#1087#1086#1088#1090
3 | StyleElements = [seFont, seClient, seBorder]
4 | TextHeight = 13
5 | inherited txtComment: TLabel
6 | Caption = #1069#1082#1089#1087#1086#1088#1090#1080#1088#1091#1077#1084'...'
7 | StyleElements = [seFont, seClient, seBorder]
8 | end
9 | inherited btnCancel: TButton
10 | Left = 261
11 | Caption = #1054#1090#1084#1077#1085#1072
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/Utils/MHLSQLiteConsole/MHLSQLiteConsole.dpr:
--------------------------------------------------------------------------------
1 | program MHLSQLiteConsole;
2 |
3 | uses
4 | Forms,
5 | MainForm in 'MainForm.pas' {frmMain},
6 | SQLite3 in '..\..\Program\DAO\SQLite\Lib\SQLite3.pas',
7 | SQLiteWrap in '..\..\Program\DAO\SQLite\Lib\SQLiteWrap.pas',
8 | SQLite3UDF in '..\..\Program\DAO\SQLite\Lib\SQLite3UDF.pas';
9 |
10 | {$R *.res}
11 |
12 | begin
13 | Application.Initialize;
14 | Application.MainFormOnTaskbar := True;
15 | Application.CreateForm(TfrmMain, frmMain);
16 | Application.Run;
17 | end.
18 |
--------------------------------------------------------------------------------
/Program/UtilsImpl/frm_SyncOnLineProgressForm.dfm:
--------------------------------------------------------------------------------
1 | inherited SyncOnLineProgressForm: TSyncOnLineProgressForm
2 | Caption = #1057#1080#1085#1093#1088#1086#1085#1080#1079#1072#1094#1080#1103' '#1082#1086#1083#1083#1077#1082#1094#1080#1080
3 | StyleElements = [seFont, seClient, seBorder]
4 | TextHeight = 13
5 | inherited txtComment: TLabel
6 | Caption = #1057#1082#1072#1085#1080#1088#1091#1077#1084'...'
7 | StyleElements = [seFont, seClient, seBorder]
8 | end
9 | inherited btnCancel: TButton
10 | Left = 265
11 | ExplicitLeft = 265
12 | end
13 | end
14 |
--------------------------------------------------------------------------------
/Program/UtilsImpl/frm_ExportToDeviceProgressForm.pas:
--------------------------------------------------------------------------------
1 | unit frm_ExportToDeviceProgressForm;
2 |
3 | interface
4 |
5 | uses
6 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 | Dialogs, frm_ImportProgressForm, StdCtrls, ComCtrls;
8 |
9 | type
10 | TExportToDeviceProgressForm = class(TImportProgressForm)
11 | private
12 | { Private declarations }
13 | public
14 | { Public declarations }
15 | end;
16 |
17 | var
18 | ExportToDeviceProgressForm: TExportToDeviceProgressForm;
19 |
20 | implementation
21 |
22 | {$R *.dfm}
23 |
24 | end.
25 |
--------------------------------------------------------------------------------
/Program/MyhomeLib.dproj.local:
--------------------------------------------------------------------------------
1 |
2 |
3 | Debug
4 |
5 | 1899.12.30 00:00:00.000.701,C:\Users\cloud\IdeaProjects\MyHomeLib\Program\DwnldImpl\unit_DownloadManagerThread.pas=
6 | 1899.12.30 00:00:00.000.753,C:\Users\cloud\IdeaProjects\MyHomeLib\Program\UtilsImpl\unit_libupdateThread.pas=
7 | 1899.12.30 00:00:00.000.459,C:\Users\cloud\IdeaProjects\MyHomeLib\Program\DwnldImpl\unit_Downloader.pas=
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Program/Wizards/NewCollection/frm_NewCollectionWizard.dfm:
--------------------------------------------------------------------------------
1 | inherited NewCollectionWizard: TNewCollectionWizard
2 | Caption = 'MyHomeLib - '#1052#1072#1089#1090#1077#1088' '#1089#1086#1079#1076#1072#1085#1080#1103' '#1082#1086#1083#1083#1077#1082#1094#1080#1080
3 | ClientWidth = 524
4 | ExplicitWidth = 536
5 | TextHeight = 13
6 | inherited pnButtons: TPanel
7 | Width = 524
8 | ExplicitWidth = 520
9 | inherited btnCancel: TButton
10 | Left = 439
11 | ExplicitLeft = 439
12 | end
13 | inherited btnForward: TButton
14 | Left = 322
15 | ExplicitLeft = 318
16 | end
17 | inherited btnBackward: TButton
18 | Left = 241
19 | ExplicitLeft = 237
20 | end
21 | end
22 | end
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # MyHomeLib
2 | MyHomeLib-компьютерная программа для управления домашней библиотекой электронных книг.
3 | MyHomeLib может использоваться не только для каталогизации коллекции файлов
4 | с электронными книгами, но и как клиент для работы с библиотекой Либрусек
5 | и другими библиотеками на движке Либрусек (Флибуста и другими подобными).
6 |
7 | Build:
8 | 1. Delphi Free Community Edition (i used 12 first).
9 | 2. FastMM5: https://github.com/pleriche/FastMM5
10 | 3. VirtualTreeView (from GetIt Package Manager, it's in IDE tools)
11 |
12 | Todo:
13 | 1. Open Program/MHL.groupproj
14 | 2. Build and install MHL components
15 | 3. Project -> preferences -> Delphi Compiler -> Path ->
16 | Add paths to FastMM5\ folder and %project%\Components\MHLComponents\
17 | 4. Build Myhomelib.exe
--------------------------------------------------------------------------------
/Program/Forms/frm_info_popup.dfm:
--------------------------------------------------------------------------------
1 | object frmInfoPopup: TfrmInfoPopup
2 | Left = 0
3 | Top = 0
4 | BorderStyle = bsNone
5 | Caption = 'MyHomeLib'
6 | ClientHeight = 62
7 | ClientWidth = 294
8 | Color = clBtnFace
9 | Font.Charset = DEFAULT_CHARSET
10 | Font.Color = clWindowText
11 | Font.Height = -11
12 | Font.Name = 'Tahoma'
13 | Font.Style = []
14 | Position = poMainFormCenter
15 | TextHeight = 13
16 | object lblText: TLabel
17 | Left = 0
18 | Top = 0
19 | Width = 294
20 | Height = 62
21 | Align = alClient
22 | Alignment = taCenter
23 | Caption = #1087#1088#1086#1074#1077#1088#1082#1072' '#1086#1073#1085#1086#1074#1083#1077#1085#1080#1081
24 | Layout = tlCenter
25 | ExplicitWidth = 111
26 | ExplicitHeight = 13
27 | end
28 | end
29 |
--------------------------------------------------------------------------------
/Program/UtilsImpl/frm_ExportToDeviceProgressForm.dfm:
--------------------------------------------------------------------------------
1 | inherited ExportToDeviceProgressForm: TExportToDeviceProgressForm
2 | Caption = #1069#1082#1089#1087#1086#1088#1090' '#1085#1072' '#1091#1089#1090#1088#1086#1081#1089#1090#1074#1086
3 | ClientHeight = 87
4 | ClientWidth = 370
5 | StyleElements = [seFont, seClient, seBorder]
6 | ExplicitWidth = 386
7 | ExplicitHeight = 126
8 | TextHeight = 13
9 | inherited txtComment: TLabel
10 | Width = 344
11 | Caption = #1069#1082#1089#1087#1086#1088#1090#1080#1088#1091#1077#1084'...'
12 | StyleElements = [seFont, seClient, seBorder]
13 | ExplicitWidth = 344
14 | end
15 | inherited ProgressBar: TProgressBar
16 | Width = 350
17 | ExplicitWidth = 350
18 | end
19 | inherited btnCancel: TButton
20 | Top = 52
21 | ExplicitTop = 52
22 | end
23 | end
24 |
--------------------------------------------------------------------------------
/Program/MyhomeLibResource.rc:
--------------------------------------------------------------------------------
1 | smallStar RCData "Resources\\Images\\16x16\\star_small.png"
2 | smallStarEmpty RCData "Resources\\Images\\16x16\\star_small_empty.png"
3 | CreateCollectionDB_SQLite RCData "DAO\\SQLite\\Resources\\CreateCollectionDB_SQLite.sql"
4 | CreateSystemDB_SQLite RCData "DAO\\SQLite\\Resources\\CreateSystemDB_SQLite.sql"
5 | bookRemoteReview RCData "Resources\\Images\\16x16\\remote-review.png"
6 | bookLocalRead RCData "Resources\\Images\\16x16\\local-read.png"
7 | bookLocalReadReview RCData "Resources\\Images\\16x16\\local-read-review.png"
8 | bookLocalReview RCData "Resources\\Images\\16x16\\local-review.png"
9 | bookRemoteRead RCData "Resources\\Images\\16x16\\remote-read.png"
10 | bookRemoteReadReview RCData "Resources\\Images\\16x16\\remote-read-review.png"
11 | bookLocalUnread RCData "Resources\\Images\\16x16\\local-unread.png"
12 | RecreateCollectionTables RCDATA "DAO\\SQLite\\Resources\\RecreateCollectionTables_SQLite.sql"
13 |
--------------------------------------------------------------------------------
/Utils/MHLSQLiteExt/MHLSQLiteExt.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 11.00
3 | # Visual C++ Express 2010
4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MHLSQLiteExt", "MHLSQLiteExt.vcxproj", "{E4B23721-9550-4116-B5D1-450E61D6967C}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|Win32 = Debug|Win32
9 | Release|Win32 = Release|Win32
10 | EndGlobalSection
11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
12 | {E4B23721-9550-4116-B5D1-450E61D6967C}.Debug|Win32.ActiveCfg = Debug|Win32
13 | {E4B23721-9550-4116-B5D1-450E61D6967C}.Debug|Win32.Build.0 = Debug|Win32
14 | {E4B23721-9550-4116-B5D1-450E61D6967C}.Release|Win32.ActiveCfg = Release|Win32
15 | {E4B23721-9550-4116-B5D1-450E61D6967C}.Release|Win32.Build.0 = Release|Win32
16 | EndGlobalSection
17 | GlobalSection(SolutionProperties) = preSolution
18 | HideSolutionNode = FALSE
19 | EndGlobalSection
20 | EndGlobal
21 |
--------------------------------------------------------------------------------
/Program/Forms/frm_info_popup.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Authors Oleksiy Penkov oleksiy.penkov@gmail.com
8 | * Nick Rymanov nrymanov@gmail.com
9 | * Created 20.08.2008
10 | * Description
11 | *
12 | * $Id: frm_info_popup.pas 543 2010-07-29 06:34:09Z nrymanov@gmail.com $
13 | *
14 | * History
15 | *
16 | ****************************************************************************** *)
17 |
18 | unit frm_info_popup;
19 |
20 | interface
21 |
22 | uses
23 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
24 | Dialogs, StdCtrls, ExtCtrls;
25 |
26 | type
27 | TfrmInfoPopup = class(TForm)
28 | lblText: TLabel;
29 | private
30 |
31 | public
32 |
33 | end;
34 |
35 | var
36 | frmInfoPopup: TfrmInfoPopup;
37 |
38 | implementation
39 |
40 | {$R *.dfm}
41 |
42 | end.
43 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Oleksiy Penkov
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Program/ImportImpl/frm_ExportProgressForm.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Author(s) Oleksiy Penkov oleksiy.penkov@gmail.com
8 | * Nick Rymanov nrymanov@gmail.com
9 | * Created
10 | * Description
11 | *
12 | * $Id: frm_ExportProgressForm.pas 543 2010-07-29 06:34:09Z nrymanov@gmail.com $
13 | *
14 | * History
15 | *
16 | ****************************************************************************** *)
17 |
18 | unit frm_ExportProgressForm;
19 |
20 | interface
21 |
22 | uses
23 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
24 | Dialogs, frm_ImportProgressForm, StdCtrls, ComCtrls;
25 |
26 | type
27 | TExportProgressForm = class(TImportProgressForm)
28 | private
29 | { Private declarations }
30 | public
31 | { Public declarations }
32 | end;
33 |
34 | var
35 | ExportProgressForm: TExportProgressForm;
36 |
37 | implementation
38 |
39 | {$R *.dfm}
40 |
41 | end.
42 |
43 |
--------------------------------------------------------------------------------
/Program/Units/unit_ColorTabs.pas:
--------------------------------------------------------------------------------
1 | unit unit_ColorTabs;
2 | interface
3 |
4 | uses ComCtrls, StdCtrls, Classes, Graphics, Messages, Windows;
5 |
6 | type
7 | TTabSheet = class(ComCtrls.TTabSheet)
8 | private
9 | FColor: TColor;
10 | procedure SetColor(Value: TColor);
11 | procedure WMEraseBkGnd(var Msg: TWMEraseBkGnd);
12 | message WM_ERASEBKGND;
13 | public
14 | constructor Create(aOwner: TComponent); override;
15 | property Color: TColor read FColor write SetColor;
16 | end;
17 |
18 | {...}
19 | implementation
20 | {...}
21 |
22 | constructor TTabSheet.Create(aOwner: TComponent);
23 | begin
24 | inherited;
25 | FColor := clBtnFace;
26 | end;
27 |
28 | procedure TTabSheet.SetColor(Value: TColor);
29 | begin
30 | if FColor <> Value then
31 | begin
32 | FColor := Value;
33 | Invalidate;
34 | end;
35 | end;
36 |
37 | procedure TTabSheet.WMEraseBkGnd(var Msg: TWMEraseBkGnd);
38 | begin
39 | if FColor = clBtnFace then
40 | inherited
41 | else
42 | begin
43 | Brush.Color := FColor;
44 | Windows.FillRect(Msg.dc, ClientRect, Brush.Handle);
45 | Msg.Result := 1;
46 | end;
47 | end;
48 |
49 | end.
50 |
--------------------------------------------------------------------------------
/Installer/Setup_Script_MyHomeLib.iss:
--------------------------------------------------------------------------------
1 | ; ****************************************************************************
2 | ;
3 | ; InnoSetup script for MyHomeLib
4 | ;
5 | ; Copyright: ©2023 Oleksiy Penkov (aka Koreec)
6 | ;
7 | ; Author: Oleksiy Penkov oleksiy.penkov@gmail.com
8 | ;
9 | ; Created 22.05.2023
10 | ; Description
11 | ;
12 | ;
13 | ;*****************************************************************************
14 |
15 | [Setup]
16 | #define SourceFolder = '..\Program\Out\Bin\'
17 | #define AppURL = 'https://github.com/OleksiyPenkov/MyHomeLib'
18 | #define protected Major
19 | #define protected Minor
20 | #define protected Revision
21 | #define protected Build
22 | #define protected MyAppName = 'MyHomeLib'
23 | #define protected AppExeName = MyAppName + '.exe'
24 | #define protected FullSourcePath = SourceFolder + AppExeName
25 |
26 | #define AppVersion GetVersionComponents(FullSourcePath, Major, Minor, Revision, Build)
27 | #define protected ShortVersion = Str(Major) +'.' + Str(Minor) +'.' + Str(Revision)
28 | #define LibFolder = 'x86\'
29 |
30 | OutputBaseFilename = {#'Setup_' + MyAppName + '_' + ShortVersion}
31 |
32 |
33 | #include "common.iss"
34 |
--------------------------------------------------------------------------------
/Installer/Setup_Script_MyHomeLib_x64.iss:
--------------------------------------------------------------------------------
1 | ; ****************************************************************************
2 | ;
3 | ; InnoSetup script for MyHomeLib
4 | ;
5 | ; Copyright: ©2023 Oleksiy Penkov (aka Koreec)
6 | ;
7 | ; Author: Oleksiy Penkov oleksiy.penkov@gmail.com
8 | ;
9 | ; Created 22.05.2023
10 | ; Description
11 | ;
12 | ;
13 | ;*****************************************************************************
14 | [Setup]
15 | #define SourceFolder = '..\Program\Out\Bin64\'
16 | #define AppURL = 'https://github.com/OleksiyPenkov/'
17 | #define protected Major
18 | #define protected Minor
19 | #define protected Revision
20 | #define protected Build
21 | #define protected MyAppName = 'MyHomeLib'
22 | #define protected AppExeName = MyAppName + '.exe'
23 | #define protected FullSourcePath = SourceFolder + AppExeName
24 |
25 | #define AppVersion GetVersionComponents(FullSourcePath, Major, Minor, Revision, Build)
26 | #define protected ShortVersion = Str(Major) +'.' + Str(Minor) +'.' + Str(Revision)
27 | #define LibFolder = 'x64\'
28 |
29 | OutputBaseFilename = {#'Setup_' + MyAppName + '_' + ShortVersion + '_x64'}
30 | ArchitecturesInstallIn64BitMode = x64
31 |
32 | #include "common.iss"
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/Program/Forms/frm_splash.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Authors Oleksiy Penkov oleksiy.penkov@gmail.com
8 | * Nick Rymanov nrymanov@gmail.com
9 | * Created 20.08.2008
10 | * Description
11 | *
12 | * $Id: frm_splash.pas 916 2010-11-17 08:19:10Z koreec $
13 | *
14 | * History
15 | *
16 | ****************************************************************************** *)
17 |
18 | unit frm_splash;
19 |
20 | interface
21 |
22 | uses
23 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
24 | Dialogs, ExtCtrls, StdCtrls, jpeg, pngimage;
25 |
26 | type
27 | TfrmSplash = class(TForm)
28 | Image1: TImage;
29 | lblState: TLabel;
30 | lblVersion: TLabel;
31 | procedure FormCreate(Sender: TObject);
32 | private
33 | public
34 | end;
35 |
36 | var
37 | frmSplash: TfrmSplash;
38 |
39 | implementation
40 |
41 | {$R *.dfm}
42 |
43 | procedure TfrmSplash.FormCreate(Sender: TObject);
44 | begin
45 | {$IFDEF WIN64}
46 | lblVersion.Caption := lblVersion.Caption + ' x64';
47 | {$ENDIF}
48 | end;
49 |
50 | end.
51 |
--------------------------------------------------------------------------------
/Program/ImportImpl/frm_ImportProgressForm.dfm:
--------------------------------------------------------------------------------
1 | inherited ImportProgressForm: TImportProgressForm
2 | BorderStyle = bsDialog
3 | Caption = #1048#1084#1087#1086#1088#1090
4 | ClientHeight = 85
5 | ClientWidth = 362
6 | Padding.Left = 10
7 | Padding.Top = 10
8 | Padding.Right = 10
9 | Padding.Bottom = 10
10 | Position = poMainFormCenter
11 | StyleElements = [seFont, seClient, seBorder]
12 | ExplicitWidth = 378
13 | ExplicitHeight = 124
14 | DesignSize = (
15 | 362
16 | 85)
17 | TextHeight = 13
18 | object txtComment: TLabel
19 | AlignWithMargins = True
20 | Left = 13
21 | Top = 13
22 | Width = 336
23 | Height = 13
24 | Align = alTop
25 | AutoSize = False
26 | Caption = #1048#1084#1087#1086#1088#1090#1080#1088#1091#1077#1084'...'
27 | EllipsisPosition = epEndEllipsis
28 | ExplicitLeft = 10
29 | ExplicitTop = 10
30 | ExplicitWidth = 79
31 | end
32 | object ProgressBar: TProgressBar
33 | Left = 10
34 | Top = 29
35 | Width = 342
36 | Height = 17
37 | Align = alTop
38 | TabOrder = 0
39 | end
40 | object btnCancel: TButton
41 | Left = 257
42 | Top = 50
43 | Width = 75
44 | Height = 25
45 | Anchors = [akRight, akBottom]
46 | Cancel = True
47 | Caption = #1054#1090#1084#1077#1085#1072
48 | Default = True
49 | TabOrder = 1
50 | OnClick = btnCancelClick
51 | end
52 | end
53 |
--------------------------------------------------------------------------------
/Utils/MHLSQLiteExt/stdafx.h:
--------------------------------------------------------------------------------
1 | /* *****************************************************************************
2 | *
3 | * MyHomeLib SQLite extension library
4 | *
5 | * Copyright (C) 2010 Nick Rymanov (nrymanov@gmail.com)
6 | *
7 | * Author(s) Nick Rymanov (nrymanov@gmail.com)
8 | * Created 14.09.2010
9 | *
10 | * This program is free software: you can redistribute it and/or modify
11 | * it under the terms of the GNU General Public License as published by
12 | * the Free Software Foundation, either version 3 of the License, or
13 | * (at your option) any later version.
14 | *
15 | * This program is distributed in the hope that it will be useful,
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 | * GNU General Public License for more details.
19 | *
20 | * You should have received a copy of the GNU General Public License
21 | * along with this program. If not, see .
22 | *
23 | * $Id: stdafx.h 757 2010-09-15 05:22:46Z nrymanov@gmail.com $
24 | *
25 | * History
26 | *
27 | ****************************************************************************** */
28 |
29 | #pragma once
30 |
31 | #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
32 | #include
33 |
34 | #include
35 |
--------------------------------------------------------------------------------
/Program/Wizards/NewCollection/frame_NCWWelcom.dfm:
--------------------------------------------------------------------------------
1 | inherited frameNCWWelcom: TframeNCWWelcom
2 | inherited Panel8: TPanel
3 | StyleElements = [seFont, seClient, seBorder]
4 | end
5 | inherited Panel9: TPanel
6 | StyleElements = [seFont, seClient, seBorder]
7 | inherited lblTitle: TLabel
8 | Width = 293
9 | Caption = #1044#1086#1073#1088#1086' '#1087#1086#1078#1072#1083#1086#1074#1072#1090#1100' '#1074' '#1084#1072#1089#1090#1077#1088' '#1089#1086#1079#1076#1072#1085#1080#1103' '#13#10#1082#1086#1083#1083#1077#1082#1094#1080#1080' MyHomeLib!'
10 | StyleElements = [seFont, seClient, seBorder]
11 | ExplicitWidth = 264
12 | end
13 | inherited lblSubTitle: TLabel
14 | Width = 286
15 | Height = 30
16 | Caption =
17 | #1069#1090#1086#1090' '#1084#1072#1089#1090#1077#1088' '#1087#1086#1084#1086#1078#1077#1090' '#1074#1072#1084' '#1089#1086#1079#1076#1072#1090#1100' '#1085#1086#1074#1091#1102' '#1080#1083#1080#13#10#1087#1086#1076#1082#1083#1102#1095#1080#1090#1100' '#1089#1091#1097#1077#1089#1090#1074#1091#1102#1097 +
18 | #1091#1102' '#1082#1086#1083#1083#1077#1082#1094#1080#1102'.'
19 | StyleElements = [seFont, seClient, seBorder]
20 | ExplicitTop = 62
21 | ExplicitWidth = 250
22 | ExplicitHeight = 30
23 | end
24 | inherited lblPageHint: TLabel
25 | Width = 286
26 | StyleElements = [seFont, seClient, seBorder]
27 | end
28 | end
29 | end
30 |
--------------------------------------------------------------------------------
/Components/MHLComponents/MHLComponents_Register.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Author(s) Nick Rymanov (nrymanov@gmail.com)
8 | * Created 15.04.2010
9 | * Description
10 | *
11 | * $Id: MHLComponents_Register.pas 818 2010-09-28 10:23:48Z nrymanov@gmail.com $
12 | *
13 | * History
14 | *
15 | ****************************************************************************** *)
16 |
17 | unit MHLComponents_Register;
18 |
19 | interface
20 |
21 | uses
22 | Classes;
23 |
24 | procedure Register;
25 |
26 | implementation
27 |
28 | uses
29 | files_list,
30 | unit_StaticTip,
31 | unit_AutoCompleteEdit,
32 | MHLLinkLabel,
33 | MHLSplitter,
34 | BookTreeView,
35 | BookInfoPanel,
36 | MHLSimplePanel,
37 | MHLButtonedEdit,
38 | FBDAuthorTable,
39 | FBDDocument;
40 |
41 | const
42 | PAGE_NAME = 'MHLComponents';
43 |
44 | procedure Register;
45 | begin
46 | RegisterComponents(
47 | PAGE_NAME,
48 | [
49 | TFilesList,
50 | TMHLStaticTip,
51 | TMHLAutoCompleteEdit,
52 | TMHLLinkLabel,
53 | TMHLSplitter,
54 | TMHLSimplePanel,
55 | TBookTree,
56 | TInfoPanel,
57 | TMHLButtonedEdit,
58 | TFBDAuthorTable,
59 | TFBDDocument
60 | ]
61 | );
62 | end;
63 |
64 | end.
65 |
66 |
--------------------------------------------------------------------------------
/Program/Wizards/Base/frame_InteriorPageBase.dfm:
--------------------------------------------------------------------------------
1 | inherited InteriorPageBase: TInteriorPageBase
2 | object pnTitle: TPanel
3 | Left = 0
4 | Top = 0
5 | Width = 320
6 | Height = 56
7 | Align = alTop
8 | AutoSize = True
9 | BevelEdges = [beBottom]
10 | BevelKind = bkTile
11 | BevelOuter = bvNone
12 | Color = clWhite
13 | ParentBackground = False
14 | TabOrder = 0
15 | object lblTitle: TLabel
16 | AlignWithMargins = True
17 | Left = 14
18 | Top = 7
19 | Width = 141
20 | Height = 13
21 | Margins.Left = 14
22 | Margins.Top = 7
23 | Margins.Right = 14
24 | Margins.Bottom = 0
25 | Align = alTop
26 | Caption = '<'#1047#1072#1075#1086#1083#1086#1074#1086#1082' '#1089#1090#1088#1072#1085#1080#1094#1099'>'
27 | Font.Charset = DEFAULT_CHARSET
28 | Font.Color = clWindowText
29 | Font.Height = -11
30 | Font.Name = 'Tahoma'
31 | Font.Style = [fsBold]
32 | ParentFont = False
33 | end
34 | object lblSubTitle: TLabel
35 | AlignWithMargins = True
36 | Left = 28
37 | Top = 27
38 | Width = 151
39 | Height = 15
40 | Margins.Left = 28
41 | Margins.Top = 7
42 | Margins.Right = 7
43 | Margins.Bottom = 14
44 | Align = alTop
45 | Caption = '<'#1055#1086#1076#1079#1072#1075#1086#1083#1086#1074#1086#1082' '#1089#1090#1088#1072#1085#1080#1094#1099'>'
46 | end
47 | end
48 | end
49 |
--------------------------------------------------------------------------------
/Program/Forms/frm_search.dfm:
--------------------------------------------------------------------------------
1 | object frmBookSearch: TfrmBookSearch
2 | Left = 0
3 | Top = 0
4 | AlphaBlend = True
5 | AlphaBlendValue = 200
6 | BorderStyle = bsNone
7 | Caption = 'frmBookSearch'
8 | ClientHeight = 58
9 | ClientWidth = 258
10 | Color = clBtnFace
11 | CustomTitleBar.Height = 5
12 | Font.Charset = DEFAULT_CHARSET
13 | Font.Color = clWindowText
14 | Font.Height = -11
15 | Font.Name = 'Tahoma'
16 | Font.Style = []
17 | GlassFrame.Left = 5
18 | GlassFrame.Top = 5
19 | GlassFrame.Right = 5
20 | GlassFrame.Bottom = 5
21 | KeyPreview = True
22 | Position = poMainFormCenter
23 | OnCreate = FormCreate
24 | OnKeyDown = FormKeyDown
25 | TextHeight = 13
26 | object RzPanel1: TMHLSimplePanel
27 | Left = 0
28 | Top = 0
29 | Width = 258
30 | Height = 58
31 | Align = alClient
32 | BorderWidth = 5
33 | TabOrder = 0
34 | object Label1: TLabel
35 | AlignWithMargins = True
36 | Left = 8
37 | Top = 8
38 | Width = 242
39 | Height = 13
40 | Align = alTop
41 | Caption = #1055#1086#1080#1089#1082' '#1087#1086' '#1085#1072#1079#1074#1072#1085#1080#1102
42 | ExplicitWidth = 98
43 | end
44 | object edText: TEdit
45 | AlignWithMargins = True
46 | Left = 8
47 | Top = 27
48 | Width = 242
49 | Height = 21
50 | Align = alTop
51 | TabOrder = 0
52 | OnChange = edTextChange
53 | OnKeyDown = edTextKeyDown
54 | end
55 | end
56 | end
57 |
--------------------------------------------------------------------------------
/Program/Wizards/Base/frame_DecorativePageBase.pas:
--------------------------------------------------------------------------------
1 | {******************************************************************************}
2 | { }
3 | { MyHomeLib }
4 | { }
5 | { Version 0.9 }
6 | { 20.08.2008 }
7 | { Copyright (c) Oleksiy Penkov oleksiy.penkov@gmail.com }
8 | { }
9 | { @author Nick Rymanov nrymanov@gmail.com }
10 | { }
11 | {******************************************************************************}
12 |
13 | unit frame_DecorativePageBase;
14 |
15 | interface
16 |
17 | uses
18 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
19 | Dialogs, StdCtrls, ExtCtrls, frame_WizardPageBase;
20 |
21 | type
22 | TDecorativePageBase = class(TWizardPageBase)
23 | Panel8: TPanel;
24 | Panel9: TPanel;
25 | lblTitle: TLabel;
26 | lblSubTitle: TLabel;
27 | lblPageHint: TLabel;
28 | private
29 | public
30 | end;
31 |
32 | implementation
33 |
34 | {$R *.dfm}
35 |
36 | { TDecorativePageBase }
37 |
38 | end.
39 |
40 |
--------------------------------------------------------------------------------
/Program/Wizards/NewCollection/frame_NCWFinish.dfm:
--------------------------------------------------------------------------------
1 | inherited frameNCWFinish: TframeNCWFinish
2 | inherited Panel8: TPanel
3 | StyleElements = [seFont, seClient, seBorder]
4 | end
5 | inherited Panel9: TPanel
6 | StyleElements = [seFont, seClient, seBorder]
7 | inherited lblTitle: TLabel
8 | Width = 293
9 | Caption = #1052#1072#1089#1090#1077#1088' '#1089#1086#1079#1076#1072#1085#1080#1103' '#1082#1086#1083#1083#1077#1082#1094#1080#1081' '#1091#1089#1087#1077#1096#1085#1086' '#1079#1072#1074#1077#1088#1096#1080#1083' '#1088#1072#1073#1086#1090#1091'.'
10 | StyleElements = [seFont, seClient, seBorder]
11 | ExplicitWidth = 258
12 | end
13 | inherited lblSubTitle: TLabel
14 | Width = 286
15 | Height = 30
16 | Caption =
17 | #1042#1099' '#1084#1086#1078#1077#1090#1077' '#1085#1072#1095#1072#1090#1100' '#1080#1089#1087#1086#1083#1100#1079#1086#1074#1072#1090#1100' '#1085#1086#1074#1091#1102' '#1082#1086#1083#1083#1077#1082#1094#1080#1102' '#1089#1088#1072#1079#1091' '#1087#1086#1089#1083#1077' '#1079#1072#1082#1088#1099#1090 +
18 | #1080#1103' '#1101#1090#1086#1075#1086' '#1084#1072#1089#1090#1077#1088#1072'.'
19 | StyleElements = [seFont, seClient, seBorder]
20 | ExplicitTop = 62
21 | ExplicitWidth = 284
22 | ExplicitHeight = 30
23 | end
24 | inherited lblPageHint: TLabel
25 | Width = 286
26 | Caption = ''
27 | StyleElements = [seFont, seClient, seBorder]
28 | ExplicitWidth = 3
29 | end
30 | end
31 | end
32 |
--------------------------------------------------------------------------------
/Program/ImportImpl/unit_Export.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Author(s) Nick Rymanov nrymanov@gmail.com
8 | * Oleksiy Penkov oleksiy.penkov@gmail.com
9 | * Created 22.02.2010
10 | * Description
11 | *
12 | * $Id: unit_Export.pas 821 2010-09-29 05:46:48Z nrymanov@gmail.com $
13 | *
14 | * History
15 | * NickR 02.03.2010 Код переформатирован
16 | * NickR 08.04.2010 Убраны ненужные зависимости
17 | *
18 | ****************************************************************************** *)
19 |
20 | unit unit_Export;
21 |
22 | interface
23 |
24 | procedure Export2INPX(const CollectionID: Integer; const FileName: string);
25 |
26 | implementation
27 |
28 | uses
29 | Forms,
30 | unit_ExportINPXThread,
31 | frm_ExportProgressForm;
32 |
33 | procedure Export2INPX(const CollectionID: Integer; const FileName: string);
34 | var
35 | worker: TExport2INPXThread;
36 | frmProgress: TExportProgressForm;
37 | begin
38 | worker := TExport2INPXThread.Create(CollectionID, FileName);
39 | try
40 | frmProgress := TExportProgressForm.Create(Application);
41 | try
42 | frmProgress.WorkerThread := worker;
43 | frmProgress.ShowModal;
44 | finally
45 | frmProgress.Free;
46 | end;
47 | finally
48 | worker.Free;
49 | end;
50 | end;
51 |
52 | end.
53 |
54 |
--------------------------------------------------------------------------------
/Utils/MHLSQLiteExt/stdafx.cpp:
--------------------------------------------------------------------------------
1 | /* *****************************************************************************
2 | *
3 | * MyHomeLib SQLite extension library
4 | *
5 | * Copyright (C) 2010 Nick Rymanov (nrymanov@gmail.com)
6 | *
7 | * Author(s) Nick Rymanov (nrymanov@gmail.com)
8 | * Created 14.09.2010
9 | *
10 | * This program is free software: you can redistribute it and/or modify
11 | * it under the terms of the GNU General Public License as published by
12 | * the Free Software Foundation, either version 3 of the License, or
13 | * (at your option) any later version.
14 | *
15 | * This program is distributed in the hope that it will be useful,
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 | * GNU General Public License for more details.
19 | *
20 | * You should have received a copy of the GNU General Public License
21 | * along with this program. If not, see .
22 | *
23 | * $Id: stdafx.cpp 757 2010-09-15 05:22:46Z nrymanov@gmail.com $
24 | *
25 | * History
26 | *
27 | ****************************************************************************** */
28 |
29 | // stdafx.cpp : source file that includes just the standard includes
30 | // MHLSQLiteExt.pch will be the pre-compiled header
31 | // stdafx.obj will contain the pre-compiled type information
32 |
33 | #include "stdafx.h"
34 |
35 | // TODO: reference any additional headers you need in STDAFX.H
36 | // and not in this file
37 |
--------------------------------------------------------------------------------
/Program/Forms/Editors/frm_EditAuthorEx.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Authors Oleksiy Penkov oleksiy.penkov@gmail.com
8 | * Nick Rymanov nrymanov@gmail.com
9 | * Created 20.08.2008
10 | * Description
11 | *
12 | * $Id: frm_EditAuthorEx.pas 1029 2011-05-30 07:31:14Z koreec $
13 | *
14 | * History
15 | *
16 | ****************************************************************************** *)
17 |
18 | unit frm_EditAuthorEx;
19 |
20 | interface
21 |
22 | uses
23 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
24 | Dialogs, frm_edit_author, StdCtrls, ExtCtrls;
25 |
26 | type
27 | TfrmEditAuthorDataEx = class(TfrmEditAuthorData)
28 | gbAddNew: TGroupBox;
29 | cbAddNew: TCheckBox;
30 | cbSaveLinks: TCheckBox;
31 | private
32 | function GetAddNewState: Boolean;
33 | function GetSaveLinks: Boolean;
34 | public
35 | property AddNew: Boolean read GetAddNewState;
36 | property SaveLinks: Boolean read GetSaveLinks;
37 | end;
38 |
39 | var
40 | frmEditAuthorDataEx: TfrmEditAuthorDataEx;
41 |
42 | implementation
43 |
44 | {$R *.dfm}
45 |
46 | function TfrmEditAuthorDataEx.GetAddNewState: boolean;
47 | begin
48 | Result := cbAddNew.Checked;
49 | end;
50 |
51 | function TfrmEditAuthorDataEx.GetSaveLinks: boolean;
52 | begin
53 | Result := cbSaveLinks.Checked;
54 | end;
55 |
56 | end.
57 |
--------------------------------------------------------------------------------
/Utils/MHLSQLiteExt/ReadMe.txt:
--------------------------------------------------------------------------------
1 | /* *****************************************************************************
2 | *
3 | * MyHomeLib SQLite extension library
4 | *
5 | * Copyright (C) 2010 Nick Rymanov (nrymanov@gmail.com)
6 | *
7 | * Author(s) Nick Rymanov (nrymanov@gmail.com)
8 | * Created 14.09.2010
9 | *
10 | * This program is free software: you can redistribute it and/or modify
11 | * it under the terms of the GNU General Public License as published by
12 | * the Free Software Foundation, either version 3 of the License, or
13 | * (at your option) any later version.
14 | *
15 | * This program is distributed in the hope that it will be useful,
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 | * GNU General Public License for more details.
19 | *
20 | * You should have received a copy of the GNU General Public License
21 | * along with this program. If not, see .
22 | *
23 | * $Id: ReadMe.txt 757 2010-09-15 05:22:46Z nrymanov@gmail.com $
24 | *
25 | * History
26 | *
27 | ****************************************************************************** */
28 |
29 | Как собрать проект.
30 |
31 | 1. Для сборки проекта используется Microsoft Visual C++ 2010 (Express).
32 | 2. Предварительно скачайте исходные тексты SQLite (http://www.sqlite.org/download.html) в произвольную папку.
33 | 3. Переменная среды SQLITEDIR должна содержать путь к этой папке (set SQLITEDIR=C:\SQLite3\Source).
34 | 4. Откройте проект, установите желаемую конфигурацию и собирайте.
35 |
--------------------------------------------------------------------------------
/Program/Wizards/NewCollection/frame_NCWWelcom.pas:
--------------------------------------------------------------------------------
1 | {******************************************************************************}
2 | { }
3 | { MyHomeLib }
4 | { }
5 | { Version 0.9 }
6 | { 20.08.2008 }
7 | { Copyright (c) Oleksiy Penkov oleksiy.penkov@gmail.com }
8 | { }
9 | { @author Nick Rymanov nrymanov@gmail.com }
10 | { }
11 | {******************************************************************************}
12 |
13 | unit frame_NCWWelcom;
14 |
15 | interface
16 |
17 | uses
18 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
19 | Dialogs, frame_WizardPageBase, frame_DecorativePageBase, StdCtrls, ExtCtrls;
20 |
21 | type
22 | TframeNCWWelcom = class(TDecorativePageBase)
23 | private
24 | { Private declarations }
25 | public
26 | function PageButtons: TWizardButtons; override;
27 | end;
28 |
29 | var
30 | frameNCWWelcom: TframeNCWWelcom;
31 |
32 | implementation
33 |
34 | {$R *.dfm}
35 |
36 | { TframeNCWelcom }
37 |
38 | function TframeNCWWelcom.PageButtons: TWizardButtons;
39 | begin
40 | Result := [wbGoNext, wbCancel];
41 | end;
42 |
43 | end.
44 |
45 |
--------------------------------------------------------------------------------
/Utils/MHLSQLiteExt/dllmain.cpp:
--------------------------------------------------------------------------------
1 | /* *****************************************************************************
2 | *
3 | * MyHomeLib SQLite extension library
4 | *
5 | * Copyright (C) 2010 Nick Rymanov (nrymanov@gmail.com)
6 | *
7 | * Author(s) Nick Rymanov (nrymanov@gmail.com)
8 | * Created 14.09.2010
9 | *
10 | * This program is free software: you can redistribute it and/or modify
11 | * it under the terms of the GNU General Public License as published by
12 | * the Free Software Foundation, either version 3 of the License, or
13 | * (at your option) any later version.
14 | *
15 | * This program is distributed in the hope that it will be useful,
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 | * GNU General Public License for more details.
19 | *
20 | * You should have received a copy of the GNU General Public License
21 | * along with this program. If not, see .
22 | *
23 | * $Id: dllmain.cpp 757 2010-09-15 05:22:46Z nrymanov@gmail.com $
24 | *
25 | * History
26 | *
27 | ****************************************************************************** */
28 |
29 | #include "stdafx.h"
30 |
31 | BOOL
32 | APIENTRY
33 | DllMain(
34 | HMODULE hModule,
35 | DWORD ul_reason_for_call,
36 | LPVOID lpReserved
37 | )
38 | {
39 | switch (ul_reason_for_call)
40 | {
41 | case DLL_PROCESS_ATTACH:
42 | case DLL_THREAD_ATTACH:
43 | case DLL_THREAD_DETACH:
44 | case DLL_PROCESS_DETACH:
45 | break;
46 | }
47 | return TRUE;
48 | }
49 |
50 |
--------------------------------------------------------------------------------
/Program/Wizards/NewCollection/frame_NCWFinish.pas:
--------------------------------------------------------------------------------
1 | {******************************************************************************}
2 | { }
3 | { MyHomeLib }
4 | { }
5 | { Version 0.9 }
6 | { 20.08.2008 }
7 | { Copyright (c) Oleksiy Penkov oleksiy.penkov@gmail.com }
8 | { }
9 | { @author Nick Rymanov nrymanov@gmail.com }
10 | { }
11 | {******************************************************************************}
12 |
13 | unit frame_NCWFinish;
14 |
15 | interface
16 |
17 | uses
18 | Windows,
19 | Messages,
20 | Variants,
21 | Classes,
22 | Graphics,
23 | Controls,
24 | Forms,
25 | Dialogs,
26 | frame_WizardPageBase,
27 | frame_DecorativePageBase,
28 | StdCtrls, ExtCtrls;
29 |
30 | type
31 | TframeNCWFinish = class(TDecorativePageBase)
32 | private
33 | { Private declarations }
34 | public
35 | function PageButtons: TWizardButtons; override;
36 | end;
37 |
38 | var
39 | frameNCWFinish: TframeNCWFinish;
40 |
41 | implementation
42 |
43 | {$R *.dfm}
44 |
45 | { TframeNCWFinish }
46 |
47 | function TframeNCWFinish.PageButtons: TWizardButtons;
48 | begin
49 | Result := [wbFinish];
50 | end;
51 |
52 | end.
53 |
54 |
--------------------------------------------------------------------------------
/Program/Units/unit_Messages.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Author(s) Nick Rymanov (nrymanov@gmail.com)
8 | * Created 12.02.2010
9 | * Description
10 | *
11 | * $Id: unit_Messages.pas 588 2010-08-20 01:15:40Z eg_ $
12 | *
13 | * History
14 | * NickR 15.02.2010 Код переформатирован
15 | *
16 | ****************************************************************************** *)
17 |
18 | unit unit_Messages;
19 |
20 | interface
21 |
22 | uses
23 | Windows,
24 | Messages,
25 | unit_Globals;
26 |
27 | const
28 | WM_MHL_BASE = WM_APP + $0500;
29 |
30 | WM_MHL_CHANGELOCALSTATUS = WM_MHL_BASE + 0;
31 |
32 | type
33 | PBookLocalStatus = ^TBookLocalStatus;
34 | TBookLocalStatus = record
35 | BookKey: TBookKey;
36 | LocalStatus: Boolean;
37 | end;
38 |
39 | TLocalStatusChangedMessage = packed record
40 | Msg: Cardinal;
41 | Unused: WPARAM;
42 | Params: PBookLocalStatus;
43 | Result: Longint;
44 | end;
45 |
46 | procedure BookLocalStatusChanged(
47 | const BookKey: TBookKey;
48 | LocalStatus: Boolean
49 | );
50 |
51 | implementation
52 |
53 | uses
54 | Forms;
55 |
56 | procedure BookLocalStatusChanged(
57 | const BookKey: TBookKey;
58 | LocalStatus: Boolean
59 | );
60 | var
61 | Param: PBookLocalStatus;
62 | begin
63 | New(Param);
64 | Param^.BookKey := BookKey;
65 | Param^.LocalStatus := LocalStatus;
66 |
67 | PostMessage(
68 | Application.MainFormHandle,
69 | WM_MHL_CHANGELOCALSTATUS,
70 | 0,
71 | LPARAM(Param)
72 | );
73 | end;
74 |
75 | end.
76 |
--------------------------------------------------------------------------------
/Program/Wizards/Base/frm_MHLWizardBase.dfm:
--------------------------------------------------------------------------------
1 | object MHLWizardBase: TMHLWizardBase
2 | Left = 0
3 | Top = 0
4 | HelpContext = 136
5 | BorderStyle = bsDialog
6 | Caption = 'MyHomeLib - '#1052#1072#1089#1090#1077#1088
7 | ClientHeight = 394
8 | ClientWidth = 520
9 | Color = clBtnFace
10 | Font.Charset = DEFAULT_CHARSET
11 | Font.Color = clWindowText
12 | Font.Height = -11
13 | Font.Name = 'Tahoma'
14 | Font.Style = []
15 | Position = poMainFormCenter
16 | Scaled = False
17 | OnCloseQuery = FormCloseQuery
18 | OnCreate = FormCreate
19 | TextHeight = 13
20 | object pnButtons: TPanel
21 | Left = 0
22 | Top = 353
23 | Width = 520
24 | Height = 41
25 | Align = alBottom
26 | BevelEdges = [beTop]
27 | BevelKind = bkTile
28 | BevelOuter = bvNone
29 | TabOrder = 0
30 | DesignSize = (
31 | 520
32 | 39)
33 | object btnCancel: TButton
34 | Left = 428
35 | Top = 8
36 | Width = 75
37 | Height = 25
38 | Anchors = [akTop, akRight]
39 | Cancel = True
40 | Caption = #1054#1090#1084#1077#1085#1072
41 | TabOrder = 0
42 | OnClick = OnCancel
43 | end
44 | object btnForward: TButton
45 | Left = 334
46 | Top = 8
47 | Width = 75
48 | Height = 25
49 | Anchors = [akTop, akRight]
50 | Caption = #1042#1087#1077#1088#1105#1076' >'
51 | TabOrder = 1
52 | OnClick = DoChangePage
53 | end
54 | object btnBackward: TButton
55 | Left = 253
56 | Top = 8
57 | Width = 75
58 | Height = 25
59 | Anchors = [akTop, akRight]
60 | Caption = '< '#1053#1072#1079#1072#1076
61 | TabOrder = 2
62 | OnClick = DoChangePage
63 | end
64 | end
65 | end
66 |
--------------------------------------------------------------------------------
/Components/MHLComponents/MHLComponents.dpk:
--------------------------------------------------------------------------------
1 | package MHLComponents;
2 |
3 | {$R *.res}
4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
5 | {$ALIGN 8}
6 | {$ASSERTIONS ON}
7 | {$BOOLEVAL OFF}
8 | {$DEBUGINFO OFF}
9 | {$EXTENDEDSYNTAX ON}
10 | {$IMPORTEDDATA ON}
11 | {$IOCHECKS ON}
12 | {$LOCALSYMBOLS OFF}
13 | {$LONGSTRINGS ON}
14 | {$OPENSTRINGS ON}
15 | {$OPTIMIZATION ON}
16 | {$OVERFLOWCHECKS OFF}
17 | {$RANGECHECKS OFF}
18 | {$REFERENCEINFO OFF}
19 | {$SAFEDIVIDE OFF}
20 | {$STACKFRAMES OFF}
21 | {$TYPEDADDRESS OFF}
22 | {$VARSTRINGCHECKS ON}
23 | {$WRITEABLECONST OFF}
24 | {$MINENUMSIZE 1}
25 | {$IMAGEBASE $400000}
26 | {$DEFINE RELEASE}
27 | {$ENDIF IMPLICITBUILDING}
28 | {$IMPLICITBUILD ON}
29 |
30 | requires
31 | rtl,
32 | vcl,
33 | xmlrtl,
34 | vclx,
35 | vclimg,
36 | IndyCore,
37 | IndySystem,
38 | IndyProtocols,
39 | soaprtl,
40 | {$IFDEF WIN32}
41 | VirtualTreesDD;
42 | {$ELSE}
43 | VirtualTreesDR;
44 | {$ENDIF}
45 |
46 | contains
47 | unit_StaticTip in 'unit_StaticTip.pas',
48 | files_list in 'files_list.pas',
49 | MHLComponents_Register in 'MHLComponents_Register.pas',
50 | unit_AutoCompleteEdit in 'unit_AutoCompleteEdit.pas',
51 | unit_MHLHelpers in 'unit_MHLHelpers.pas',
52 | fictionbook_21 in 'fictionbook_21.pas',
53 | unit_FB2Utils in 'unit_FB2Utils.pas',
54 | BookInfoPanel in 'BookInfoPanel.pas',
55 | MHLLinkLabel in 'MHLLinkLabel.pas',
56 | MHLSplitter in 'MHLSplitter.pas',
57 | BookTreeView in 'BookTreeView.pas',
58 | MHLSimplePanel in 'MHLSimplePanel.pas',
59 | MHLButtonedEdit in 'MHLButtonedEdit.pas',
60 | FBDDocument in 'FBDDocument.pas',
61 | fbd_xml in 'fbd_xml.pas',
62 | FBDAuthorTable in 'FBDAuthorTable.pas' {frmEditAuthorFull},
63 | unit_MHLArchiveHelpers in 'unit_MHLArchiveHelpers.pas';
64 |
65 | end.
66 |
--------------------------------------------------------------------------------
/Program/ImportImpl/frm_ImportProgressFormEx.dfm:
--------------------------------------------------------------------------------
1 | inherited ImportProgressFormEx: TImportProgressFormEx
2 | BorderIcons = [biSystemMenu, biMaximize]
3 | BorderStyle = bsSizeable
4 | ClientHeight = 371
5 | ClientWidth = 442
6 | Constraints.MinHeight = 200
7 | Constraints.MinWidth = 300
8 | StyleElements = [seFont, seClient, seBorder]
9 | OnCreate = FormCreate
10 | OnDestroy = FormDestroy
11 | ExplicitWidth = 458
12 | ExplicitHeight = 410
13 | TextHeight = 13
14 | inherited txtComment: TLabel
15 | Width = 416
16 | StyleElements = [seFont, seClient, seBorder]
17 | ExplicitWidth = 416
18 | end
19 | inherited ProgressBar: TProgressBar
20 | Width = 422
21 | TabOrder = 1
22 | ExplicitWidth = 422
23 | end
24 | inherited btnCancel: TButton
25 | Left = 346
26 | Top = 333
27 | TabOrder = 0
28 | ExplicitLeft = 346
29 | ExplicitTop = 333
30 | end
31 | object errorLog: TListView
32 | Left = 10
33 | Top = 52
34 | Width = 414
35 | Height = 275
36 | Anchors = [akLeft, akTop, akRight, akBottom]
37 | Columns = <
38 | item
39 | Width = 20
40 | end
41 | item
42 | AutoSize = True
43 | end>
44 | ColumnClick = False
45 | HoverTime = 65535
46 | RowSelect = True
47 | TabOrder = 2
48 | ViewStyle = vsReport
49 | end
50 | object btnSaveLog: TButton
51 | Left = 10
52 | Top = 333
53 | Width = 75
54 | Height = 25
55 | Anchors = [akLeft, akBottom]
56 | Caption = #1057#1086#1093#1088#1072#1085#1080#1090#1100
57 | TabOrder = 3
58 | Visible = False
59 | OnClick = btnSaveLogClick
60 | end
61 | object Timer: TTimer
62 | Enabled = False
63 | Interval = 10000
64 | OnTimer = TimerTimer
65 | Left = 216
66 | Top = 336
67 | end
68 | end
69 |
--------------------------------------------------------------------------------
/Program/Units/unit_Events.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Author(s) eg
8 | * Created 08.10.2010
9 | * Description
10 | *
11 | * $Id: unit_Events.pas 1100 2012-01-22 02:59:38Z koreec $
12 | *
13 | * History
14 | *
15 | ****************************************************************************** *)
16 |
17 | unit unit_Events;
18 |
19 | interface
20 |
21 | uses
22 | Windows,
23 | ComCtrls,
24 | unit_Globals;
25 |
26 | type
27 | TBookEvent = procedure(const BookRecord: TBookRecord) of object;
28 | TSelectBookEvent = procedure(MoveForward: Boolean) of object;
29 | TGetBookEvent = procedure(var BookRecord: TBookRecord) of object;
30 | TChangeStateEvent = procedure(State: Boolean) of object;
31 | TOnLocateBookEvent = procedure(const Text: string; MoveForward: Boolean) of object;
32 | TOnHelpEvent = function(Command: Word; Data: NativeInt; var CallHelp: Boolean): Boolean of object;
33 |
34 | TProgressOpenEvent = procedure of object;
35 | TProgressHintEvent = procedure (Style: TProgressBarStyle; State: TProgressBarState) of object;
36 | TProgressEvent = procedure (Percent: Integer) of object;
37 | TProgressCloseEvent = procedure of object;
38 | TProgressTeletypeEvent = procedure (const Msg: string; Severity: TTeletypeSeverity) of object;
39 | TProgressSetCommentEvent = procedure (const Msg: string) of object;
40 | TProgressShowMessageEvent = function (const Text: string; Flags: Longint = MB_OK): Integer of object;
41 |
42 | TProgressEvent2 = procedure(Current, Total: Integer) of object;
43 | TProgressSetCommentEvent2 = procedure(const Current, Total: string) of object;
44 |
45 | implementation
46 |
47 | end.
48 |
--------------------------------------------------------------------------------
/Program/Units/unit_MHL_strings.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Author(s) Nick Rymanov (nrymanov@gmail.com)
8 | * Created 12.02.2010
9 | * Description
10 | *
11 | * $Id: unit_MHL_strings.pas 748 2010-09-14 07:02:22Z nrymanov@gmail.com $
12 | *
13 | * History
14 | * NickR 15.02.2010 Код переформатирован
15 | *
16 | ****************************************************************************** *)
17 |
18 | unit unit_MHL_strings;
19 |
20 | interface
21 |
22 | resourcestring
23 | rstrMainUnableToCopy = 'Копирование книг из избранного невозможно.';
24 | rstrMainConnectToDb = 'Подключение БД...';
25 | rstrMainLoadingCollection = 'Загрузка коллекции...';
26 | rstrMainCheckUpdates = 'Проверка обновлений...';
27 |
28 | rstrCancelOperationWarningMsg = 'Вы действительно хотите прервать операцию?';
29 |
30 | rstrReadyMessage = 'Готово';
31 |
32 | //
33 | // Названия коллекций по-умолчанию
34 | //
35 | rstrLocalLibRusEcDefName = 'Локальная коллекция Либрусек';
36 | rstrOnlineLibRusEcDefName = 'Онлайн коллекция Либрусек';
37 | rstrOnlineGenesisDefName = 'Онлайн коллекция Genesis';
38 |
39 | rstrLocalLibRusEcDefLocation = 'librusec_local';
40 | rstrOnlineLibRusEcDefLocation = 'librusec_online';
41 | rstrOnlineGenesisDefLocation = 'genesis_online';
42 |
43 | //
44 | //
45 | //
46 | rstrBookProcessedMsg1 = 'Обработано книг: %u';
47 | rstrBookProcessedMsg2 = 'Обработано книг: %u из %u';
48 |
49 | //
50 | // Форма редактирования/создания FBD и пунк меню в главной форме
51 | //
52 | rstrEditFBD = 'Редактировать FBD';
53 | rstrConvert2FBD = 'Преобразовать FBD';
54 |
55 | implementation
56 |
57 | end.
58 |
--------------------------------------------------------------------------------
/Program/Forms/Editors/frm_EditAuthorEx.dfm:
--------------------------------------------------------------------------------
1 | inherited frmEditAuthorDataEx: TfrmEditAuthorDataEx
2 | ClientHeight = 195
3 | StyleElements = [seFont, seClient, seBorder]
4 | ExplicitHeight = 234
5 | TextHeight = 13
6 | inherited Label1: TLabel
7 | StyleElements = [seFont, seClient, seBorder]
8 | end
9 | inherited Label2: TLabel
10 | StyleElements = [seFont, seClient, seBorder]
11 | end
12 | inherited Label3: TLabel
13 | Width = 49
14 | Caption = #1054#1090#1095#1077#1089#1090#1074#1086
15 | StyleElements = [seFont, seClient, seBorder]
16 | ExplicitWidth = 49
17 | end
18 | inherited pnButtons: TPanel
19 | Top = 154
20 | TabOrder = 4
21 | StyleElements = [seFont, seClient, seBorder]
22 | ExplicitTop = 154
23 | inherited btnOk: TButton
24 | Left = 186
25 | ExplicitLeft = 186
26 | end
27 | inherited btnCancel: TButton
28 | Left = 267
29 | ExplicitLeft = 267
30 | end
31 | end
32 | object gbAddNew: TGroupBox [4]
33 | AlignWithMargins = True
34 | Left = 8
35 | Top = 91
36 | Width = 342
37 | Height = 61
38 | Caption = #1054#1087#1094#1080#1080
39 | TabOrder = 3
40 | object cbAddNew: TCheckBox
41 | Left = 17
42 | Top = 28
43 | Width = 85
44 | Height = 15
45 | Caption = '&'#1053#1086#1074#1099#1081' '#1072#1074#1090#1086#1088
46 | TabOrder = 0
47 | end
48 | object cbSaveLinks: TCheckBox
49 | Left = 158
50 | Top = 28
51 | Width = 108
52 | Height = 15
53 | Caption = #1057#1086#1093#1088#1072#1085#1080#1090#1100' '#1089#1074#1103#1079#1080
54 | TabOrder = 1
55 | end
56 | end
57 | inherited edFirstName: TEdit
58 | StyleElements = [seFont, seClient, seBorder]
59 | end
60 | inherited edLastName: TEdit
61 | StyleElements = [seFont, seClient, seBorder]
62 | end
63 | inherited edMiddleName: TEdit
64 | StyleElements = [seFont, seClient, seBorder]
65 | end
66 | end
67 |
--------------------------------------------------------------------------------
/Program/MHL.groupproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {03FBE2DA-0E6E-4A56-9500-1147B87C3C24}
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | Default.Personality.12
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/Program/ImportImpl/unit_CollectionWorkerThread.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Author(s) Nick Rymanov (nrymanov@gmail.com)
8 | * Created 20.08.2008
9 | * Description
10 | *
11 | * $Id: unit_CollectionWorkerThread.pas 840 2010-10-06 07:37:58Z nrymanov@gmail.com $
12 | *
13 | * History
14 | *
15 | ****************************************************************************** *)
16 |
17 | unit unit_CollectionWorkerThread;
18 |
19 | interface
20 |
21 | uses
22 | unit_WorkerThread,
23 | unit_Interfaces;
24 |
25 | type
26 | TCollectionWorker = class(TWorker)
27 | protected
28 | FCollectionID: Integer;
29 |
30 | protected
31 | //
32 | // эти поля будут инициализированы только в рабочем потоке
33 | //
34 | FSystemData: ISystemData;
35 | FCollection: IBookCollection;
36 | FCollectionRoot: string;
37 |
38 | procedure Initialize; override;
39 | procedure Uninitialize; override;
40 |
41 | public
42 | constructor Create(const CollectionID: Integer);
43 | end;
44 |
45 | implementation
46 |
47 | uses
48 | unit_Consts,
49 | dm_user;
50 |
51 | { TCollectionWorker }
52 |
53 | constructor TCollectionWorker.Create(const CollectionID: Integer);
54 | begin
55 | inherited Create;
56 | FCollectionID := CollectionID;
57 | end;
58 |
59 | procedure TCollectionWorker.Initialize;
60 | begin
61 | inherited Initialize;
62 |
63 | FSystemData := DMUser.GetSystemDBConnection;
64 | Assert(Assigned(FSystemData));
65 |
66 | if FCollectionID <> MHL_INVALID_ID then
67 | begin
68 | FCollection := FSystemData.GetCollection(FCollectionID);
69 | Assert(Assigned(FCollection));
70 | FCollectionRoot := FCollection.GetProperty(PROP_ROOTFOLDER);
71 | end;
72 | end;
73 |
74 | procedure TCollectionWorker.Uninitialize;
75 | begin
76 | FSystemData.ClearCollectionCache;
77 | inherited Uninitialize;
78 | end;
79 |
80 | end.
81 |
--------------------------------------------------------------------------------
/Program/Forms/Editors/frm_EditGroup.dfm:
--------------------------------------------------------------------------------
1 | object frmEditGroup: TfrmEditGroup
2 | Left = 0
3 | Top = 0
4 | AutoSize = True
5 | BorderStyle = bsDialog
6 | Caption = #1053#1086#1074#1072#1103' '#1075#1088#1091#1087#1087#1072
7 | ClientHeight = 94
8 | ClientWidth = 312
9 | Color = clBtnFace
10 | Font.Charset = DEFAULT_CHARSET
11 | Font.Color = clWindowText
12 | Font.Height = -11
13 | Font.Name = 'Tahoma'
14 | Font.Style = []
15 | Position = poMainFormCenter
16 | OnShow = FormShow
17 | TextHeight = 13
18 | object Label1: TLabel
19 | AlignWithMargins = True
20 | Left = 8
21 | Top = 10
22 | Width = 296
23 | Height = 13
24 | Margins.Left = 8
25 | Margins.Top = 10
26 | Margins.Right = 8
27 | Align = alTop
28 | Caption = #1053#1072#1079#1074#1072#1085#1080#1077' '#1075#1088#1091#1087#1087#1099':'
29 | ExplicitWidth = 92
30 | end
31 | object pnButtons: TPanel
32 | Left = 0
33 | Top = 53
34 | Width = 312
35 | Height = 41
36 | Align = alTop
37 | BevelOuter = bvNone
38 | Caption = 'pnButtons'
39 | ShowCaption = False
40 | TabOrder = 1
41 | DesignSize = (
42 | 312
43 | 41)
44 | object btnOk: TButton
45 | Left = 148
46 | Top = 10
47 | Width = 75
48 | Height = 25
49 | Anchors = [akTop, akRight]
50 | Caption = '&'#1057#1086#1093#1088#1072#1085#1080#1090#1100
51 | Default = True
52 | ModalResult = 1
53 | TabOrder = 0
54 | end
55 | object btnCancel: TButton
56 | Left = 229
57 | Top = 10
58 | Width = 75
59 | Height = 25
60 | Anchors = [akTop, akRight]
61 | Cancel = True
62 | Caption = '&'#1059#1076#1072#1083#1080#1090#1100
63 | ModalResult = 2
64 | TabOrder = 1
65 | end
66 | end
67 | object edGroupName: TEdit
68 | AlignWithMargins = True
69 | Left = 8
70 | Top = 29
71 | Width = 296
72 | Height = 21
73 | Margins.Left = 8
74 | Margins.Right = 8
75 | Align = alTop
76 | MaxLength = 255
77 | TabOrder = 0
78 | OnChange = edGroupNameChange
79 | end
80 | end
81 |
--------------------------------------------------------------------------------
/Program/DwnldImpl/frm_DownloadProgressForm.dfm:
--------------------------------------------------------------------------------
1 | inherited DownloadProgressForm: TDownloadProgressForm
2 | BorderStyle = bsDialog
3 | Caption = #1047#1072#1075#1088#1091#1079#1082#1072
4 | ClientHeight = 135
5 | ClientWidth = 428
6 | Position = poMainFormCenter
7 | StyleElements = [seFont, seClient, seBorder]
8 | ExplicitWidth = 444
9 | ExplicitHeight = 174
10 | TextHeight = 13
11 | object lblCurrent: TLabel
12 | AlignWithMargins = True
13 | Left = 15
14 | Top = 10
15 | Width = 398
16 | Height = 13
17 | Margins.Left = 15
18 | Margins.Top = 10
19 | Margins.Right = 15
20 | Align = alTop
21 | Caption = 'lblCurrent'
22 | Font.Charset = DEFAULT_CHARSET
23 | Font.Color = 8542779
24 | Font.Height = -11
25 | Font.Name = 'Tahoma'
26 | Font.Style = []
27 | ParentFont = False
28 | ExplicitWidth = 47
29 | end
30 | object lblTotal: TLabel
31 | AlignWithMargins = True
32 | Left = 15
33 | Top = 51
34 | Width = 398
35 | Height = 13
36 | Margins.Left = 15
37 | Margins.Right = 15
38 | Align = alTop
39 | Caption = 'lblCurrent'
40 | Font.Charset = DEFAULT_CHARSET
41 | Font.Color = 8542779
42 | Font.Height = -11
43 | Font.Name = 'Tahoma'
44 | Font.Style = []
45 | ParentFont = False
46 | ExplicitWidth = 47
47 | end
48 | object pbCurrent: TProgressBar
49 | AlignWithMargins = True
50 | Left = 15
51 | Top = 29
52 | Width = 398
53 | Height = 16
54 | Margins.Left = 15
55 | Margins.Right = 15
56 | Align = alTop
57 | TabOrder = 0
58 | end
59 | object pbTotal: TProgressBar
60 | AlignWithMargins = True
61 | Left = 15
62 | Top = 70
63 | Width = 398
64 | Height = 16
65 | Margins.Left = 15
66 | Margins.Right = 15
67 | Align = alTop
68 | TabOrder = 1
69 | end
70 | object btnCancel: TButton
71 | Left = 338
72 | Top = 98
73 | Width = 75
74 | Height = 25
75 | Caption = #1054#1090#1084#1077#1085#1072
76 | DoubleBuffered = True
77 | ParentDoubleBuffered = False
78 | TabOrder = 2
79 | OnClick = btnCancelClick
80 | end
81 | end
82 |
--------------------------------------------------------------------------------
/Program/Forms/frm_author_list.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Authors Oleksiy Penkov oleksiy.penkov@gmail.com
8 | * Nick Rymanov nrymanov@gmail.com
9 | *
10 | * $Id: frm_author_list.pas 543 2010-07-29 06:34:09Z nrymanov@gmail.com $
11 | *
12 | * History
13 | *
14 | ****************************************************************************** *)
15 |
16 | unit frm_author_list;
17 |
18 | interface
19 |
20 | uses
21 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
22 | Dialogs, VirtualTrees, ExtCtrls, StdCtrls;
23 |
24 | type
25 | TfrmAuthorList = class(TForm)
26 | tvAuthorList: TVirtualStringTree;
27 | pnButtons: TPanel;
28 | btnOk: TButton;
29 | btnCancel: TButton;
30 | procedure tvAuthorListGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
31 | TextType: TVSTTextType; var CellText: string);
32 | procedure tvAuthorListGetNodeDataSize(Sender: TBaseVirtualTree; var NodeDataSize: Integer);
33 | procedure tvAuthorListFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
34 | private
35 |
36 | public
37 |
38 | end;
39 |
40 | var
41 | frmAuthorList: TfrmAuthorList;
42 |
43 | implementation
44 |
45 | uses
46 | unit_Globals;
47 |
48 | {$R *.dfm}
49 |
50 | procedure TfrmAuthorList.tvAuthorListFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
51 | var
52 | Data: PAuthorData;
53 | begin
54 | Data := Sender.GetNodeData(Node);
55 | if Assigned(Data) then
56 | Finalize(Data^);
57 | end;
58 |
59 | procedure TfrmAuthorList.tvAuthorListGetNodeDataSize(Sender: TBaseVirtualTree; var NodeDataSize: Integer);
60 | begin
61 | NodeDataSize := SizeOf(TAuthorData);
62 | end;
63 |
64 | procedure TfrmAuthorList.tvAuthorListGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: string);
65 | var
66 | Data: PAuthorData;
67 | begin
68 | Data := tvAuthorList.GetNodeData(Node);
69 | CellText := Data^.GetFullName;
70 | end;
71 |
72 | end.
73 |
--------------------------------------------------------------------------------
/Program/Wizards/Base/frame_InteriorPageBase.pas:
--------------------------------------------------------------------------------
1 | {******************************************************************************}
2 | { }
3 | { MyHomeLib }
4 | { }
5 | { Version 0.9 }
6 | { 20.08.2008 }
7 | { Copyright (c) Oleksiy Penkov oleksiy.penkov@gmail.com }
8 | { }
9 | { @author Nick Rymanov nrymanov@gmail.com }
10 | { }
11 | {******************************************************************************}
12 |
13 | unit frame_InteriorPageBase;
14 |
15 | interface
16 |
17 | uses
18 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
19 | Dialogs, StdCtrls, ExtCtrls, frame_WizardPageBase;
20 |
21 | type
22 | TInteriorPageBase = class(TWizardPageBase)
23 | pnTitle: TPanel;
24 | lblTitle: TLabel;
25 | lblSubTitle: TLabel;
26 | private
27 | function GetSubTitle: string;
28 | function GetTitle: string;
29 | procedure SetSubTitle(const Value: string);
30 | procedure SetTitle(const Value: string);
31 |
32 | public
33 |
34 | property Title: string read GetTitle write SetTitle;
35 | property SubTitle: string read GetSubTitle write SetSubTitle;
36 | end;
37 |
38 | implementation
39 |
40 | {$R *.dfm}
41 |
42 | { TframeInteriorPageBase }
43 |
44 | function TInteriorPageBase.GetTitle: string;
45 | begin
46 | Result := lblTitle.Caption;
47 | end;
48 |
49 | procedure TInteriorPageBase.SetTitle(const Value: string);
50 | begin
51 | lblTitle.Caption := Value;
52 | end;
53 |
54 | function TInteriorPageBase.GetSubTitle: string;
55 | begin
56 | Result := lblSubTitle.Caption;
57 | end;
58 |
59 | procedure TInteriorPageBase.SetSubTitle(const Value: string);
60 | begin
61 | lblSubTitle.Caption := Value;
62 | end;
63 |
64 | end.
65 |
66 |
--------------------------------------------------------------------------------
/Program/Wizards/Base/frame_WizardPageBase.pas:
--------------------------------------------------------------------------------
1 | {******************************************************************************}
2 | { }
3 | { MyHomeLib }
4 | { }
5 | { Version 0.9 }
6 | { 20.08.2008 }
7 | { Copyright (c) Oleksiy Penkov oleksiy.penkov@gmail.com }
8 | { }
9 | { @author Nick Rymanov nrymanov@gmail.com }
10 | { }
11 | {******************************************************************************}
12 |
13 | unit frame_WizardPageBase;
14 |
15 | interface
16 |
17 | uses
18 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
19 | Dialogs, unit_NCWParams;
20 |
21 | type
22 | TWizardButton = (wbGoPrev, wbGoNext, wbCancel, wbFinish);
23 | TWizardButtons = set of TWizardButton;
24 |
25 | TWizardPageBase = class(TFrame)
26 | protected
27 | FPParams: PNCWParams;
28 |
29 | public
30 | procedure Initialize(PParams: PNCWParams); virtual;
31 | function Activate(LoadData: Boolean): Boolean; virtual;
32 | function Deactivate(CheckData: Boolean): Boolean; virtual;
33 |
34 | function PageButtons: TWizardButtons; virtual;
35 | end;
36 |
37 | TWizardPageClass = class of TWizardPageBase;
38 |
39 | implementation
40 |
41 | {$R *.dfm}
42 |
43 | procedure TWizardPageBase.Initialize(PParams: PNCWParams);
44 | begin
45 | Assert(Assigned(PParams));
46 | FPParams := PParams;
47 | end;
48 |
49 | function TWizardPageBase.PageButtons: TWizardButtons;
50 | begin
51 | Result := [wbGoPrev, wbGoNext, wbCancel];
52 | end;
53 |
54 | function TWizardPageBase.Activate(LoadData: Boolean): Boolean;
55 | begin
56 | Result := True;
57 | end;
58 |
59 | function TWizardPageBase.Deactivate(CheckData: Boolean): Boolean;
60 | begin
61 | Result := True;
62 | end;
63 |
64 | end.
65 |
66 |
--------------------------------------------------------------------------------
/Program/ImportImpl/unit_Import.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Author(s) Nick Rymanov nrymanov@gmail.com
8 | * Oleksiy Penkov oleksiy.penkov@gmail.com
9 | * Created 22.02.2010
10 | * Description
11 | *
12 | * $Id: unit_Import.pas 1105 2012-02-02 08:24:58Z koreec $
13 | *
14 | * History
15 | * NickR 02.03.2010 Код переформатирован
16 | * NickR 08.04.2010 Убраны ненужные зависимости
17 | *
18 | ****************************************************************************** *)
19 |
20 | unit unit_Import;
21 |
22 | interface
23 |
24 | uses
25 | unit_Globals,
26 | unit_Interfaces,
27 | unit_MHLArchiveHelpers;
28 |
29 | procedure ImportFB2(const CollectionID: Integer; const ArchiveFormat: TArchiveFormat);
30 |
31 | procedure ImportFBD(const CollectionID: Integer);
32 |
33 | implementation
34 |
35 | uses
36 | Forms,
37 | unit_ImportFB2Thread,
38 | unit_ImportFBDThread,
39 | frm_ImportProgressForm,
40 | frm_ImportProgressFormEx,
41 | unit_Consts;
42 |
43 | procedure ImportFB2;
44 | var
45 | worker: TImportFB2Thread;
46 | frmProgress: TImportProgressFormEx;
47 | begin
48 | worker := TImportFB2Thread.Create(CollectionID, ArchiveFormat);
49 | try
50 | frmProgress := TImportProgressFormEx.Create(Application);
51 | try
52 | frmProgress.WorkerThread := worker;
53 | frmProgress.btnSaveLog.Visible := True;
54 | frmProgress.ShowModal;
55 | finally
56 | frmProgress.Free;
57 | end;
58 | finally
59 | worker.Free;
60 | end;
61 | end;
62 |
63 |
64 |
65 | procedure ImportFBD(const CollectionID: Integer);
66 | var
67 | worker: TImportFBDThread;
68 | frmProgress: TImportProgressFormEx;
69 | begin
70 | worker := TImportFBDThread.Create(CollectionID);
71 | try
72 | frmProgress := TImportProgressFormEx.Create(Application);
73 | try
74 | frmProgress.WorkerThread := worker;
75 | frmProgress.btnSaveLog.Visible := True;
76 | frmProgress.ShowModal;
77 | finally
78 | frmProgress.Free;
79 | end;
80 | finally
81 | worker.Free;
82 | end;
83 | end;
84 |
85 | end.
86 |
87 |
--------------------------------------------------------------------------------
/Program/Units/unit_PrevInst.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Author(s) Oleksiy Penkov oleksiy.penkov@gmail.com
8 | * Created 12.02.2010
9 | * Description
10 | *
11 | * $Id: unit_PrevInst.pas 543 2010-07-29 06:34:09Z nrymanov@gmail.com $
12 | *
13 | * History
14 | * NickR 15.02.2010 Код переформатирован
15 | *
16 | ****************************************************************************** *)
17 |
18 | unit unit_PrevInst;
19 |
20 | interface
21 |
22 | uses
23 | Windows,
24 | Forms,
25 | StrUtils,
26 | SysUtils;
27 |
28 | function FirstHinstanceRunning(RunMode: Integer = 0): boolean;
29 |
30 | implementation
31 |
32 | function FirstHinstanceRunning(RunMode: Integer = 0): boolean;
33 | const
34 | MemFileSize = 127;
35 |
36 | var
37 | MemHnd: HWND;
38 | MemFileName: string;
39 | lpBaseAddress: ^HWND;
40 | FirstAppHandle: HWND;
41 |
42 | begin
43 | Result := False;
44 | MemFileName := Application.ExeName;
45 | case RunMode of
46 | 0: MemFileName := AnsiReplaceText(MemFileName, '\', '/');
47 | 1: MemFileName := ExtractFileName(MemFileName);
48 | else
49 | Exit;
50 | end;
51 |
52 | // если FileMapping есть - то происходит OpenFileMapping
53 | MemHnd := CreateFileMapping(HWND($FFFFFFFF), nil, PAGE_READWRITE, 0, MemFileSize, PChar(MemFileName));
54 | if GetLastError <> ERROR_ALREADY_EXISTS then
55 | begin
56 | if MemHnd <> 0 then
57 | begin
58 | lpBaseAddress := MapViewOfFile(MemHnd, FILE_MAP_WRITE, 0, 0, 0);
59 | if lpBaseAddress <> nil then
60 | lpBaseAddress^ := Application.Handle;
61 | end;
62 | end
63 | else
64 | begin
65 | // MemFileHnd := OpenFileMapping(FILE_MAP_READ, False, PChar(MemFileName));
66 | Result := True;
67 | if MemHnd <> 0 then
68 | begin
69 | lpBaseAddress := MapViewOfFile(MemHnd, FILE_MAP_READ, 0, 0, 0);
70 | if lpBaseAddress <> nil then
71 | begin
72 | FirstAppHandle := lpBaseAddress^;
73 | ShowWindow(FirstAppHandle, SW_RESTORE);
74 | SetForegroundWindow(FirstAppHandle);
75 | end;
76 | end;
77 | end;
78 |
79 | if lpBaseAddress <> nil then
80 | UnMapViewOfFile(lpBaseAddress);
81 | end;
82 |
83 | end.
84 |
--------------------------------------------------------------------------------
/Program/Forms/frm_statistic.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Authors Oleksiy Penkov oleksiy.penkov@gmail.com
8 | * Nick Rymanov nrymanov@gmail.com
9 | * Created 20.08.2008
10 | * Description
11 | *
12 | * $Id: frm_statistic.pas 840 2010-10-06 07:37:58Z nrymanov@gmail.com $
13 | *
14 | * History
15 | *
16 | ****************************************************************************** *)
17 |
18 | unit frm_statistic;
19 |
20 | interface
21 |
22 | uses
23 | Classes,
24 | Controls,
25 | Forms,
26 | ComCtrls,
27 | StdCtrls,
28 | unit_Interfaces;
29 |
30 | type
31 | TfrmStat = class(TForm)
32 | btnClose: TButton;
33 | lvInfo: TListView;
34 |
35 | public
36 | procedure LoadCollectionInfo(const Collection: IBookCollection);
37 | end;
38 |
39 | var
40 | frmStat: TfrmStat;
41 |
42 | implementation
43 |
44 | uses
45 | Variants,
46 | SysUtils,
47 | unit_Consts,
48 | unit_Helpers;
49 |
50 | resourcestring
51 | rstrUnknown = 'unknown';
52 |
53 | {$R *.dfm}
54 |
55 | procedure TfrmStat.LoadCollectionInfo(const Collection: IBookCollection);
56 | var
57 | vVersion: Variant;
58 | DataVersion: string;
59 | AuthorsCount: Integer;
60 | BooksCount: Integer;
61 | SeriesCount: Integer;
62 | begin
63 | Assert(Assigned(Collection));
64 |
65 | Collection.GetStatistics(AuthorsCount, BooksCount, SeriesCount);
66 |
67 | vVersion := Collection.GetProperty(PROP_DATAVERSION);
68 | if VarIsEmpty(vVersion) then
69 | DataVersion := rstrUnknown
70 | else
71 | DataVersion := IntToStr(vVersion);
72 |
73 | //
74 | // Заполним данные
75 | //
76 | lvInfo.Items[0].SubItems[0] := Collection.GetProperty(PROP_DISPLAYNAME);
77 | lvInfo.Items[1].SubItems[0] := DateToStr(Collection.GetProperty(PROP_CREATIONDATE));
78 | lvInfo.Items[2].SubItems[0] := DataVersion;
79 | lvInfo.Items[3].SubItems[0] := Collection.GetProperty(PROP_NOTES);
80 |
81 | lvInfo.Items[4].SubItems[0] := IntToStr(AuthorsCount);
82 | lvInfo.Items[5].SubItems[0] := IntToStr(BooksCount);
83 | lvInfo.Items[6].SubItems[0] := IntToStr(SeriesCount);
84 |
85 | lvInfo.AutosizeColumn(0);
86 | lvInfo.AutosizeColumn(1);
87 | end;
88 |
89 | end.
90 |
--------------------------------------------------------------------------------
/Program/ImportImpl/frm_ImportProgressForm.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Author(s) Nick Rymanov nrymanov@gmail.com
8 | * Created 20.08.2008
9 | * Description
10 | *
11 | * $Id: frm_ImportProgressForm.pas 875 2010-10-25 09:10:20Z nrymanov@gmail.com $
12 | *
13 | * History
14 | *
15 | ****************************************************************************** *)
16 |
17 | unit frm_ImportProgressForm;
18 |
19 | interface
20 |
21 | uses
22 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
23 | Dialogs, unit_WorkerThread, frm_BaseProgressForm, StdCtrls, ComCtrls, unit_Globals;
24 |
25 | type
26 | TImportProgressForm = class(TProgressFormBase)
27 | txtComment: TLabel;
28 | ProgressBar: TProgressBar;
29 | btnCancel: TButton;
30 | procedure btnCancelClick(Sender: TObject);
31 | private
32 | protected
33 | procedure OpenProgress; override;
34 | procedure SetProgressHint(Style: TProgressBarStyle; State: TProgressBarState); override;
35 | procedure ShowProgress(Percent: Integer); override;
36 | procedure ShowTeletype(const Msg: string; Severity: TTeletypeSeverity); override;
37 | procedure SetComment(const Comment: string); override;
38 | public
39 | end;
40 |
41 | var
42 | ImportProgressForm: TImportProgressForm;
43 |
44 | implementation
45 |
46 | {$R *.dfm}
47 |
48 | { TImportProgressForm }
49 |
50 | procedure TImportProgressForm.btnCancelClick(Sender: TObject);
51 | begin
52 | CancelWorker;
53 | end;
54 |
55 | procedure TImportProgressForm.OpenProgress;
56 | begin
57 | ProgressBar.Position := 0;
58 | end;
59 |
60 | procedure TImportProgressForm.SetProgressHint(Style: TProgressBarStyle; State: TProgressBarState);
61 | begin
62 | ProgressBar.Style := Style;
63 | ProgressBar.State := State;
64 | end;
65 |
66 | procedure TImportProgressForm.SetComment(const Comment: string);
67 | begin
68 | txtComment.Caption := Comment;
69 | end;
70 |
71 | procedure TImportProgressForm.ShowProgress(Percent: Integer);
72 | begin
73 | ProgressBar.Position := Percent;
74 | end;
75 |
76 | procedure TImportProgressForm.ShowTeletype(const Msg: string; Severity: TTeletypeSeverity);
77 | begin
78 | // ничего не делаем
79 | end;
80 |
81 | end.
82 |
83 |
--------------------------------------------------------------------------------
/Program/DAO/SQLite/Lib/SQLite3UDF.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Author(s) Nick Rymanov nrymanov@gmail.com
8 | * Created 07.09.2010
9 | * Description
10 | *
11 | * $Id: SQLite3UDF.pas 783 2010-09-17 07:43:25Z nrymanov@gmail.com $
12 | *
13 | * History
14 | *
15 | ****************************************************************************** *)
16 |
17 | unit SQLite3UDF;
18 |
19 | interface
20 |
21 | uses
22 | SQLite3;
23 |
24 | function SystemCollate(Userdta: Pointer; Buf1Len: Integer; Buf1: Pointer; Buf2Len: Integer; Buf2: Pointer): Integer; cdecl;
25 | function SystemCollateNoCase(Userdta: Pointer; Buf1Len: Integer; Buf1: Pointer; Buf2Len: Integer; Buf2: Pointer): Integer; cdecl;
26 | procedure SystemUpperString(pCtx: TSQLite3Context; nArgs: Integer; Args: TSQLite3Value); cdecl;
27 | procedure SystemLowerString(pCtx: TSQLite3Context; nArgs: Integer; Args: TSQLite3Value); cdecl;
28 |
29 | implementation
30 |
31 | uses
32 | Windows,
33 | Character;
34 |
35 | function SystemCollate(Userdta: Pointer; Buf1Len: Integer; Buf1: Pointer; Buf2Len: Integer; Buf2: Pointer): Integer; cdecl;
36 | begin
37 | Result := CompareStringW(
38 | LOCALE_USER_DEFAULT,
39 | 0,
40 | PWideChar(Buf1), Buf1Len div SizeOf(WideChar),
41 | PWideChar(Buf2), Buf2Len div SizeOf(WideChar)
42 | ) - CSTR_EQUAL;
43 | end;
44 |
45 | function SystemCollateNoCase(Userdta: Pointer; Buf1Len: Integer; Buf1: Pointer; Buf2Len: Integer; Buf2: Pointer): Integer; cdecl;
46 | begin
47 | Result := CompareStringW(
48 | LOCALE_USER_DEFAULT,
49 | NORM_IGNORECASE,
50 | PWideChar(Buf1), Buf1Len div SizeOf(WideChar),
51 | PWideChar(Buf2), Buf2Len div SizeOf(WideChar)
52 | ) - CSTR_EQUAL;
53 | end;
54 |
55 | procedure SystemUpperString(pCtx: TSQLite3Context; nArgs: Integer; Args: TSQLite3Value); cdecl;
56 | var
57 | s: string;
58 | begin
59 | s := SQLite3_Value_text16(Args^);
60 | SQLite3_Result_Text16(pCtx, PWideChar(TCharacter.ToUpper(s)), -1, SQLITE_TRANSIENT);
61 | end;
62 |
63 | procedure SystemLowerString(pCtx: TSQLite3Context; nArgs: Integer; Args: TSQLite3Value); cdecl;
64 | var
65 | s: string;
66 | begin
67 | s := SQLite3_Value_text16(Args^);
68 | SQLite3_Result_Text16(pCtx, PWideChar(TCharacter.ToLower(s)), -1, SQLITE_TRANSIENT);
69 | end;
70 |
71 | end.
72 |
--------------------------------------------------------------------------------
/Program/Forms/frm_about.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Authors Oleksiy Penkov oleksiy.penkov@gmail.com
8 | * Nick Rymanov nrymanov@gmail.com
9 | *
10 | * $Id: frm_about.pas 1186 2015-05-14 05:20:24Z koreec $
11 | *
12 | * History
13 | *
14 | ****************************************************************************** *)
15 |
16 | unit frm_about;
17 |
18 | interface
19 |
20 | uses
21 | Windows,
22 | Classes,
23 | Controls,
24 | Forms,
25 | StdCtrls,
26 | ExtCtrls,
27 | unit_MHLHelpers,
28 | MHLSimplePanel,
29 | MHLLinkLabel;
30 |
31 | type
32 | TfrmAbout = class(TForm)
33 | RzPanel1: TMHLSimplePanel;
34 | RzURLLabel: TMHLLinkLabel;
35 | RzBitBtn1: TButton;
36 | versionInfoLabel: TLabel;
37 | RzLabel1: TLabel;
38 | RzLabel2: TLabel;
39 | RzLabel3: TLabel;
40 | RzLabel6: TLabel;
41 | RzLabel7: TLabel;
42 | RzLabel8: TLabel;
43 | Label1: TLabel;
44 | RzLabel4: TLabel;
45 | Label2: TLabel;
46 | Label3: TLabel;
47 | procedure FormCreate(Sender: TObject);
48 | procedure RzURLLabelLinkClick(Sender: TObject; const Link: string; LinkType: TSysLinkType);
49 | procedure FormShow(Sender: TObject);
50 | private
51 | { Private declarations }
52 | public
53 | { Public declarations }
54 | end;
55 |
56 | var
57 | frmAbout: TfrmAbout;
58 |
59 | implementation
60 |
61 | uses
62 | SysUtils,
63 | unit_Helpers,
64 | unit_Consts;
65 |
66 | resourcestring
67 | rstrAppVersionInfo = 'Версия: %s';
68 | rstrAppVersionInfo64 = 'Версия: %s x64';
69 |
70 | {$R *.dfm}
71 |
72 | procedure TfrmAbout.FormCreate(Sender: TObject);
73 | begin
74 | {$IFDEF WIN64}
75 | versionInfoLabel.Caption := Format(rstrAppVersionInfo64, [unit_MHLHelpers.GetFileVersion(Application.ExeName)]);
76 | {$ELSE}
77 | versionInfoLabel.Caption := Format(rstrAppVersionInfo, [unit_MHLHelpers.GetFileVersion(Application.ExeName)]);
78 | {$ENDIF}
79 | end;
80 |
81 | procedure TfrmAbout.FormShow(Sender: TObject);
82 | begin
83 | RzURLLabel.Caption := Format('%s', [PROGRAM_HOMEPAGE, PROGRAM_HOMEPAGE]);
84 | end;
85 |
86 | procedure TfrmAbout.RzURLLabelLinkClick(Sender: TObject; const Link: string; LinkType: TSysLinkType);
87 | begin
88 | SimpleShellExecute(Handle, Link);
89 | end;
90 |
91 | end.
92 |
--------------------------------------------------------------------------------
/Program/Forms/Editors/frm_EditGroup.pas:
--------------------------------------------------------------------------------
1 | unit frm_EditGroup;
2 |
3 | interface
4 |
5 | uses
6 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 | Dialogs, StdCtrls, ExtCtrls;
8 |
9 | type
10 | TfrmEditGroup = class(TForm)
11 | pnButtons: TPanel;
12 | btnOk: TButton;
13 | btnCancel: TButton;
14 | Label1: TLabel;
15 | edGroupName: TEdit;
16 | procedure edGroupNameChange(Sender: TObject);
17 | procedure FormShow(Sender: TObject);
18 | private
19 | function GetGroupName: string;
20 | procedure SetGroupName(const Value: string);
21 |
22 | property GroupName: string read GetGroupName write SetGroupName;
23 | public
24 | { Public declarations }
25 | end;
26 |
27 | var
28 | frmEditGroup: TfrmEditGroup;
29 |
30 | function NewGroup(var groupName: string): Boolean;
31 |
32 | function EditGroup(var groupName: string): Boolean;
33 |
34 |
35 | implementation
36 |
37 | resourcestring
38 | rstrNewGroup = 'Новая группа';
39 | rstrEditGroup = 'Редактирование группы';
40 |
41 | {$R *.dfm}
42 |
43 | procedure TfrmEditGroup.FormShow(Sender: TObject);
44 | begin
45 | edGroupNameChange(nil);
46 | end;
47 |
48 | function TfrmEditGroup.GetGroupName: string;
49 | begin
50 | Result := Trim(edGroupName.Text);
51 | end;
52 |
53 | procedure TfrmEditGroup.SetGroupName(const Value: string);
54 | begin
55 | edGroupName.Text := Value;
56 | end;
57 |
58 | procedure TfrmEditGroup.edGroupNameChange(Sender: TObject);
59 | begin
60 | btnOk.Enabled := GroupName <> '';
61 | end;
62 |
63 | function InternalEditGroup(createNew: Boolean; var groupName: string): Boolean;
64 | var
65 | frmEditGroup: TfrmEditGroup;
66 | begin
67 | frmEditGroup := TfrmEditGroup.Create(Application);
68 | try
69 | if createNew then
70 | begin
71 | frmEditGroup.Caption := rstrNewGroup;
72 | end
73 | else
74 | begin
75 | frmEditGroup.Caption := rstrEditGroup;
76 | frmEditGroup.GroupName := groupName;
77 | end;
78 |
79 | Result := (frmEditGroup.ShowModal = mrOk);
80 |
81 | if Result then
82 | groupName := frmEditGroup.GroupName;
83 | finally
84 | frmEditGroup.Free;
85 | end;
86 | end;
87 |
88 | function NewGroup(var groupName: string): Boolean;
89 | begin
90 | Result := InternalEditGroup(True, groupName);
91 | end;
92 |
93 | function EditGroup(var groupName: string): Boolean;
94 | begin
95 | Result := InternalEditGroup(False, groupName);
96 | end;
97 |
98 | end.
99 |
--------------------------------------------------------------------------------
/Program/Forms/Editors/frm_edit_author.dfm:
--------------------------------------------------------------------------------
1 | object frmEditAuthorData: TfrmEditAuthorData
2 | Left = 0
3 | Top = 0
4 | HelpContext = 117
5 | BorderStyle = bsDialog
6 | Caption = #1048#1085#1092#1086#1088#1084#1072#1094#1080#1103' '#1086#1073' '#1072#1074#1090#1086#1088#1077
7 | ClientHeight = 133
8 | ClientWidth = 358
9 | Color = clBtnFace
10 | Font.Charset = DEFAULT_CHARSET
11 | Font.Color = clWindowText
12 | Font.Height = -11
13 | Font.Name = 'Tahoma'
14 | Font.Style = []
15 | Position = poOwnerFormCenter
16 | TextHeight = 13
17 | object Label1: TLabel
18 | Left = 8
19 | Top = 13
20 | Width = 48
21 | Height = 13
22 | Caption = '&'#1060#1072#1084#1080#1083#1080#1103':'
23 | FocusControl = edLastName
24 | end
25 | object Label2: TLabel
26 | Left = 8
27 | Top = 40
28 | Width = 23
29 | Height = 13
30 | Caption = '&'#1048#1084#1103':'
31 | FocusControl = edFirstName
32 | end
33 | object Label3: TLabel
34 | Left = 8
35 | Top = 67
36 | Width = 53
37 | Height = 13
38 | Caption = #1054#1090#1095#1077#1089#1090#1074#1086':'
39 | FocusControl = edMiddleName
40 | end
41 | object pnButtons: TPanel
42 | Left = 0
43 | Top = 92
44 | Width = 358
45 | Height = 41
46 | Align = alBottom
47 | BevelOuter = bvNone
48 | Caption = 'pnButtons'
49 | ShowCaption = False
50 | TabOrder = 3
51 | DesignSize = (
52 | 358
53 | 41)
54 | object btnOk: TButton
55 | Left = 190
56 | Top = 10
57 | Width = 75
58 | Height = 25
59 | Anchors = [akTop, akRight]
60 | Caption = '&'#1057#1086#1093#1088#1072#1085#1080#1090#1100
61 | Default = True
62 | ModalResult = 1
63 | TabOrder = 0
64 | end
65 | object btnCancel: TButton
66 | Left = 271
67 | Top = 10
68 | Width = 75
69 | Height = 25
70 | Anchors = [akTop, akRight]
71 | Cancel = True
72 | Caption = '&'#1054#1090#1084#1077#1085#1072
73 | ModalResult = 2
74 | TabOrder = 1
75 | end
76 | end
77 | object edFirstName: TEdit
78 | Left = 72
79 | Top = 37
80 | Width = 278
81 | Height = 21
82 | TabOrder = 1
83 | end
84 | object edLastName: TEdit
85 | Left = 72
86 | Top = 10
87 | Width = 278
88 | Height = 21
89 | TabOrder = 0
90 | end
91 | object edMiddleName: TEdit
92 | Left = 72
93 | Top = 64
94 | Width = 278
95 | Height = 21
96 | TabOrder = 2
97 | end
98 | end
99 |
--------------------------------------------------------------------------------
/Program/Wizards/Base/frame_DecorativePageBase.dfm:
--------------------------------------------------------------------------------
1 | inherited DecorativePageBase: TDecorativePageBase
2 | Width = 476
3 | Height = 346
4 | ExplicitWidth = 476
5 | ExplicitHeight = 346
6 | object Panel8: TPanel
7 | Left = 0
8 | Top = 0
9 | Width = 169
10 | Height = 346
11 | Align = alLeft
12 | BevelOuter = bvNone
13 | Color = clNavy
14 | ParentBackground = False
15 | TabOrder = 0
16 | end
17 | object Panel9: TPanel
18 | Left = 169
19 | Top = 0
20 | Width = 307
21 | Height = 346
22 | Align = alClient
23 | BevelOuter = bvNone
24 | Color = clWhite
25 | ParentBackground = False
26 | TabOrder = 1
27 | object lblTitle: TLabel
28 | AlignWithMargins = True
29 | Left = 7
30 | Top = 7
31 | Width = 293
32 | Height = 32
33 | Margins.Left = 7
34 | Margins.Top = 7
35 | Margins.Right = 7
36 | Margins.Bottom = 0
37 | Align = alTop
38 | Caption = #1044#1086#1073#1088#1086' '#1087#1086#1078#1072#1083#1086#1074#1072#1090#1100' '#1074' <'#1053#1072#1079#1074#1072#1085#1080#1077' '#1084#1072#1089#1090#1077#1088#1072'>!'
39 | Font.Charset = DEFAULT_CHARSET
40 | Font.Color = clWindowText
41 | Font.Height = -13
42 | Font.Name = 'Tahoma'
43 | Font.Style = [fsBold]
44 | ParentFont = False
45 | WordWrap = True
46 | ExplicitWidth = 224
47 | end
48 | object lblSubTitle: TLabel
49 | AlignWithMargins = True
50 | Left = 14
51 | Top = 46
52 | Width = 286
53 | Height = 15
54 | Margins.Left = 14
55 | Margins.Top = 7
56 | Margins.Right = 7
57 | Margins.Bottom = 0
58 | Align = alTop
59 | Caption = #1069#1090#1086#1090' '#1084#1072#1089#1090#1077#1088' '#1087#1086#1084#1086#1078#1077#1090' '#1074#1072#1084' <'#1085#1072#1079#1085#1072#1095#1077#1085#1080#1077' '#1084#1072#1089#1090#1077#1088#1072'>'
60 | WordWrap = True
61 | ExplicitTop = 30
62 | ExplicitWidth = 274
63 | end
64 | object lblPageHint: TLabel
65 | AlignWithMargins = True
66 | Left = 14
67 | Top = 324
68 | Width = 286
69 | Height = 15
70 | Margins.Left = 14
71 | Margins.Top = 0
72 | Margins.Right = 7
73 | Margins.Bottom = 7
74 | Align = alBottom
75 | Caption = #1063#1090#1086#1073#1099' '#1087#1088#1086#1076#1086#1083#1078#1080#1090#1100', '#1085#1072#1078#1084#1080#1090#1077' '#1042#1087#1077#1088#1105#1076
76 | ExplicitWidth = 204
77 | end
78 | end
79 | end
80 |
--------------------------------------------------------------------------------
/Program/Forms/Editors/frm_edit_reader.dfm:
--------------------------------------------------------------------------------
1 | object frmEditReader: TfrmEditReader
2 | Left = 0
3 | Top = 0
4 | BorderStyle = bsDialog
5 | Caption = #1044#1086#1073#1072#1074#1083#1077#1085#1080#1077' '#1090#1080#1087#1072' '#1092#1072#1081#1083#1086#1074
6 | ClientHeight = 101
7 | ClientWidth = 415
8 | Color = clBtnFace
9 | Font.Charset = DEFAULT_CHARSET
10 | Font.Color = clWindowText
11 | Font.Height = -11
12 | Font.Name = 'Tahoma'
13 | Font.Style = []
14 | Position = poMainFormCenter
15 | TextHeight = 13
16 | object Label1: TLabel
17 | Left = 8
18 | Top = 11
19 | Width = 22
20 | Height = 13
21 | Caption = '&'#1058#1080#1087':'
22 | FocusControl = edExt
23 | end
24 | object Label2: TLabel
25 | Left = 8
26 | Top = 38
27 | Width = 29
28 | Height = 13
29 | Caption = '&'#1055#1091#1090#1100':'
30 | FocusControl = edPath
31 | end
32 | object pnButtons: TPanel
33 | Left = 0
34 | Top = 60
35 | Width = 415
36 | Height = 41
37 | Align = alBottom
38 | BevelOuter = bvNone
39 | Caption = 'pnButtons'
40 | ShowCaption = False
41 | TabOrder = 3
42 | DesignSize = (
43 | 415
44 | 41)
45 | object btnOk: TButton
46 | Left = 247
47 | Top = 10
48 | Width = 75
49 | Height = 25
50 | Anchors = [akTop, akRight]
51 | Caption = '&'#1057#1086#1093#1088#1072#1085#1080#1090#1100
52 | Default = True
53 | ModalResult = 1
54 | TabOrder = 0
55 | OnClick = btnSaveClick
56 | end
57 | object btnCancel: TButton
58 | Left = 328
59 | Top = 10
60 | Width = 75
61 | Height = 25
62 | Anchors = [akTop, akRight]
63 | Cancel = True
64 | Caption = '&'#1054#1090#1084#1077#1085#1072
65 | ModalResult = 2
66 | TabOrder = 1
67 | end
68 | end
69 | object edExt: TEdit
70 | Left = 56
71 | Top = 8
72 | Width = 121
73 | Height = 21
74 | TabOrder = 0
75 | TextHint = #1056#1072#1089#1096#1080#1088#1077#1085#1080#1077' '#1092#1072#1081#1083#1072
76 | end
77 | object edPath: TMHLAutoCompleteEdit
78 | Left = 56
79 | Top = 35
80 | Width = 270
81 | Height = 21
82 | TabOrder = 1
83 | TextHint = #1055#1091#1090#1100' '#1082' '#1087#1088#1086#1075#1088#1072#1084#1084#1077' '#1087#1088#1086#1089#1084#1086#1090#1088#1072
84 | end
85 | object btnBrowse: TButton
86 | Left = 332
87 | Top = 33
88 | Width = 75
89 | Height = 25
90 | Caption = #1054#1073#1079#1086#1088'...'
91 | TabOrder = 2
92 | OnClick = edPathButtonClick
93 | end
94 | end
95 |
--------------------------------------------------------------------------------
/Program/UtilsImpl/unit_SyncOnLineThread.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Author(s) Nick Rymanov (nrymanov@gmail.com)
8 | * Created 20.08.2008
9 | * Description
10 | *
11 | * $Id: unit_SyncOnLineThread.pas 840 2010-10-06 07:37:58Z nrymanov@gmail.com $
12 | *
13 | * History
14 | *
15 | ****************************************************************************** *)
16 |
17 | unit unit_SyncOnLineThread;
18 |
19 | interface
20 |
21 | uses
22 | Windows,
23 | Classes,
24 | SysUtils,
25 | unit_WorkerThread,
26 | unit_CollectionWorkerThread;
27 |
28 | type
29 | TSyncOnLineThread = class(TCollectionWorker)
30 | protected
31 | procedure WorkFunction; override;
32 | end;
33 |
34 | implementation
35 |
36 | uses
37 | IOUtils,
38 | unit_Consts,
39 | unit_Globals,
40 | dm_user,
41 | unit_MHL_strings,
42 | unit_Messages,
43 | unit_Interfaces;
44 |
45 | { TImportXMLThread }
46 |
47 | procedure TSyncOnLineThread.WorkFunction;
48 | var
49 | BookIterator: IBookIterator;
50 |
51 | BookFile: string;
52 |
53 | IsLocal: Boolean;
54 | BookRecord: TBookRecord;
55 | begin
56 | Assert(Assigned(FSystemData));
57 | Assert(Assigned(FCollection));
58 | BookIterator := FCollection.GetBookIterator(bmAll, True);
59 |
60 | FProgressEngine.BeginOperation(BookIterator.RecordCount, rstrBookProcessedMsg1, rstrBookProcessedMsg2);
61 | try
62 | while BookIterator.Next(BookRecord) do
63 | begin
64 | if Canceled then
65 | Exit;
66 |
67 | try
68 | //
69 | // Проверяем был ли файл закачан ранее и ставим отметку в базу
70 | //
71 | BookFile := BookRecord.GetBookFileName;
72 | IsLocal := TFile.Exists(BookFile);
73 |
74 | if Settings.DeleteDeleted and IsLocal and (bpIsDeleted in BookRecord.BookProps) then
75 | begin
76 | TFile.Delete(BookFile);
77 | IsLocal := False;
78 | end;
79 |
80 | if (bpIsLocal in BookRecord.BookProps) <> IsLocal then
81 | begin
82 | FCollection.SetLocal(BookRecord.BookKey, IsLocal);
83 | unit_Messages.BookLocalStatusChanged(BookRecord.BookKey, IsLocal);
84 | end;
85 | except
86 | on E: Exception do
87 | Teletype(e.Message, tsError);
88 | end;
89 |
90 | FProgressEngine.AddProgress;
91 | end;
92 | finally
93 | FProgressEngine.EndOperation;
94 | end;
95 | end;
96 |
97 | end.
98 |
99 |
--------------------------------------------------------------------------------
/Program/Wizards/NewCollection/unit_NCWParams.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Authors Nick Rymanov nrymanov@gmail.com
8 | * Created 20.08.2008
9 | * Description
10 | *
11 | * $Id: unit_NCWParams.pas 1104 2012-01-27 04:43:24Z koreec $
12 | *
13 | * History
14 | *
15 | ****************************************************************************** *)
16 |
17 | unit unit_NCWParams;
18 |
19 | interface
20 |
21 | uses unit_globals;
22 |
23 | type
24 | TNCWOperation = (
25 | otNew, // создать новую пользовательскую коллекцию
26 | otExisting, // подключить существующую коллекцию
27 | otInpx, // создать коллекцию из INPX
28 | otInpxDownload // создать коллекцию из предварительно скачанного INPX
29 | );
30 |
31 | TNCWCollectionType = (
32 | ltUser, // нова¤ пользовательска¤ коллекци¤. тип книг определ¤етс¤ TNCWFileTypes
33 | ltUserFB, // пользовательска¤ коллекци¤ FB2 книг из INPX
34 | ltUserAny, // пользовательска¤ коллекци¤ не-FB2 книг из INPX
35 | ltExternalLocalFB, // внешн¤¤ локальна¤ коллекци¤ FB2 книг из INPX
36 | ltExternalOnlineFB, // внешн¤¤ онлайн коллекци¤ FB2 книг из INPX
37 | ltExternalLocalAny, // внешн¤¤ локальна¤ коллекци¤ не-FB2 книг из INPX
38 | ltExternalOnlineAny // внешн¤¤ онлайн коллекци¤ не-FB2 книг из INPX
39 | );
40 |
41 | TNCWFileTypes = (
42 | ftFB2, // в коллекции хран¤тс¤ файлы в формате FB2
43 | ftAny // в коллекции хран¤тс¤ файлы в произвольном формате
44 | );
45 |
46 | PNCWParams = ^TNCWParams;
47 | TNCWParams = record
48 | Operation: TNCWOperation;
49 | CollectionType: TNCWCollectionType;
50 | FileTypes: TNCWFileTypes;
51 | DefaultGenres: Boolean;
52 | GenreFile: string;
53 |
54 | DisplayName: string;
55 | CollectionFile: string;
56 | CollectionRoot: string;
57 |
58 | INPXFile: string;
59 |
60 | AutoImport: boolean;
61 |
62 | //
63 | // необходимо перенести загрузку и установку этих значений в TImportInpxThread
64 | //
65 | //Notes: string;
66 | //URL: string;
67 | //Script: string;
68 | INPXUrl: string;
69 |
70 | //
71 | // реальный тип коллекции
72 | //
73 | CollectionCode: COLLECTION_TYPE;
74 |
75 | //
76 | // ID новой коллекции (созданной или подключенной)
77 | //
78 | CollectionID: Integer;
79 | end;
80 |
81 | implementation
82 |
83 | end.
84 |
85 |
--------------------------------------------------------------------------------
/Program/Forms/Editors/frm_edit_reader.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Authors Oleksiy Penkov oleksiy.penkov@gmail.com
8 | * Nick Rymanov nrymanov@gmail.com
9 | * Created 20.08.2008
10 | * Description
11 | *
12 | * $Id: frm_edit_reader.pas 549 2010-08-13 08:02:58Z eg_ $
13 | *
14 | * History
15 | *
16 | ****************************************************************************** *)
17 |
18 | unit frm_edit_reader;
19 |
20 | interface
21 |
22 | uses
23 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
24 | Dialogs, StdCtrls, Mask, ExtCtrls, unit_AutoCompleteEdit;
25 |
26 | type
27 | TfrmEditReader = class(TForm)
28 | edExt: TEdit;
29 | Label1: TLabel;
30 | edPath: TMHLAutoCompleteEdit;
31 | Label2: TLabel;
32 | pnButtons: TPanel;
33 | btnOk: TButton;
34 | btnCancel: TButton;
35 | btnBrowse: TButton;
36 | procedure edPathButtonClick(Sender: TObject);
37 | procedure btnSaveClick(Sender: TObject);
38 | private
39 | function GetExtension: string;
40 | function GetPath: string;
41 | procedure SetExtension(const Value: string);
42 | procedure SetPath(const Value: string);
43 | public
44 | property Extension: string read GetExtension write SetExtension;
45 | property Path: string read GetPath write SetPath;
46 | end;
47 |
48 | var
49 | frmEditReader: TfrmEditReader;
50 |
51 | implementation
52 |
53 | uses
54 | unit_Helpers;
55 |
56 | resourcestring
57 | rstrMissingFileType = 'Тип файла не указан!';
58 |
59 | {$R *.dfm}
60 |
61 | procedure TfrmEditReader.edPathButtonClick(Sender: TObject);
62 | var
63 | AFileName: string;
64 | begin
65 | if GetFileName(fnSelectReader, AFileName) then
66 | edPath.Text := AFileName;
67 | end;
68 |
69 | function TfrmEditReader.GetExtension: string;
70 | begin
71 | Result := AnsiLowerCase(Trim(edExt.Text));
72 | end;
73 |
74 | function TfrmEditReader.GetPath: string;
75 | begin
76 | Result := Trim(edPath.Text);
77 | end;
78 |
79 | procedure TfrmEditReader.SetExtension(const Value: string);
80 | begin
81 | edExt.Text := Value;
82 | end;
83 |
84 | procedure TfrmEditReader.SetPath(const Value: string);
85 | begin
86 | edPath.Text := Value;
87 | end;
88 |
89 | procedure TfrmEditReader.btnSaveClick(Sender: TObject);
90 | begin
91 | if Extension = '' then
92 | MessageDlg(rstrMissingFileType, mtError, [mbOk], 0)
93 | else
94 | ModalResult := mrOk;
95 | end;
96 |
97 | end.
98 |
--------------------------------------------------------------------------------
/Program/Forms/frm_search.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Authors Oleksiy Penkov oleksiy.penkov@gmail.com
8 | * Nick Rymanov nrymanov@gmail.com
9 | * Created 20.08.2008
10 | * Description
11 | *
12 | * $Id: frm_search.pas 854 2010-10-08 13:43:19Z eg_ $
13 | *
14 | * History
15 | *
16 | ****************************************************************************** *)
17 |
18 | unit frm_search;
19 |
20 | interface
21 |
22 | uses
23 | Windows,
24 | Messages,
25 | SysUtils,
26 | Variants,
27 | Classes,
28 | Graphics,
29 | Controls,
30 | Forms,
31 | Dialogs,
32 | StdCtrls,
33 | Mask,
34 | ExtCtrls,
35 | MHLSimplePanel,
36 | unit_Globals,
37 | unit_Events;
38 |
39 | type
40 | TfrmBookSearch = class(TForm)
41 | RzPanel1: TMHLSimplePanel;
42 | Label1: TLabel;
43 | edText: TEdit;
44 | procedure FormCreate(Sender: TObject);
45 | procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
46 | procedure edTextChange(Sender: TObject);
47 | procedure edTextKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
48 |
49 | private
50 | FBusy: boolean;
51 | FOnLocateBook: TOnLocateBookEvent;
52 |
53 | public
54 | property OnLocateBook: TOnLocateBookEvent read FOnLocateBook write FOnLocateBook;
55 |
56 | end;
57 |
58 | implementation
59 |
60 | {$R *.dfm}
61 |
62 | procedure TfrmBookSearch.FormCreate(Sender: TObject);
63 | begin
64 | FBusy := False;
65 | end;
66 |
67 | procedure TfrmBookSearch.edTextChange(Sender: TObject);
68 | begin
69 | if not FBusy then
70 | begin
71 | FBusy := True;
72 | try
73 | Assert(Assigned(FOnLocateBook));
74 | FOnLocateBook(edText.Text, False)
75 | finally
76 | FBusy := False;
77 | end;
78 | end;
79 | end;
80 |
81 | procedure TfrmBookSearch.edTextKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
82 | begin
83 | if (Key = VK_RIGHT) and not FBusy then
84 | begin
85 | FBusy := True;
86 | try
87 | Assert(Assigned(FOnLocateBook));
88 | FOnLocateBook(edText.Text, True)
89 | finally
90 | FBusy := False;
91 | end;
92 | end;
93 | end;
94 |
95 | procedure TfrmBookSearch.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
96 | begin
97 | if (Key = VK_RETURN) or (Key = VK_ESCAPE) then
98 | Close;
99 | end;
100 |
101 | end.
102 |
--------------------------------------------------------------------------------
/Program/Forms/Editors/frm_edit_author.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Authors Oleksiy Penkov oleksiy.penkov@gmail.com
8 | * Nick Rymanov nrymanov@gmail.com
9 | * Created 20.08.2008
10 | * Description
11 | *
12 | * $Id: frm_edit_author.pas 543 2010-07-29 06:34:09Z nrymanov@gmail.com $
13 | *
14 | * ¬Ќ»ћјЌ»≈!!! Ёта форма ¤вл¤етс¤ базовой дл¤ TfrmEditAuthorDataEx.
15 | * Ћюбые изменени¤, сделанные в этой форме, будут вли¤ть и на производную.
16 | *
17 | * History
18 | *
19 | ****************************************************************************** *)
20 |
21 | unit frm_edit_author;
22 |
23 | interface
24 |
25 | uses
26 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
27 | Dialogs, StdCtrls, Mask, ExtCtrls;
28 |
29 | type
30 | TfrmEditAuthorData = class(TForm)
31 | Label1: TLabel;
32 | Label2: TLabel;
33 | Label3: TLabel;
34 | edLastName: TEdit;
35 | edFirstName: TEdit;
36 | edMiddleName: TEdit;
37 | pnButtons: TPanel;
38 | btnOk: TButton;
39 | btnCancel: TButton;
40 |
41 | private
42 | function GetFirstName: string;
43 | function GetLastName: string;
44 | function GetMidName: string;
45 | procedure SetFirstName(const Value: string);
46 | procedure SetLastName(const Value: string);
47 | procedure SetMidName(const Value: string);
48 |
49 | public
50 | property LastName: string read GetLastName write SetLastName;
51 | property FirstName: string read GetFirstName write SetFirstName;
52 | property MidName: string read GetMidName write SetMidName;
53 | end;
54 |
55 | var
56 | frmEditAuthorData: TfrmEditAuthorData;
57 |
58 | implementation
59 |
60 | {$R *.dfm}
61 |
62 | { TfrmEditAuthorData }
63 |
64 | function TfrmEditAuthorData.GetFirstName: string;
65 | begin
66 | Result := Trim(edFirstName.Text);
67 | end;
68 |
69 | function TfrmEditAuthorData.GetLastName: string;
70 | begin
71 | Result := Trim(edLastName.Text);
72 | end;
73 |
74 | function TfrmEditAuthorData.GetMidName: string;
75 | begin
76 | Result := Trim(edMiddleName.Text);
77 | end;
78 |
79 | procedure TfrmEditAuthorData.SetFirstName(const Value: string);
80 | begin
81 | edFirstName.Text := Value;
82 | end;
83 |
84 | procedure TfrmEditAuthorData.SetLastName(const Value: string);
85 | begin
86 | edLastName.Text := Value;
87 | end;
88 |
89 | procedure TfrmEditAuthorData.SetMidName(const Value: string);
90 | begin
91 | edMiddleName.Text := Value;
92 | end;
93 |
94 | end.
95 |
--------------------------------------------------------------------------------
/Program/UtilsImpl/unit_ExportToDevice.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Authors Oleksiy Penkov oleksiy.penkov@gmail.com
8 | * Nick Rymanov nrymanov@gmail.com
9 | *
10 | ****************************************************************************** *)
11 |
12 | unit unit_ExportToDevice;
13 |
14 | interface
15 |
16 | uses
17 | Controls,
18 | Forms,
19 | Dialogs,
20 | Windows,
21 | unit_Globals;
22 |
23 | procedure ExportToDevice(
24 | const DeviceDir: string;
25 | const IdList: TBookIdList;
26 | const Mode: TExportMode;
27 | const ExtractOnly: Boolean;
28 | out ProcessedFiles:string
29 | );
30 |
31 | procedure DownloadBooks(const IdList: TBookIdList);
32 |
33 | implementation
34 |
35 | uses
36 | unit_ExportToDeviceThread,
37 | frm_ExportToDeviceProgressForm,
38 | unit_DownloadBooksThread,
39 | frm_DownloadProgressForm;
40 |
41 | resourcestring
42 | rstrSendToDevice = 'Отправить на устройство';
43 | rstrDownloadingBooks = 'Скачивание книг';
44 |
45 | procedure ExportToDevice(
46 | const DeviceDir: string;
47 | const IdList: TBookIdList;
48 | const Mode: TExportMode;
49 | const ExtractOnly: Boolean;
50 | out ProcessedFiles: string
51 | );
52 | var
53 | worker: TExportToDeviceThread;
54 | frmProgress: TExportToDeviceProgressForm;
55 | begin
56 | worker := TExportToDeviceThread.Create;
57 | try
58 | worker.DeviceDir := DeviceDir;
59 | worker.BookIdList := IdList;
60 | worker.ExportMode := Mode;
61 | worker.ExtractOnly := ExtractOnly;
62 | frmProgress := TExportToDeviceProgressForm.Create(Application);
63 | try
64 | frmProgress.Caption := rstrSendToDevice;
65 | frmProgress.WorkerThread := worker;
66 | frmProgress.ShowModal;
67 | ProcessedFiles := worker.ProcessedFiles;
68 | finally
69 | frmProgress.Free;
70 | end;
71 | finally
72 | worker.Free;
73 | end;
74 | end;
75 |
76 | procedure DownloadBooks(const IdList: TBookIdList);
77 | var
78 | worker: TDownloadBooksThread;
79 | frmProgress: TDownloadProgressForm;
80 | begin
81 | worker := TDownloadBooksThread.Create;
82 | try
83 | worker.BookIdList := IdList;
84 | frmProgress := TDownloadProgressForm.Create(Application);
85 | try
86 | frmProgress.Caption := rstrDownloadingBooks;
87 | frmProgress.WorkerThread := worker;
88 | frmProgress.ShowModal;
89 | finally
90 | frmProgress.Free;
91 | end;
92 | finally
93 | worker.Free;
94 | end;
95 | end;
96 |
97 |
98 | end.
99 |
100 |
--------------------------------------------------------------------------------
/Program/Wizards/NewCollection/frame_NCWDownload.dfm:
--------------------------------------------------------------------------------
1 | inherited frameNCWDownload: TframeNCWDownload
2 | Height = 160
3 | Constraints.MinHeight = 160
4 | Constraints.MinWidth = 320
5 | ExplicitHeight = 160
6 | object lblStatus: TLabel [0]
7 | AlignWithMargins = True
8 | Left = 14
9 | Top = 65
10 | Width = 292
11 | Height = 15
12 | Margins.Left = 14
13 | Margins.Top = 7
14 | Margins.Right = 14
15 | Margins.Bottom = 0
16 | Align = alTop
17 | Caption = #1055#1086#1076#1082#1083#1102#1095#1077#1085#1080#1077'...'
18 | ExplicitWidth = 87
19 | end
20 | object Bar: TProgressBar [1]
21 | AlignWithMargins = True
22 | Left = 14
23 | Top = 87
24 | Width = 292
25 | Height = 17
26 | Margins.Left = 14
27 | Margins.Top = 7
28 | Margins.Right = 14
29 | Margins.Bottom = 0
30 | Align = alTop
31 | TabOrder = 1
32 | ExplicitTop = 85
33 | end
34 | inherited pnTitle: TPanel
35 | Height = 58
36 | StyleElements = [seFont, seClient, seBorder]
37 | ExplicitHeight = 58
38 | inherited lblTitle: TLabel
39 | Width = 292
40 | Caption = #1047#1072#1075#1088#1091#1079#1082#1072' '#1092#1072#1081#1083#1072' INPX'
41 | StyleElements = [seFont, seClient, seBorder]
42 | ExplicitWidth = 122
43 | end
44 | inherited lblSubTitle: TLabel
45 | Width = 285
46 | Caption = #1055#1086#1076#1086#1078#1076#1080#1090#1077', '#1087#1086#1082#1072' '#1092#1072#1081#1083' '#1073#1091#1076#1077#1090' '#1079#1072#1075#1088#1091#1078#1077#1085' '#1089' '#1089#1077#1088#1074#1077#1088#1072
47 | StyleElements = [seFont, seClient, seBorder]
48 | ExplicitWidth = 269
49 | end
50 | end
51 | object HTTP: TIdHTTP
52 | OnWork = HTTPWork
53 | OnWorkBegin = HTTPWorkBegin
54 | OnWorkEnd = HTTPWorkEnd
55 | HandleRedirects = True
56 | ProxyParams.BasicAuthentication = False
57 | ProxyParams.ProxyPort = 0
58 | Request.ContentLength = -1
59 | Request.ContentRangeEnd = -1
60 | Request.ContentRangeStart = -1
61 | Request.ContentRangeInstanceLength = -1
62 | Request.Accept = 'text/html, */*'
63 | Request.BasicAuthentication = False
64 | Request.UserAgent = 'Mozilla/3.0 (compatible; Indy Library)'
65 | Request.Ranges.Units = 'bytes'
66 | Request.Ranges = <>
67 | HTTPOptions = [hoForceEncodeParams]
68 | Left = 16
69 | Top = 112
70 | end
71 | object IdSSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL
72 | MaxLineAction = maException
73 | Port = 0
74 | DefaultPort = 0
75 | SSLOptions.Mode = sslmUnassigned
76 | SSLOptions.VerifyMode = []
77 | SSLOptions.VerifyDepth = 0
78 | Left = 192
79 | Top = 112
80 | end
81 | object IdSocksInfo: TIdSocksInfo
82 | Left = 72
83 | Top = 112
84 | end
85 | end
86 |
--------------------------------------------------------------------------------
/Program/Forms/Editors/frm_edit_script.dfm:
--------------------------------------------------------------------------------
1 | object frmEditScript: TfrmEditScript
2 | Left = 0
3 | Top = 0
4 | BorderStyle = bsDialog
5 | Caption = #1055#1072#1088#1072#1084#1077#1090#1088#1099' '#1089#1082#1088#1080#1087#1090#1072
6 | ClientHeight = 189
7 | ClientWidth = 346
8 | Color = clBtnFace
9 | Font.Charset = DEFAULT_CHARSET
10 | Font.Color = clWindowText
11 | Font.Height = -11
12 | Font.Name = 'Tahoma'
13 | Font.Style = []
14 | Position = poMainFormCenter
15 | TextHeight = 13
16 | object Label1: TLabel
17 | Left = 8
18 | Top = 8
19 | Width = 52
20 | Height = 13
21 | Caption = '&'#1053#1072#1079#1074#1072#1085#1080#1077':'
22 | FocusControl = edTitle
23 | end
24 | object Label2: TLabel
25 | Left = 8
26 | Top = 54
27 | Width = 29
28 | Height = 13
29 | Caption = '&'#1055#1091#1090#1100':'
30 | FocusControl = edPath
31 | end
32 | object Label3: TLabel
33 | Left = 8
34 | Top = 100
35 | Width = 61
36 | Height = 13
37 | Caption = #1055#1072#1088#1072#1084#1077#1090#1088#1099':'
38 | FocusControl = edParams
39 | end
40 | object pnButtons: TPanel
41 | Left = 0
42 | Top = 148
43 | Width = 346
44 | Height = 41
45 | Align = alBottom
46 | BevelOuter = bvNone
47 | Caption = 'pnButtons'
48 | ShowCaption = False
49 | TabOrder = 4
50 | DesignSize = (
51 | 346
52 | 41)
53 | object btnOk: TButton
54 | Left = 178
55 | Top = 10
56 | Width = 75
57 | Height = 25
58 | Anchors = [akTop, akRight]
59 | Caption = '&'#1057#1086#1093#1088#1072#1085#1080#1090#1100
60 | Default = True
61 | ModalResult = 1
62 | TabOrder = 0
63 | OnClick = btnSaveClick
64 | end
65 | object btnCancel: TButton
66 | Left = 259
67 | Top = 10
68 | Width = 75
69 | Height = 25
70 | Anchors = [akTop, akRight]
71 | Cancel = True
72 | Caption = '&'#1054#1090#1084#1077#1085#1072
73 | ModalResult = 2
74 | TabOrder = 1
75 | end
76 | end
77 | object edParams: TEdit
78 | Left = 8
79 | Top = 119
80 | Width = 330
81 | Height = 21
82 | TabOrder = 3
83 | end
84 | object edPath: TMHLAutoCompleteEdit
85 | Left = 8
86 | Top = 73
87 | Width = 249
88 | Height = 21
89 | TabOrder = 1
90 | end
91 | object edTitle: TEdit
92 | Left = 8
93 | Top = 27
94 | Width = 330
95 | Height = 21
96 | TabOrder = 0
97 | end
98 | object btnBrowse: TButton
99 | Left = 263
100 | Top = 71
101 | Width = 75
102 | Height = 25
103 | Caption = #1054#1073#1079#1086#1088'...'
104 | TabOrder = 2
105 | OnClick = edPathButtonClick
106 | end
107 | end
108 |
--------------------------------------------------------------------------------
/Program/DAO/SQLite/unit_SQLiteUtils.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Author(s) eg
8 | * Nick Rymanov nrymanov@gmail.com
9 | * Created 04.09.2010
10 | * Description
11 | *
12 | * $Id: unit_SQLiteUtils.pas 774 2010-09-16 06:38:23Z nrymanov@gmail.com $
13 | *
14 | * History
15 | *
16 | ****************************************************************************** *)
17 |
18 | unit unit_SQLiteUtils;
19 |
20 | interface
21 |
22 | uses
23 | Classes;
24 |
25 | function ReadResourceAsStringList(const ResourceName: string): TStringList;
26 |
27 | implementation
28 |
29 | uses
30 | Windows,
31 | unit_Consts,
32 | SysUtils,
33 | StrUtils;
34 |
35 | const
36 | SQL_COMMENT = '--';
37 | SCRIPT_NEXT = SQL_COMMENT + '@@';
38 |
39 | //
40 | // Read provided resource file as a string list (split by '--@@')
41 | // This is done as ExecSQL works with only one statement at a time
42 | //
43 | function ReadResourceAsStringList(const ResourceName: string): TStringList;
44 | var
45 | rStream: TStream;
46 | rScript: TStringList;
47 | i: Integer;
48 | strStatement: string;
49 | begin
50 | Result := TStringList.Create;
51 | try
52 | rStream := TResourceStream.Create(HInstance, ResourceName, RT_RCDATA);
53 | try
54 | rScript := TStringList.Create;
55 | try
56 | rScript.LoadFromStream(rStream);
57 |
58 | strStatement := '';
59 | for i := 0 to rScript.Count - 1 do
60 | begin
61 | //
62 | // Пропустим пустые строки
63 | //
64 | if Trim(rScript[i]) = '' then
65 | Continue;
66 |
67 | //
68 | // Нашли конец команды. Запомним и начнем следующий цикл.
69 | //
70 | if StartsText(SCRIPT_NEXT, rScript[i]) then
71 | begin
72 | if strStatement <> '' then
73 | Result.Add(strStatement);
74 | strStatement := '';
75 | Continue;
76 | end;
77 |
78 | //
79 | // Пропустим коментарии
80 | //
81 | if StartsText(SQL_COMMENT, TrimLeft(rScript[i])) then
82 | Continue;
83 |
84 | strStatement := strStatement + rScript[i] + CRLF;
85 | end;
86 |
87 | //
88 | // Последняя команда может не иметь маркера завершения.
89 | //
90 | if strStatement <> '' then
91 | Result.Add(strStatement);
92 | finally
93 | rScript.Free;
94 | end;
95 | finally
96 | rStream.Free;
97 | end;
98 | except
99 | FreeAndNil(Result);
100 | raise;
101 | end;
102 | end;
103 |
104 |
105 | end.
106 |
--------------------------------------------------------------------------------
/Program/Wizards/NewCollection/frame_NCWOperation.dfm:
--------------------------------------------------------------------------------
1 | inherited frameNCWOperation: TframeNCWOperation
2 | Width = 330
3 | Height = 210
4 | Constraints.MinHeight = 210
5 | Constraints.MinWidth = 330
6 | ExplicitWidth = 330
7 | ExplicitHeight = 210
8 | object pageHint: TMHLStaticTip [0]
9 | AlignWithMargins = True
10 | Left = 14
11 | Top = 142
12 | Width = 302
13 | Height = 58
14 | Margins.Left = 14
15 | Margins.Right = 14
16 | Images = DMUser.SeverityImagesBig
17 | ImageIndex = 0
18 | Align = alTop
19 | ExplicitTop = 245
20 | end
21 | inherited pnTitle: TPanel
22 | Width = 330
23 | Height = 58
24 | StyleElements = [seFont, seClient, seBorder]
25 | ExplicitWidth = 330
26 | ExplicitHeight = 58
27 | inherited lblTitle: TLabel
28 | Width = 302
29 | Caption = #1058#1080#1087' '#1082#1086#1083#1083#1077#1082#1094#1080#1080
30 | StyleElements = [seFont, seClient, seBorder]
31 | ExplicitWidth = 85
32 | end
33 | inherited lblSubTitle: TLabel
34 | Width = 295
35 | Caption = #1059#1082#1072#1078#1080#1090#1077' '#1090#1080#1087' '#1085#1086#1074#1086#1081' '#1082#1086#1083#1083#1077#1082#1094#1080#1080
36 | StyleElements = [seFont, seClient, seBorder]
37 | ExplicitWidth = 168
38 | end
39 | end
40 | object Panel1: TPanel
41 | Left = 0
42 | Top = 58
43 | Width = 330
44 | Height = 81
45 | Align = alTop
46 | BevelOuter = bvNone
47 | TabOrder = 1
48 | object rbNew: TRadioButton
49 | AlignWithMargins = True
50 | Left = 14
51 | Top = 14
52 | Width = 195
53 | Height = 17
54 | Margins.Left = 14
55 | Margins.Top = 7
56 | Margins.Right = 7
57 | Margins.Bottom = 0
58 | Caption = #1053#1086#1074#1072#1103' '#1087#1091#1089#1090#1072#1103' '#1082#1086#1083#1083#1077#1082#1094#1080#1103
59 | Checked = True
60 | TabOrder = 0
61 | TabStop = True
62 | OnClick = OnSetCollectionType
63 | end
64 | object rbExisting: TRadioButton
65 | AlignWithMargins = True
66 | Left = 14
67 | Top = 38
68 | Width = 203
69 | Height = 17
70 | Margins.Left = 14
71 | Margins.Top = 7
72 | Margins.Right = 7
73 | Margins.Bottom = 0
74 | Caption = #1057#1091#1097#1077#1089#1090#1074#1091#1102#1097#1072#1103' '#1082#1086#1083#1083#1077#1082#1094#1080#1103' (hlc2)'
75 | TabOrder = 1
76 | OnClick = OnSetCollectionType
77 | end
78 | object rbInpx: TRadioButton
79 | AlignWithMargins = True
80 | Left = 14
81 | Top = 62
82 | Width = 306
83 | Height = 17
84 | Margins.Left = 7
85 | Margins.Top = 7
86 | Margins.Right = 7
87 | Margins.Bottom = 0
88 | Caption = #1050#1086#1083#1083#1077#1082#1094#1080#1103' '#1080#1079' '#1092#1072#1081#1083#1072' inpx'
89 | TabOrder = 2
90 | OnClick = OnSetCollectionType
91 | end
92 | end
93 | end
94 |
--------------------------------------------------------------------------------
/Program/Forms/frm_genre_tree.dfm:
--------------------------------------------------------------------------------
1 | object frmGenreTree: TfrmGenreTree
2 | Left = 0
3 | Top = 0
4 | BorderStyle = bsDialog
5 | Caption = #1057#1087#1080#1089#1086#1082' '#1078#1072#1085#1088#1086#1074
6 | ClientHeight = 482
7 | ClientWidth = 313
8 | Color = clBtnFace
9 | Font.Charset = DEFAULT_CHARSET
10 | Font.Color = clWindowText
11 | Font.Height = -11
12 | Font.Name = 'Tahoma'
13 | Font.Style = []
14 | Position = poMainFormCenter
15 | TextHeight = 13
16 | object pnButtons: TPanel
17 | Left = 0
18 | Top = 441
19 | Width = 313
20 | Height = 41
21 | Align = alBottom
22 | BevelOuter = bvNone
23 | Caption = 'pnButtons'
24 | ShowCaption = False
25 | TabOrder = 1
26 | DesignSize = (
27 | 313
28 | 41)
29 | object btnOk: TButton
30 | Left = 145
31 | Top = 10
32 | Width = 75
33 | Height = 25
34 | Anchors = [akTop, akRight]
35 | Caption = '&'#1057#1086#1093#1088#1072#1085#1080#1090#1100
36 | Default = True
37 | ModalResult = 1
38 | TabOrder = 0
39 | end
40 | object btnCancel: TButton
41 | Left = 226
42 | Top = 10
43 | Width = 75
44 | Height = 25
45 | Anchors = [akTop, akRight]
46 | Cancel = True
47 | Caption = '&'#1054#1090#1084#1077#1085#1072
48 | ModalResult = 2
49 | TabOrder = 1
50 | end
51 | end
52 | object tvGenresTree: TVirtualStringTree
53 | AlignWithMargins = True
54 | Left = 3
55 | Top = 3
56 | Width = 307
57 | Height = 435
58 | Align = alClient
59 | Colors.BorderColor = 15987699
60 | Colors.DisabledColor = clGray
61 | Colors.DropMarkColor = 15385233
62 | Colors.DropTargetColor = 15385233
63 | Colors.DropTargetBorderColor = 15385233
64 | Colors.FocusedSelectionColor = 15385233
65 | Colors.FocusedSelectionBorderColor = 15385233
66 | Colors.GridLineColor = 15987699
67 | Colors.HeaderHotColor = clBlack
68 | Colors.HotColor = clBlack
69 | Colors.SelectionRectangleBlendColor = 15385233
70 | Colors.SelectionRectangleBorderColor = 15385233
71 | Colors.SelectionTextColor = clBlack
72 | Colors.TreeLineColor = 9471874
73 | Colors.UnfocusedColor = clGray
74 | Colors.UnfocusedSelectionColor = clWhite
75 | Colors.UnfocusedSelectionBorderColor = clWhite
76 | Header.AutoSizeIndex = 0
77 | Header.DefaultHeight = 17
78 | Header.Height = 17
79 | Header.MainColumn = -1
80 | Header.Options = [hoColumnResize, hoDrag]
81 | TabOrder = 0
82 | TreeOptions.SelectionOptions = [toFullRowSelect, toMultiSelect, toRightClickSelect]
83 | OnFreeNode = tvGenresTreeFreeNode
84 | OnGetText = tvGenresTreeGetText
85 | OnGetNodeDataSize = tvGenresTreeGetNodeDataSize
86 | Touch.InteractiveGestures = [igPan, igPressAndTap]
87 | Touch.InteractiveGestureOptions = [igoPanSingleFingerHorizontal, igoPanSingleFingerVertical, igoPanInertia, igoPanGutter, igoParentPassthrough]
88 | Columns = <>
89 | end
90 | end
91 |
--------------------------------------------------------------------------------
/Program/Forms/frm_author_list.dfm:
--------------------------------------------------------------------------------
1 | object frmAuthorList: TfrmAuthorList
2 | Left = 0
3 | Top = 0
4 | BorderStyle = bsDialog
5 | Caption = #1057#1087#1080#1089#1086#1082' '#1072#1074#1090#1086#1088#1086#1074
6 | ClientHeight = 424
7 | ClientWidth = 327
8 | Color = clBtnFace
9 | Font.Charset = DEFAULT_CHARSET
10 | Font.Color = clWindowText
11 | Font.Height = -11
12 | Font.Name = 'Tahoma'
13 | Font.Style = []
14 | Position = poMainFormCenter
15 | TextHeight = 13
16 | object tvAuthorList: TVirtualStringTree
17 | AlignWithMargins = True
18 | Left = 3
19 | Top = 3
20 | Width = 321
21 | Height = 377
22 | Align = alClient
23 | Colors.BorderColor = 15987699
24 | Colors.DisabledColor = clGray
25 | Colors.DropMarkColor = 15385233
26 | Colors.DropTargetColor = 15385233
27 | Colors.DropTargetBorderColor = 15385233
28 | Colors.FocusedSelectionColor = 15385233
29 | Colors.FocusedSelectionBorderColor = 15385233
30 | Colors.GridLineColor = 15987699
31 | Colors.HeaderHotColor = clBlack
32 | Colors.HotColor = clBlack
33 | Colors.SelectionRectangleBlendColor = 15385233
34 | Colors.SelectionRectangleBorderColor = 15385233
35 | Colors.SelectionTextColor = clBlack
36 | Colors.TreeLineColor = 9471874
37 | Colors.UnfocusedColor = clGray
38 | Colors.UnfocusedSelectionColor = clWhite
39 | Colors.UnfocusedSelectionBorderColor = clWhite
40 | Header.AutoSizeIndex = 0
41 | Header.DefaultHeight = 17
42 | Header.Height = 17
43 | Header.MainColumn = -1
44 | Header.Options = [hoColumnResize, hoDrag]
45 | TabOrder = 0
46 | TreeOptions.SelectionOptions = [toFullRowSelect, toMultiSelect, toRightClickSelect]
47 | OnFreeNode = tvAuthorListFreeNode
48 | OnGetText = tvAuthorListGetText
49 | OnGetNodeDataSize = tvAuthorListGetNodeDataSize
50 | Touch.InteractiveGestures = [igPan, igPressAndTap]
51 | Touch.InteractiveGestureOptions = [igoPanSingleFingerHorizontal, igoPanSingleFingerVertical, igoPanInertia, igoPanGutter, igoParentPassthrough]
52 | Columns = <>
53 | end
54 | object pnButtons: TPanel
55 | Left = 0
56 | Top = 383
57 | Width = 327
58 | Height = 41
59 | Align = alBottom
60 | BevelOuter = bvNone
61 | Caption = 'pnButtons'
62 | ShowCaption = False
63 | TabOrder = 1
64 | DesignSize = (
65 | 327
66 | 41)
67 | object btnOk: TButton
68 | Left = 159
69 | Top = 10
70 | Width = 75
71 | Height = 25
72 | Anchors = [akTop, akRight]
73 | Caption = '&'#1057#1086#1093#1088#1072#1085#1080#1090#1100
74 | Default = True
75 | ModalResult = 1
76 | TabOrder = 0
77 | end
78 | object btnCancel: TButton
79 | Left = 240
80 | Top = 10
81 | Width = 75
82 | Height = 25
83 | Anchors = [akTop, akRight]
84 | Cancel = True
85 | Caption = '&'#1054#1090#1084#1077#1085#1072
86 | ModalResult = 2
87 | TabOrder = 1
88 | end
89 | end
90 | end
91 |
--------------------------------------------------------------------------------
/Components/MHLComponents/files_list.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Authors Oleksiy Penkov oleksiy.penkov@gmail.com
8 | * Nick Rymanov nrymanov@gmail.com
9 | * Created 20.08.2008
10 | * Description
11 | *
12 | * $Id: files_list.pas 1181 2015-04-01 02:06:36Z koreec $
13 | *
14 | * History
15 | *
16 | ****************************************************************************** *)
17 |
18 | unit files_list;
19 |
20 | interface
21 |
22 | uses
23 | WinApi.Windows,
24 | WinApi.Messages,
25 | SysUtils,
26 | Classes;
27 |
28 | type
29 | TOnDirectoryEvent = procedure(Sender: TObject; const Dir: string) of object;
30 | TOnFileEvent = procedure(Sender: TObject; const F: TSearchRec) of object;
31 |
32 | type
33 | TFilesList = class(TComponent)
34 | private
35 | FTargetPath: string;
36 | FLastDir: string;
37 |
38 | FOnDirectory: TOnDirectoryEvent;
39 | FOnFile: TOnFileEvent;
40 | FTerminate: boolean;
41 | FMask : string;
42 |
43 | procedure SetTargetPath(const S: string);
44 |
45 | procedure Recurs(const S: string; Level: Integer);
46 | public
47 | procedure Process;
48 | procedure Stop;
49 | published
50 | property TargetPath: string read FTargetPath write SetTargetPath;
51 | property LastDir: string read FLastDir;
52 |
53 | property OnDirectory: TOnDirectoryEvent read FOnDirectory write FOnDirectory;
54 | property OnFile: TOnFileEvent read FOnFile write FOnFile;
55 | property Terminate: boolean read FTerminate;
56 | property Mask: string write FMask;
57 | end;
58 |
59 | implementation
60 |
61 | procedure TFilesList.SetTargetPath(const S: string);
62 | begin
63 | FTargetPath := IncludeTrailingPathDelimiter(S);
64 | end;
65 |
66 | procedure TFilesList.Stop;
67 | begin
68 | FTerminate := True;
69 | end;
70 |
71 | procedure TFilesList.Process;
72 | begin
73 | FTerminate := False;
74 | if FMask = '' then FMask := '*.*';
75 | Recurs(FTargetPath, 0);
76 | end;
77 |
78 | procedure TFilesList.Recurs(const S: string; Level: Integer);
79 | var
80 | F: TSearchRec;
81 | begin
82 | if (Level > 512) then
83 | Exit;
84 |
85 | if Assigned(FOnDirectory) then
86 | FOnDirectory(Self, S);
87 |
88 | if FindFirst(S + FMask, faAnyFile, F) = 0 then
89 | begin
90 | repeat
91 | if FTerminate then Break;
92 |
93 | FLastDir := S;
94 | if Assigned(FOnFile) then
95 | FOnFile(Self, F);
96 |
97 | if (F.Attr and faDirectory = faDirectory) and (F.Name <> '.') and (F.Name <> '..') then
98 | Recurs(IncludeTrailingPathDelimiter(S + F.Name), Level + 1);
99 | until FindNext(F) <> 0;
100 |
101 | FindClose(F);
102 | end;
103 | end;
104 |
105 | end.
106 |
--------------------------------------------------------------------------------
/Program/Forms/frm_statistic.dfm:
--------------------------------------------------------------------------------
1 | object frmStat: TfrmStat
2 | Left = 0
3 | Top = 0
4 | BorderStyle = bsDialog
5 | Caption = #1057#1090#1072#1090#1080#1089#1090#1080#1082#1072' '#1082#1086#1083#1083#1077#1082#1094#1080#1080
6 | ClientHeight = 244
7 | ClientWidth = 473
8 | Color = clBtnFace
9 | Font.Charset = DEFAULT_CHARSET
10 | Font.Color = clWindowText
11 | Font.Height = -11
12 | Font.Name = 'Tahoma'
13 | Font.Style = []
14 | Position = poScreenCenter
15 | DesignSize = (
16 | 473
17 | 244)
18 | TextHeight = 13
19 | object btnClose: TButton
20 | Left = 386
21 | Top = 211
22 | Width = 75
23 | Height = 25
24 | Anchors = [akRight, akBottom]
25 | Cancel = True
26 | Caption = #1047#1072#1082#1088#1099#1090#1100
27 | Default = True
28 | ModalResult = 1
29 | TabOrder = 0
30 | end
31 | object lvInfo: TListView
32 | Left = 8
33 | Top = 8
34 | Width = 453
35 | Height = 197
36 | Anchors = [akLeft, akTop, akRight, akBottom]
37 | Columns = <
38 | item
39 | Caption = 'Prop'
40 | Width = 100
41 | end
42 | item
43 | Caption = 'Value'
44 | Width = 350
45 | end>
46 | ColumnClick = False
47 | Groups = <
48 | item
49 | Header = #1054#1073#1097#1072#1103' '#1080#1085#1092#1086#1088#1084#1072#1094#1080#1103
50 | GroupID = 0
51 | State = [lgsNormal]
52 | HeaderAlign = taLeftJustify
53 | FooterAlign = taLeftJustify
54 | TitleImage = -1
55 | end
56 | item
57 | Header = #1057#1090#1072#1090#1080#1089#1090#1080#1082#1072
58 | GroupID = 2
59 | State = [lgsNormal]
60 | HeaderAlign = taLeftJustify
61 | FooterAlign = taLeftJustify
62 | TitleImage = -1
63 | end>
64 | Items.ItemData = {
65 | 05CB0100000700000000000000FFFFFFFFFFFFFFFF0100000000000000000000
66 | 00091D0430043704320430043D04380435043A00087300750062002000690074
67 | 0065006D00885BBF3A00000000FFFFFFFFFFFFFFFF0100000000000000000000
68 | 000E1404300442043004200041043E043704340430043D0438044F043A000873
69 | 007500620020006900740065006D00A040BF3A00000000FFFFFFFFFFFFFFFF01
70 | 000000000000000000000007120435044004410438044F043A00087300750062
71 | 0020006900740065006D009849BF3A00000000FFFFFFFFFFFFFFFF0100000000
72 | 00000000000000091E043F043804410430043D04380435043A00087300750062
73 | 0020006900740065006D00D87FBF3A00000000FFFFFFFFFFFFFFFF0100000002
74 | 00000000000000081004320442043E0440043E0432043A000873007500620020
75 | 006900740065006D009067BF3A00000000FFFFFFFFFFFFFFFF01000000020000
76 | 0000000000051A043D04380433043A000873007500620020006900740065006D
77 | 00607ABF3A00000000FFFFFFFFFFFFFFFF010000000200000000000000062104
78 | 35044004380439043A000873007500620020006900740065006D00C077BF3AFF
79 | FFFFFFFFFFFFFFFFFFFFFFFFFF}
80 | GroupView = True
81 | ReadOnly = True
82 | RowSelect = True
83 | ShowColumnHeaders = False
84 | TabOrder = 1
85 | ViewStyle = vsReport
86 | end
87 | end
88 |
--------------------------------------------------------------------------------
/Program/Forms/Editors/frm_edit_script.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Authors Oleksiy Penkov oleksiy.penkov@gmail.com
8 | * Nick Rymanov nrymanov@gmail.com
9 | * Created 20.08.2008
10 | * Description
11 | *
12 | * $Id: frm_edit_script.pas 549 2010-08-13 08:02:58Z eg_ $
13 | *
14 | * History
15 | *
16 | ****************************************************************************** *)
17 |
18 | unit frm_edit_script;
19 |
20 | interface
21 |
22 | uses
23 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
24 | Dialogs, StdCtrls, Mask, ExtCtrls, unit_AutoCompleteEdit;
25 |
26 | type
27 | TfrmEditScript = class(TForm)
28 | Label1: TLabel;
29 | Label2: TLabel;
30 | edTitle: TEdit;
31 | edPath: TMHLAutoCompleteEdit;
32 | edParams: TEdit;
33 | Label3: TLabel;
34 | pnButtons: TPanel;
35 | btnOk: TButton;
36 | btnCancel: TButton;
37 | btnBrowse: TButton;
38 | procedure btnSaveClick(Sender: TObject);
39 | procedure edPathButtonClick(Sender: TObject);
40 | private
41 | procedure SetParams(const Value: string);
42 | procedure SetPath(const Value: string);
43 | procedure SetTitle(const Value: string);
44 | function GetParams: string;
45 | function GetPath: string;
46 | function GetTitle: string;
47 | public
48 | property Title: string read GetTitle write SetTitle;
49 | property Path: string read GetPath write SetPath;
50 | property Params: string read GetParams write SetParams;
51 | end;
52 |
53 | var
54 | frmEditScript: TfrmEditScript;
55 |
56 | implementation
57 |
58 | uses
59 | unit_Helpers;
60 |
61 | resourcestring
62 | rstrProvideNameAndPath = '”кажите название и путь!';
63 |
64 | {$R *.dfm}
65 |
66 | procedure TfrmEditScript.edPathButtonClick(Sender: TObject);
67 | var
68 | AFileName: string;
69 | begin
70 | if GetFileName(fnSelectScript, AFileName) then
71 | edPath.Text := AFileName;
72 | end;
73 |
74 | function TfrmEditScript.GetParams: string;
75 | begin
76 | Result := Trim(edParams.Text);
77 | end;
78 |
79 | function TfrmEditScript.GetPath: string;
80 | begin
81 | Result := Trim(edPath.Text);
82 | end;
83 |
84 | function TfrmEditScript.GetTitle: string;
85 | begin
86 | Result := Trim(edTitle.Text);
87 | end;
88 |
89 | procedure TfrmEditScript.SetParams(const Value: string);
90 | begin
91 | edParams.Text := Value;
92 | end;
93 |
94 | procedure TfrmEditScript.SetPath(const Value: string);
95 | begin
96 | edPath.Text := Value;
97 | end;
98 |
99 | procedure TfrmEditScript.SetTitle(const Value: string);
100 | begin
101 | edTitle.Text := Value;
102 | end;
103 |
104 | procedure TfrmEditScript.btnSaveClick(Sender: TObject);
105 | begin
106 | if (Title = '') or (Path = '') then
107 | MessageDlg(rstrProvideNameAndPath, mtError, [mbOk], 0)
108 | else
109 | ModalResult := mrOk;
110 | end;
111 |
112 | end.
113 |
--------------------------------------------------------------------------------
/Program/Wizards/NewCollection/frame_NCWCollectionFileTypes.dfm:
--------------------------------------------------------------------------------
1 | inherited frameNCWCollectionFileTypes: TframeNCWCollectionFileTypes
2 | Width = 460
3 | Height = 216
4 | Constraints.MinHeight = 200
5 | Constraints.MinWidth = 460
6 | ExplicitWidth = 460
7 | ExplicitHeight = 216
8 | object pageHint: TMHLStaticTip [0]
9 | AlignWithMargins = True
10 | Left = 14
11 | Top = 150
12 | Width = 432
13 | Height = 59
14 | Margins.Left = 14
15 | Margins.Right = 14
16 | ImageIndex = 0
17 | Align = alTop
18 | ExplicitTop = 126
19 | end
20 | inherited pnTitle: TPanel
21 | Width = 460
22 | Height = 58
23 | StyleElements = [seFont, seClient, seBorder]
24 | ExplicitWidth = 460
25 | ExplicitHeight = 58
26 | inherited lblTitle: TLabel
27 | Width = 432
28 | Caption = #1060#1086#1088#1084#1072#1090' '#1092#1072#1081#1083#1086#1074
29 | StyleElements = [seFont, seClient, seBorder]
30 | ExplicitWidth = 91
31 | end
32 | inherited lblSubTitle: TLabel
33 | Width = 425
34 | Caption = #1059#1082#1072#1078#1080#1090#1077' '#1082#1085#1080#1075#1080' '#1074' '#1082#1072#1082#1086#1084' '#1092#1086#1088#1084#1072#1090#1077' '#1074#1099' '#1087#1083#1072#1085#1080#1088#1091#1077#1090#1077' '#1093#1088#1072#1085#1080#1090#1100' '#1074' '#1082#1086#1083#1083#1077#1082#1094#1080#1080
35 | StyleElements = [seFont, seClient, seBorder]
36 | ExplicitWidth = 383
37 | end
38 | end
39 | object Panel3: TPanel
40 | Left = 0
41 | Top = 58
42 | Width = 460
43 | Height = 89
44 | Margins.Left = 7
45 | Margins.Top = 7
46 | Margins.Right = 7
47 | Margins.Bottom = 0
48 | Align = alTop
49 | BevelOuter = bvNone
50 | Constraints.MinWidth = 460
51 | TabOrder = 1
52 | object rbSoreAnyFiles: TRadioButton
53 | AlignWithMargins = True
54 | Left = 14
55 | Top = 38
56 | Width = 439
57 | Height = 17
58 | Margins.Left = 14
59 | Margins.Top = 7
60 | Margins.Right = 7
61 | Margins.Bottom = 0
62 | Align = alTop
63 | Caption = #1050#1085#1080#1075#1080' '#1074' '#1076#1088#1091#1075#1080#1093' '#1092#1086#1088#1084#1072#1090#1072#1093' (fbd, pdf, djvu)'
64 | TabOrder = 0
65 | OnClick = OnSetFileType
66 | end
67 | object rbSoreFB2Files: TRadioButton
68 | AlignWithMargins = True
69 | Left = 14
70 | Top = 14
71 | Width = 439
72 | Height = 17
73 | Margins.Left = 14
74 | Margins.Top = 14
75 | Margins.Right = 7
76 | Margins.Bottom = 0
77 | Align = alTop
78 | Caption = #1050#1085#1080#1075#1080' '#1074' '#1092#1086#1088#1084#1072#1090#1077' FictionBook'
79 | Checked = True
80 | TabOrder = 1
81 | TabStop = True
82 | OnClick = OnSetFileType
83 | end
84 | object cbAutoImport: TCheckBox
85 | Left = 14
86 | Top = 66
87 | Width = 403
88 | Height = 17
89 | Caption = #1053#1072#1095#1072#1090#1100' '#1080#1084#1087#1086#1088#1090' '#1082#1085#1080#1075' '#1087#1086#1089#1083#1077' '#1089#1086#1079#1076#1072#1085#1080#1103' '#1082#1086#1083#1083#1077#1082#1094#1080#1080
90 | Checked = True
91 | State = cbChecked
92 | TabOrder = 2
93 | end
94 | end
95 | end
96 |
--------------------------------------------------------------------------------
/Program/Units/unit_SearchUtils.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Created 12.02.2010
8 | * Description
9 | * Author(s) Oleksiy Penkov oleksiy.penkov@gmail.com
10 | *
11 | * $Id: unit_SearchUtils.pas 642 2010-08-26 13:04:37Z eg_ $
12 | *
13 | * History
14 | * NickR 15.02.2010 Код переформатирован
15 | *
16 | ****************************************************************************** *)
17 |
18 | unit unit_SearchUtils;
19 |
20 | interface
21 |
22 | procedure AddToFilter(const Field: string; Value: string; UP: Boolean; var FilterString: string);
23 | function PrepareQuery(S: string; UP: Boolean; ConverToFull: Boolean = True): string;
24 |
25 | procedure AddToWhere(var Where: string; const Filter: string);
26 |
27 | implementation
28 |
29 | uses
30 | StrUtils,
31 | SysUtils,
32 | unit_Globals,
33 | unit_Consts;
34 |
35 | procedure AddToFilter(const Field: string; Value: string; UP: Boolean; var FilterString: string);
36 | var
37 | FixedField: string;
38 | begin
39 | if Value = '' then
40 | Exit;
41 |
42 | if UP then
43 | FixedField := 'UPPER(' + Field + ')'
44 | else
45 | FixedField := Field;
46 |
47 | Value := ' ' + Value; // this way the search for ' LIKE' and such is possible for the first expression as well
48 | StrReplace(CRLF, ' ', Value);
49 | StrReplace(LF, ' ', Value);
50 | StrReplace(' LIKE ', ' ' + FixedField + #7 + 'LIKE ', Value);
51 | StrReplace('(LIKE ', ' (' + FixedField + #7 + 'LIKE ', Value);
52 | StrReplace(' =', ' ' + FixedField + #7 + '=', Value);
53 | StrReplace(' <>', ' ' + FixedField + #7 + '<>', Value);
54 | StrReplace(' <', ' ' + FixedField + #7 + '<', Value);
55 | StrReplace(' >', ' ' + FixedField + #7 + '>', Value);
56 | StrReplace(#7, ' ', Value);
57 |
58 | if FilterString <> '' then
59 | FilterString := FilterString + ' AND (' + Value + ')'
60 | else
61 | FilterString := '(' + Value + ')';
62 | end;
63 |
64 | function Clear(const S: string): string; inline;
65 | begin
66 | Result := S;
67 | StrReplace(CRLF, ' ', Result);
68 | Trim(Result);
69 | end;
70 |
71 | // проверяем запрос, если нативный - преобразовываем в SQL
72 | function PrepareQuery(S: string; UP: Boolean; ConverToFull: Boolean = True): string;
73 | begin
74 | if UP then
75 | S := Trim(AnsiUpperCase(S));
76 |
77 | if S = '' then
78 | begin
79 | Result := '';
80 | Exit;
81 | end;
82 |
83 | if ConverToFull and (Pos('%', S) = 0) and (Pos('=', S) = 0) and (Pos('"', S) = 0) and (Pos('LIKE', S) = 0) then
84 | S := Format('%%%s%%', [S]);
85 |
86 | if (Pos('=', S) = 0) and (Pos('LIKE', S) = 0) and (Pos('"', S) = 0) then
87 | begin
88 | if Pos('%', S) = 0 then
89 | S := '="' + S + '"'
90 | else
91 | S := 'LIKE "' + S + '"';
92 | end;
93 |
94 | Result := Clear(S);
95 | end;
96 |
97 | procedure AddToWhere(var Where: string; const Filter: string);
98 | begin
99 | if Where = '' then
100 | Where := ' WHERE '
101 | else
102 | Where := Where + ' AND ';
103 | Where := Where + Filter;
104 | end;
105 |
106 | end.
107 |
--------------------------------------------------------------------------------
/Program/DataModules/dm_user.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Authors Oleksiy Penkov oleksiy.penkov@gmail.com
8 | * Nick Rymanov nrymanov@gmail.com
9 | * Created
10 | * Description
11 | *
12 | * $Id: dm_user.pas 845 2010-10-06 11:03:28Z nrymanov@gmail.com $
13 | *
14 | * History
15 | * NickR 02.03.2010 Код переформатирован
16 | *
17 | ****************************************************************************** *)
18 |
19 | unit dm_user;
20 |
21 | interface
22 |
23 | uses
24 | ImgList,
25 | Classes,
26 | Controls,
27 | unit_Settings,
28 | unit_Interfaces, System.ImageList;
29 |
30 | type
31 | TDMUser = class(TDataModule)
32 | SeverityImages: TImageList;
33 | SeverityImagesBig: TImageList;
34 |
35 | private
36 | FSettings: TMHLSettings;
37 | FSystemDB: ISystemData;
38 |
39 | function InternalGetSystemDB(const FileName: string): ISystemData; inline;
40 |
41 | public const
42 | iiInfo = 0;
43 | iiWarning = 1;
44 | iiError = 2;
45 |
46 | public
47 | constructor Create(AOwner: TComponent); override;
48 | destructor Destroy; override;
49 |
50 | procedure Init;
51 |
52 | function GetSystemDBConnection: ISystemData;
53 |
54 | property Settings: TMHLSettings read FSettings;
55 | property SystemDB: ISystemData read FSystemDB;
56 | end;
57 |
58 | var
59 | DMUser: TDMUser;
60 |
61 | function Settings: TMHLSettings; inline;
62 | function SystemDB: ISystemData; inline;
63 |
64 | implementation
65 |
66 | {$R *.dfm}
67 |
68 | uses
69 | SysUtils,
70 | IOUtils,
71 | unit_SystemDatabase_SQLite;
72 |
73 | function Settings: TMHLSettings; inline;
74 | begin
75 | Assert(Assigned(DMUser));
76 | Assert(Assigned(DMUser.FSettings));
77 | Result := DMUser.Settings;
78 | end;
79 |
80 | function SystemDB: ISystemData; inline;
81 | begin
82 | Assert(Assigned(DMUser));
83 | Assert(Assigned(DMUser.SystemDB));
84 | Result := DMUser.SystemDB;
85 | end;
86 |
87 | { TDMUser }
88 |
89 | constructor TDMUser.Create(AOwner: TComponent);
90 | begin
91 | inherited Create(AOwner);
92 | FSettings := TMHLSettings.Create;
93 | end;
94 |
95 | destructor TDMUser.Destroy;
96 | begin
97 | if Assigned(FSystemDB) then
98 | begin
99 | FSystemDB.ClearCollectionCache;
100 | FSystemDB := nil;
101 | end;
102 | FreeAndNil(FSettings);
103 | inherited Destroy;
104 | end;
105 |
106 | function TDMUser.InternalGetSystemDB(const FileName: string): ISystemData;
107 | begin
108 | Result := TSystemData_SQLite.Create(FileName);
109 | end;
110 |
111 | procedure TDMUser.Init;
112 | var
113 | SysDBFileName: string;
114 | begin
115 | FSettings.LoadSettings;
116 | TDirectory.CreateDirectory(FSettings.TempDir);
117 | TDirectory.CreateDirectory(FSettings.DataDir);
118 |
119 | SysDBFileName := FSettings.SystemFileName[sfSystemDB];
120 | if not FileExists(SysDBFileName) then
121 | TSystemData_SQLite.CreateSystemTables(SysDBFileName);
122 |
123 | FSystemDB := InternalGetSystemDB(SysDBFileName);
124 | end;
125 |
126 | function TDMUser.GetSystemDBConnection: ISystemData;
127 | begin
128 | Result := InternalGetSystemDB(FSettings.SystemFileName[sfSystemDB]);
129 | end;
130 |
131 | end.
132 |
--------------------------------------------------------------------------------
/Program/Wizards/NewCollection/frame_NCWOperation.pas:
--------------------------------------------------------------------------------
1 | {******************************************************************************}
2 | { }
3 | { MyHomeLib }
4 | { }
5 | { Version 0.9 }
6 | { 20.08.2008 }
7 | { Copyright (c) Oleksiy Penkov oleksiy.penkov@gmail.com }
8 | { }
9 | { @author Nick Rymanov nrymanov@gmail.com }
10 | { }
11 | {******************************************************************************}
12 |
13 | unit frame_NCWOperation;
14 |
15 | interface
16 |
17 | uses
18 | Windows,
19 | Messages,
20 | SysUtils,
21 | Variants,
22 | Classes,
23 | Graphics,
24 | Controls,
25 | Forms,
26 | Dialogs,
27 | frame_InteriorPageBase,
28 | StdCtrls,
29 | ExtCtrls,
30 | unit_StaticTip,
31 | unit_NCWParams;
32 |
33 | type
34 | TframeNCWOperation = class(TInteriorPageBase)
35 | Panel1: TPanel;
36 | rbNew: TRadioButton;
37 | rbExisting: TRadioButton;
38 | pageHint: TMHLStaticTip;
39 | rbInpx: TRadioButton;
40 | procedure OnSetCollectionType(Sender: TObject);
41 | private
42 |
43 | public
44 | function Activate(LoadData: Boolean): Boolean; override;
45 | function Deactivate(CheckData: Boolean): Boolean; override;
46 | end;
47 |
48 | var
49 | frameNCWOperation: TframeNCWOperation;
50 |
51 | implementation
52 |
53 | resourcestring
54 | rstrCreateNew = 'Выберите этот пункт для создания пустых коллекций';
55 | rstrAddExists = 'Подключить ранее созданную коллекцию. Требуется файл коллекции *.hlc';
56 | rstrInpxBased = 'Создать коллекцию из имеющегося файла inpx (коллекции lib.rus.ec, Flibusta, Traum)';
57 |
58 | {$R *.dfm}
59 |
60 | procedure TframeNCWOperation.OnSetCollectionType(Sender: TObject);
61 | begin
62 | if Sender = rbNew then
63 | pageHint.Caption := rstrCreateNew
64 | else if Sender = rbExisting then
65 | pageHint.Caption := rstrAddExists
66 | else if Sender = rbInpx then
67 | pageHint.Caption := rstrInpxBased
68 | end;
69 |
70 | function TframeNCWOperation.Activate(LoadData: Boolean): Boolean;
71 | var
72 | rb: TRadioButton;
73 | begin
74 | if LoadData then
75 | begin
76 | case FPParams^.Operation of
77 | otNew: rb := rbNew;
78 | otExisting: rb := rbExisting;
79 | otInpx: rb := rbInpx;
80 | else
81 | Assert(False);
82 | Result := False;
83 | Exit;
84 | end;
85 |
86 | Assert(Assigned(rb));
87 |
88 | rb.Checked := True;
89 | OnSetCollectionType(rb);
90 | end;
91 |
92 | Result := True;
93 | end;
94 |
95 | function TframeNCWOperation.Deactivate(CheckData: Boolean): Boolean;
96 | begin
97 | if rbNew.Checked then
98 | begin
99 | FPParams^.Operation := otNew;
100 | FPParams^.CollectionType := ltUser;
101 | end
102 | else if rbExisting.Checked then
103 | FPParams^.Operation := otExisting
104 | else
105 | FPParams^.Operation := otInpx;
106 |
107 | Result := True;
108 | end;
109 |
110 | end.
111 |
112 |
--------------------------------------------------------------------------------
/Components/MHLComponents/unit_AutoCompleteEdit.pas:
--------------------------------------------------------------------------------
1 | (* *****************************************************************************
2 | *
3 | * MyHomeLib
4 | *
5 | * Copyright (C) 2008-2023 Oleksiy Penkov (aka Koreec)
6 | *
7 | * Author(s) Nick Rymanov nrymanov@gmail.com
8 | * Created
9 | * Description Строка редактирования с поддержкой автокомплита
10 | *
11 | * $Id: unit_AutoCompleteEdit.pas 785 2010-09-17 09:06:06Z nrymanov@gmail.com $
12 | *
13 | * History
14 | *
15 | ****************************************************************************** *)
16 |
17 | unit unit_AutoCompleteEdit;
18 |
19 | interface
20 |
21 | uses
22 | Windows, SysUtils, Classes, Controls, StdCtrls, ComObj, ShLwApi;
23 |
24 | type
25 | TAutoCompleteOption = (
26 | acoFileSystem,
27 | acoURLHistory,
28 | acoURLMRU,
29 | acoUseTab,
30 | acoFileSysOnly,
31 | acoAutoSuggestForceOn,
32 | acoAutoSuggestForceOff,
33 | acoAutoAppendForceOn,
34 | acoAutoAppendForceOff
35 | );
36 |
37 | TAutoCompleteOptions = set of TAutoCompleteOption;
38 |
39 | TMHLAutoCompleteEdit = class(TEdit)
40 | private
41 | FAutoComplete: Boolean;
42 | FAutoCompleteOptions: TAutoCompleteOptions;
43 | procedure SetAutoComplete(const Value: Boolean);
44 | procedure SetAutoCompleteOptions(const Value: TAutoCompleteOptions);
45 |
46 | function GetACFlags: DWORD;
47 |
48 | protected
49 | procedure CreateWnd; override;
50 |
51 | public
52 | constructor Create(AOwner: TComponent); override;
53 |
54 | published
55 | property AutoComplete: Boolean read FAutoComplete write SetAutoComplete default True;
56 | property AutoCompleteOption: TAutoCompleteOptions read FAutoCompleteOptions write SetAutoCompleteOptions default [];
57 | end;
58 |
59 | implementation
60 |
61 | { TMHLAutoCompleteEdit }
62 |
63 | constructor TMHLAutoCompleteEdit.Create(AOwner: TComponent);
64 | begin
65 | inherited;
66 | FAutoComplete := True;
67 | FAutoCompleteOptions := [];
68 | end;
69 |
70 | function TMHLAutoCompleteEdit.GetACFlags: DWORD;
71 | const
72 | ACOptions: array [TAutoCompleteOption] of DWORD = (
73 | SHACF_FILESYSTEM,
74 | SHACF_URLHISTORY,
75 | SHACF_URLMRU,
76 | SHACF_USETAB,
77 | SHACF_FILESYS_ONLY,
78 | SHACF_AUTOSUGGEST_FORCE_ON,
79 | SHACF_AUTOSUGGEST_FORCE_OFF,
80 | SHACF_AUTOAPPEND_FORCE_ON,
81 | SHACF_AUTOAPPEND_FORCE_OFF
82 | );
83 | var
84 | Option: TAutoCompleteOption;
85 | begin
86 | if FAutoCompleteOptions = [] then
87 | begin
88 | Result := SHACF_DEFAULT;
89 | Exit;
90 | end;
91 |
92 | Result := 0;
93 | for Option := Low(Option) to High(Option) do
94 | if Option in FAutoCompleteOptions then
95 | Result := Result or ACOptions[Option];
96 | end;
97 |
98 | procedure TMHLAutoCompleteEdit.CreateWnd;
99 | begin
100 | inherited;
101 |
102 | if FAutoComplete then
103 | begin
104 | SHAutoComplete(Handle, GetACFlags);
105 | end;
106 | end;
107 |
108 | procedure TMHLAutoCompleteEdit.SetAutoComplete(const Value: Boolean);
109 | begin
110 | if FAutoComplete <> Value then
111 | begin
112 | FAutoComplete := Value;
113 | RecreateWnd;
114 | end;
115 | end;
116 |
117 | procedure TMHLAutoCompleteEdit.SetAutoCompleteOptions(const Value: TAutoCompleteOptions);
118 | begin
119 | if FAutoCompleteOptions <> Value then
120 | begin
121 | FAutoCompleteOptions := Value;
122 | RecreateWnd;
123 | end;
124 | end;
125 |
126 | end.
127 |
128 |
--------------------------------------------------------------------------------