{"id":437,"date":"2024-03-06T11:35:48","date_gmt":"2024-03-06T10:35:48","guid":{"rendered":"https:\/\/melander.dk\/graphics32\/?page_id=437"},"modified":"2025-08-09T00:09:19","modified_gmt":"2025-08-08T22:09:19","slug":"installation","status":"publish","type":"page","link":"https:\/\/melander.dk\/graphics32\/installation\/","title":{"rendered":"Installation"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Get the source code<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">You can get the latest source code from the Graphics32 Git repository. Either using a Git client to clone the repository or by simply downloading a zip file with the latest snapshot.<\/p>\n\n\n\n<ul id=\"block-96405d79-1b59-4cc1-9306-12ce9aafef1c\" class=\"wp-block-list\">\n<li>Git: <a href=\"https:\/\/github.com\/graphics32\/graphics32.git\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/graphics32\/graphics32.git<\/a><\/li>\n\n\n\n<li>Zip file: <a href=\"https:\/\/github.com\/graphics32\/graphics32\/archive\/refs\/heads\/master.zip\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/graphics32\/graphics32\/archive\/refs\/heads\/master.zip<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Copy the source code to a location of your choice. In the installation procedures below we use the location <code>C:\\Projects\\Graphics32<\/code> as an example.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Installation procedure for Delphi \/ C++ Builder \/ RAD Studio<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Note: While the following procedure only mentions Delphi it applies to both Delphi and C++ Builder.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Start Delphi.<\/li>\n\n\n\n<li>Add the location of the Graphics32 source to the global library search path.<br>You can skip this step if you prefer to use per-project library search paths for your own projects. All of Graphics32&#8217;s own packages and examples use per-project search paths so they don&#8217;t require the source to be in the global search path.\n<ol class=\"wp-block-list\">\n<li>From the menu select <strong>Tools<\/strong>\u2192<strong>Options&#8230;<\/strong><\/li>\n\n\n\n<li>Select <strong>Language<\/strong>\u2192<strong>Delphi<\/strong>\u2192<strong>Library<\/strong>.<\/li>\n\n\n\n<li>Select the <strong>Library path<\/strong> field and add the source folder location: <code>C:\\Projects\\Graphics32\\Source<\/code>.<\/li>\n\n\n\n<li>Do the above for all the required platforms; Windows 32-bit, Windows 64-bit, etc.<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>From the menu, select <strong>File<\/strong>\u2192<strong>Open project&#8230;<\/strong><\/li>\n\n\n\n<li>Navigate to the <code>Grapics32\\Source\\Packages<\/code> folder and from there open the package folder that corresponds to your version of Delphi.<br>Note that Delphi 11 and later versions all use the same package files.<\/li>\n\n\n\n<li>Open the <code>Graphics32_packages.groupproj<\/code> project group file.<br>The project group contains two projects:\n<ul class=\"wp-block-list\">\n<li>The Graphics32 run-time package: <code>GR32_R<\/code><\/li>\n\n\n\n<li>The Graphics32 design-time package: <code>GR32_D<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>From the Delphi project manager, activate the Graphics32 run-time package and compile it.<br><img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"134\" class=\"wp-image-456\" style=\"width: 200px;\" src=\"https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2024\/03\/GR32_R-compile.png\" alt=\"\" srcset=\"https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2024\/03\/GR32_R-compile.png 348w, https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2024\/03\/GR32_R-compile-300x202.png 300w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/li>\n\n\n\n<li>From the Delphi project manager, activate the Graphics32 design-time package and install it.<br><img loading=\"lazy\" decoding=\"async\" width=\"200\" height=\"194\" class=\"wp-image-455\" style=\"width: 200px;\" src=\"https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2024\/03\/GR32_D-install.png\" alt=\"\" srcset=\"https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2024\/03\/GR32_D-install.png 324w, https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2024\/03\/GR32_D-install-300x292.png 300w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/li>\n\n\n\n<li>You should now get a message box notifying you of the package installation and the components it contains:<br><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"91\" class=\"wp-image-457\" style=\"width: 700px;\" src=\"https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2024\/03\/GR32_D-after-install.png\" alt=\"\" srcset=\"https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2024\/03\/GR32_D-after-install.png 1296w, https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2024\/03\/GR32_D-after-install-300x39.png 300w, https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2024\/03\/GR32_D-after-install-1024x133.png 1024w, https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2024\/03\/GR32_D-after-install-768x100.png 768w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\">Installation procedure for Lazarus<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">The installation procedure for Lazarus is pretty horrible due to deficiencies in the FreePascal compiler or the Lazarus build system.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open the <code>GR32_Lazarus<\/code> run-time package. .<br>Select <strong>Recompile clean<\/strong> from the <strong>More<\/strong> package toolbar menu.<br><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"247\" class=\"wp-image-483\" style=\"width: 300px;\" src=\"https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2025\/08\/LazarusRecompileClean.png\" alt=\"\" srcset=\"https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2025\/08\/LazarusRecompileClean.png 465w, https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2025\/08\/LazarusRecompileClean-300x247.png 300w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/li>\n\n\n\n<li>Compile <code>GR32_Lazarus<\/code> again.<br>Repeat this 3-4 times until the compile completes without any messages.<br><img loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"64\" class=\"wp-image-484\" style=\"width: 400px;\" src=\"https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2025\/08\/LazarusCompileResult.png\" alt=\"\" srcset=\"https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2025\/08\/LazarusCompileResult.png 504w, https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2025\/08\/LazarusCompileResult-300x48.png 300w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/li>\n\n\n\n<li>Open the <code>GR32_DSGN_Lazarus<\/code> design-time package.<br>Select <strong>Use<\/strong>\u2192<strong>Install<\/strong> from the package toolbar.<br><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"208\" class=\"wp-image-485\" style=\"width: 300px;\" src=\"https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2025\/08\/LazarusUseInstall.png\" alt=\"\" srcset=\"https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2025\/08\/LazarusUseInstall.png 466w, https:\/\/melander.dk\/graphics32\/wp-content\/uploads\/2025\/08\/LazarusUseInstall-300x208.png 300w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">See also:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/graphics32\/graphics32\/issues\/297#issuecomment-2050525983\">Graphics32, issue 297: Lazarus design time support broken<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/gitlab.com\/freepascal.org\/fpc\/source\/-\/issues\/12223\" target=\"_blank\" rel=\"noreferrer noopener\">FreePascal, issue 12223: Unit with inline, and recursive uses, needs recompilation right after compilation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/gitlab.com\/freepascal.org\/fpc\/source\/-\/issues\/15221\" target=\"_blank\" rel=\"noreferrer noopener\">FreePascal, issue 15221: Checksum issue<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/gitlab.com\/freepascal.org\/fpc\/source\/-\/issues\/19673\" target=\"_blank\" rel=\"noreferrer noopener\">FreePascal, issue 19673: Problems with circular references and inline procedures.<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Get the source code You can get the latest source code from the Graphics32 Git repository. Either using a Git client to clone the repository or by simply downloading a zip file with the latest snapshot. Copy the source code<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-437","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/melander.dk\/graphics32\/wp-json\/wp\/v2\/pages\/437","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/melander.dk\/graphics32\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/melander.dk\/graphics32\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/melander.dk\/graphics32\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/melander.dk\/graphics32\/wp-json\/wp\/v2\/comments?post=437"}],"version-history":[{"count":17,"href":"https:\/\/melander.dk\/graphics32\/wp-json\/wp\/v2\/pages\/437\/revisions"}],"predecessor-version":[{"id":490,"href":"https:\/\/melander.dk\/graphics32\/wp-json\/wp\/v2\/pages\/437\/revisions\/490"}],"wp:attachment":[{"href":"https:\/\/melander.dk\/graphics32\/wp-json\/wp\/v2\/media?parent=437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}