Board.KolibriOS.org

Official KolibriOS board
It is currently Mon May 20, 2019 10:11 pm

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 159 times
Some examples and KolibriOS.lib:
Attachment:
KOSLib_Demo.7z [23.75 KiB]
Downloaded 163 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 3764 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 3764 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 3712 times ]
Source:
Attachment:
{6} DrawImage.7z [9.26 KiB]
Downloaded 120 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 3645 times ]
Source:
Attachment:
{7} SetPixel.7z [814 Bytes]
Downloaded 117 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 3250 times ]


Source:
Attachment:
{8} GetThreadInfo.7z [1.15 KiB]
Downloaded 96 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 3172 times ]

Source:
Attachment:
{9} GetPixel.7z [865 Bytes]
Downloaded 92 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 3135 times ]

Source:
Attachment:
{10} ReadFolder.7z [959 Bytes]
Downloaded 95 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 3079 times ]

Source:
Attachment:
{11} DrawImageEx.7z [10.58 KiB]
Downloaded 82 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 3028 times ]

Source:
Attachment:


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 2954 times ]

Source:
Attachment:
{13} LoadCursorIndirect, SetCursor.7z [1.76 KiB]
Downloaded 83 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 2908 times ]

Source:
Attachment:
{14} GetScreenImage.7z [1.14 KiB]
Downloaded 88 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 2687 times ]

Source:
Attachment:
{15} GetSystemDate, GetSystemTime.7z [928 Bytes]
Downloaded 83 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 2622 times ]

Source:
Attachment:
{16} CreateFolder, CreateFile, WriteFile.7z [1.36 KiB]
Downloaded 83 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 0 guests


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