Board.KolibriOS.org

Official KolibriOS board
It is currently Sat Jul 20, 2019 2:18 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 25 posts ]  Go to page 1 2 Next
Author Message
 Post subject: Delphi7 examples
PostPosted: Sat Feb 04, 2017 10:00 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Here are some Delphi7 examples of using wrappers to call system functions from KolibriOS.lib.
Also, it is possible to use FreePascal compiler i hope. Newer version is more compatible with Delphi.
The main goal is more convenient programming with KolibriOS API.

Tools needed:
Code:
dcc32   — Delphi compiler
omf2d   — utility for converting from Borland omf to Intel omf
link    — Microsoft linker
ld      — GNU linker
objcopy — utility to convert object files
Here omf2d utility just in case:
Attachment:
OMF2D.7z [40.7 KiB]
Downloaded 175 times
Some examples and KolibriOS.lib:
Attachment:
KOSLib_Demo.7z [23.75 KiB]
Downloaded 181 times
It contains these 5 examples:
{1} Just a simple window.
Used functions: DrawWindow, GetScreenSize, WaitEvent, BeginDraw, EndDraw, GetKey, GetButton, ThreadTerminate.
Spoiler: Show
Image
{2} When you click on the buttons the window caption changes.
Used functions: DrawButton, GetButton, SetWindowCaption, GetScreenSize, WaitEvent, BeginDraw, DrawWindow, EndDraw, GetKey, ThreadTerminate.
Spoiler: Show
Attachment:
2.PNG
2.PNG [ 2.92 KiB | Viewed 4061 times ]
{3} Press on the keyboard and text will be drawn in window.
Used functions: GetKey, DrawText, GetScreenSize, WaitEvent, BeginDraw, DrawWindow, EndDraw, GetButton, ThreadTerminate.
Spoiler: Show
Attachment:
3.PNG
3.PNG [ 3.92 KiB | Viewed 4061 times ]
{4} Load example.asm into console window.
Used functions: LoadFile, LoadLibrary, GetProcAddress, ThreadTerminate.
Spoiler: Show
Image
{5} Show CurrentDirectory, AppPath and CmdLine in console window.
Used functions: GetCurrentDirectory, LoadLibrary, GetProcAddress, ThreadTerminate.

In the case of new examples they will be added to this topic below.


Top
   
 Post subject: Re: Delphi7 examples
PostPosted: Sat Feb 11, 2017 11:43 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
DrawImage example.

Load 24 bits per pixel targa file and draw it into the window.
This image file is uncompressed and was saved with top to bottom pixel order.
Used functions: DrawImage, LoadFile, HeapCreate, SetCurrentDirectory, GetScreenSize, WaitEvent, BeginDraw, DrawWindow, EndDraw, GetKey, GetButton, ThreadTerminate.

Screenshot:
Spoiler: Show
Attachment:
6.PNG
6.PNG [ 12 KiB | Viewed 4009 times ]
Source:
Attachment:
{6} DrawImage.7z [9.26 KiB]
Downloaded 136 times


Top
   
 Post subject: Re: Delphi7 examples
PostPosted: Sun Feb 19, 2017 11:47 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Just a simple example. Drawing in the window with SetPixel function.
Used functions: SetPixel, BeginDraw, DrawWindow, EndDraw, WaitEvent, GetKey, GetButton, GetScreenSize, ThreadTerminate.

Screenshot:
Spoiler: Show
Attachment:
7.PNG
7.PNG [ 2.66 KiB | Viewed 3942 times ]
Source:
Attachment:
{7} SetPixel.7z [814 Bytes]
Downloaded 132 times


Top
   
 Post subject: Re: Delphi7 examples
PostPosted: Mon May 15, 2017 2:12 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Show info about the thread with given slot in the console window.
Used functions: LoadLibrary, GetProcAddress, GetThreadInfo, ThreadTerminate.

Screenshot:
Spoiler: Show
Attachment:
8.PNG
8.PNG [ 12.68 KiB | Viewed 3547 times ]


Source:
Attachment:
{8} GetThreadInfo.7z [1.15 KiB]
Downloaded 110 times


Top
   
 Post subject: Re: Delphi7 examples
PostPosted: Sat May 27, 2017 3:44 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Draw the rectangle with a color of the pixel under the mouse.
Used functions: GetPixel, GetMousePos, DrawRectangle, GetScreenSize, SetEventMask, WaitEvent, BeginDraw, DrawWindow, DrawLine, EndDraw, GetButton, ThreadTerminate.

Screenshot:
Spoiler: Show
Attachment:
9.PNG
9.PNG [ 2.79 KiB | Viewed 3469 times ]

Source:
Attachment:
{9} GetPixel.7z [865 Bytes]
Downloaded 106 times


Top
   
 Post subject: Re: Delphi7 examples
PostPosted: Sun Jun 04, 2017 9:10 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Reading the contents of a folder in the console window.
Used functions: ReadFolder, LoadLibrary, GetProcAddress, ThreadTerminate.

Screenshot:
Spoiler: Show
Attachment:
10.PNG
10.PNG [ 16.22 KiB | Viewed 3432 times ]

Source:
Attachment:
{10} ReadFolder.7z [959 Bytes]
Downloaded 111 times


Top
   
 Post subject: Re: Delphi7 examples
PostPosted: Sun Jun 11, 2017 9:24 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Reading image files with different bits per pixel values(4, 1, 24) and draw images in window.
Used functions: DrawImageEx, ReadFile, HeapCreate, HeapAllocate, SetCurrentDirectory, GetFileAttributes, GetScreenSize, WaitEvent, BeginDraw, DrawWindow, EndDraw, GetKey, GetButton, ThreadTerminate.

Screenshot:
Spoiler: Show
Attachment:
11.PNG
11.PNG [ 16.49 KiB | Viewed 3376 times ]

Source:
Attachment:
{11} DrawImageEx.7z [10.58 KiB]
Downloaded 97 times


Top
   
 Post subject: Re: Delphi7 examples
PostPosted: Mon Jun 19, 2017 10:12 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Launch application "TextEditor" with parameters for open "example.asm" in it. Also do minimize and restore "TextEditor" window.
Used functions: RunFile, MinimizeWindowByID, RestoreWindowByID, DrawText, GetScreenSize, WaitEvent, BeginDraw, DrawWindow, DrawButton, EndDraw, GetKey, GetButton, ThreadTerminate.

Screenshot:
Spoiler: Show
Attachment:
12.PNG
12.PNG [ 2.7 KiB | Viewed 3325 times ]

Source:
Attachment:
{12} RunFile, MinimizeWindowByID, RestoreWindowByID.7z [1006 Bytes]
Downloaded 106 times


Top
   
 Post subject: Re: Delphi7 examples
PostPosted: Mon Jun 26, 2017 7:49 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Load 32 bit bitmaps(top to bottom pixel order) and use it as mouse cursors. Also draw these pictures on window. For this purpose Blit function is used.
Used functions: LoadCursorIndirect, SetCursor, Blit, DrawText, DrawButton, LoadFile, HeapCreate, SetCurrentDirectory, GetScreenSize, WaitEvent, BeginDraw, DrawWindow, EndDraw, GetKey, GetButton, ThreadTerminate.

Screenshot:
Spoiler: Show
Attachment:
13.PNG
13.PNG [ 4.08 KiB | Viewed 3251 times ]

Source:
Attachment:
{13} LoadCursorIndirect, SetCursor.7z [1.76 KiB]
Downloaded 98 times


Top
   
 Post subject: Re: Delphi7 examples
PostPosted: Fri Jul 07, 2017 9:27 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Get image of screen and draw it in the application window.
Used functions: GetScreenImage, DrawImage, GetSkinHeight, HeapCreate, GetScreenSize, HeapAllocate, WaitEvent, BeginDraw, DrawWindow, EndDraw, GetKey, GetButton, ThreadTerminate.

Screenshot:
Spoiler: Show
Attachment:
14.PNG
14.PNG [ 72.08 KiB | Viewed 3205 times ]

Source:
Attachment:
{14} GetScreenImage.7z [1.14 KiB]
Downloaded 103 times


Top
   
 Post subject: Re: Delphi7 examples
PostPosted: Thu Sep 14, 2017 6:07 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
This example writes the system date and system time to the console window and updates it periodically.
Used functions: LoadLibrary, GetProcAddress, GetSystemDate, GetSystemTime, Sleep, ThreadTerminate.

Screenshot:
Spoiler: Show
Attachment:
SystemDate_SystemTime.PNG
SystemDate_SystemTime.PNG [ 7.6 KiB | Viewed 2984 times ]

Source:
Attachment:
{15} GetSystemDate, GetSystemTime.7z [928 Bytes]
Downloaded 99 times


Top
   
 Post subject: Re: Delphi7 examples
PostPosted: Sat Sep 23, 2017 11:18 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
In this example a folder 'test_folder' is created on '/rd/1'.
Then in the folder you created a file is created 'test_file.txt'.
In the created file data is written 'Test100500'.
After that you can open 'test_file.txt' and find in it written data.
Used functions: CreateFolder, CreateFile, WriteFile, SetEventMask, GetScreenSize, WaitEvent, BeginDraw, DrawWindow, DrawButton, DrawText, EndDraw, GetButton, ThreadTerminate.

Screenshot:
Spoiler: Show
Attachment:
16.PNG
16.PNG [ 4.58 KiB | Viewed 2919 times ]

Source:
Attachment:
{16} CreateFolder, CreateFile, WriteFile.7z [1.36 KiB]
Downloaded 98 times


Top
   
 Post subject: Re: Delphi7 examples
PostPosted: Wed Sep 27, 2017 9:15 pm 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 436
Какого размера бинарники от Д7 получаются?


Top
   
 Post subject: Re: Delphi7 examples
PostPosted: Wed Sep 27, 2017 9:24 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
Siemargl, для примера приложение CoffDump viewtopic.php?f=9&t=3577
Сжатый kpaсk-ом: 1,91 КБ (1964 байта)
Несжатый: 3,72 КБ (3812 байтов)

Или самый первый пример {1} DrawWindow
Сжатый kpaсk-ом: 342 байта
Несжатый: 496 байтов


Last edited by 0CodErr on Wed Sep 27, 2017 9:41 pm, edited 2 times in total.

Top
   
 Post subject: Re: Delphi7 examples
PostPosted: Wed Sep 27, 2017 9:30 pm 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 436
лучше по всем примерам прилагать. не было инфы - пришлось на хабре не упоминать (


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 25 posts ]  Go to page 1 2 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited