Page 2 of 2
Re: Delphi7 examples
Posted: Tue Oct 03, 2017 3:07 pm
by 0CodErr
In this example the window can be moved by arrow keys and can be resized by Ctrl+arrow keys.
Used functions: SetWindowPos, GetThreadInfo, GetControlKeyState, GetKey, GetScreenSize, WaitEvent, BeginDraw, DrawWindow, DrawText, EndDraw, GetButton, ThreadTerminate.
Screenshot:
Spoiler:
-
17.PNG (3.82 KiB)
Viewed 12599 times
Source:
Re: Delphi7 examples
Posted: Fri Feb 16, 2018 7:23 pm
by 0CodErr
This example shows the name of process whose window is under the mouse pointer.
Note that desktop has no window therefore name will be 'IDLE' (name of special system process).
Used functions: GetPointOwner, WaitEventByTime, GetThreadInfo, GetMousePos, GetScreenSize, SetEventMask, BeginDraw, DrawWindow, DrawText, EndDraw, DrawRectangle, GetButton, ThreadTerminate.
Screenshot:
Spoiler:
-
18.PNG (1.76 KiB)
Viewed 12539 times
Source:
Re: Delphi7 examples
Posted: Sun Sep 09, 2018 2:27 pm
by Siemargl
Как насчет перевести свои наработки с пиратки на официально бесплатную Делфи Токио Стартер/Коммьюнити?
Это бы было правильно для отрытой Оси
Возможно, у тебя лично и купленная Д7, но для новичков желателен лицензионно чистый софт, особенно для стран развитого капитализма
Re: Delphi7 examples
Posted: Mon Sep 10, 2018 11:15 am
by 0CodErr
Siemargl wrote:с пиратки на официально бесплатную
вся суть!
Возможно, у тебя лично и пиратка, но никто никого не заставляет ничего пиратить.
А в чём, собственно, принципиальная проблема переноса?
У меня просто нет
Tokyo, чтобы проверить.
И, кстати,
FreePascal ещё есть.
Lode Runner собран им
http://websvn.kolibrios.org/listing.php ... d8f767cc2a
Правда, ещё нужна
RTL http://websvn.kolibrios.org/listing.php ... 6668893f98
Re: Delphi7 examples
Posted: Tue Sep 11, 2018 12:38 am
by Siemargl
0CodErr wrote:Siemargl wrote:с пиратки на официально бесплатную
вся суть!
Возможно, у тебя лично и пиратка, но никто никого не заставляет ничего пиратить.
Те ты предлагаешь нубам купить Про за 1000$ ?
Чтобы просто иметь возможность использовать Паскаль для Колибри.
0CodErr wrote:А в чём, собственно, принципиальная проблема переноса?
У меня просто нет Tokyo, чтобы проверить.
Дык зарегистрируйся и скачай.
https://www.embarcadero.com/products/delphi/starter
Я не проверял возможность сборки этого актуальной версией FP, и считал эту ветку неживой для Колибри.
Тем более, что ты либу тоже под FP не проверяешь.
Re: Delphi7 examples
Posted: Tue Sep 11, 2018 9:25 am
by 0CodErr
Siemargl wrote:Те ты предлагаешь нубам купить Про за 1000$ ?
Нубам я вообще ничего не предлагаю.
Ты на вопрос так и не ответил. Простой перекомпиляции недостаточно? Что конкретно вызывает проблемы?
Siemargl wrote:
Я не проверял возможность сборки этого актуальной версией FP, и считал эту ветку неживой для Колибри.
Тем более, что ты либу тоже под FP не проверяешь.
А стоило бы. Товарищ
//DG говорил, что версия 3.0 стала более совместимой, а в версии 2.4.4 были проблемы.
Re: Delphi7 examples
Posted: Wed Sep 12, 2018 11:21 am
by Siemargl
0CodErr wrote:Ты на вопрос так и не ответил. Простой перекомпиляции недостаточно? Что конкретно вызывает проблемы?
У меня нет Дельфи СЕ и нет легальной возможности ее получить, т.к. уже зарегистрирован CBuilder Starter, а и то и то одновременно на халяву не положено.
0CodErr wrote:Siemargl wrote:Я не проверял возможность сборки этого актуальной версией FP, и считал эту ветку неживой для Колибри.
Тем более, что ты либу тоже под FP не проверяешь.
А стоило бы. Товарищ
//DG говорил, что версия 3.0 стала более совместимой, а в версии 2.4.4 были проблемы.
Я не нашел упоминаний от //DG, что там вообще были за проблемы.
В принципе, можно попробовать оживить FP, но его перспективы быть третьим кросс-компилятором, который никто не поддерживает...
Re: Delphi7 examples
Posted: Thu Sep 13, 2018 9:02 am
by 0CodErr
Siemargl wrote:У меня нет Дельфи СЕ и нет легальной возможности ее получить
Зачем же ты тогда предлагал что-то
перенести? Может оно и так работает? Пока ещё никто о проблемах не писал(кроме тебя, но сам ты даже и не пробовал).
Siemargl wrote:Я не нашел упоминаний от //DG, что там вообще были за проблемы.
Этот диалог был в ЛС:
0CodErr wrote:Кое-что у FPC работает не так, как в Delphi, например, для GetScreenSize пришлось немного извратиться, в то время как Delphi кладёт результат в eax, как и положено:
на FP
Spoiler:
Code: Select all
Function GetScreenSize: SIZE;
Asm
mov ecx, eax
push ebx
mov eax, 61
mov ebx, 1
int 64
pop ebx
mov dword[ecx], eax
End;
на Delphi
Spoiler:
Code: Select all
Function GetScreenSize(): SIZE;
Asm
push ebx
mov eax, 61
mov ebx, 1
int 64
pop ebx
End;
Так что, не всё можно просто так взять и перенести.
//DG wrote:Кстати, по поводу разницы между Д и ФП - не могу с тобой согласиться. Сделал тест, все так же - структура передана через регистр:
Code: Select all
TMyRec = record
a: word;
b: word;
end;
// function MyProc(): TMyRec;
// begin
// Result.a := 1;
// Result.b := 2;
// end;
{$ASMMODE intel}
function MyProc(): TMyRec; assembler;
asm
mov eax,10102020h
end;
procedure TMyApplication.DoRun;
var
ErrorMsg: String;
a:tmyrec;
begin
a := MyProc();
0CodErr wrote:Code: Select all
//////////////////////////////////////////
Type
SIZE = Record height, width : Word End;
//////////////////////////////////////////
Scr : SIZE;
//////////////////////////////////////////
Scr := GetScreenSize;
//////////////////////////////////////////
Function GetScreenSize: SIZE;
Asm
mov ecx, eax
push ebx
mov eax, 61
mov ebx, 1
int 64
pop ebx
mov dword[ecx], eax
End;
в результате так
Code: Select all
sub esp,4
lea eax,[ebp-4]
call NEAR TEST_GETSCREENSIZE$$SIZE
mov eax,dword [ebp-4]
mov dword [U_TEST_SCR],eax
На всякий случай, это был
Free Pascal Compiler version 2.4.4 [2011/04/23] for i386
Copyright (c) 1993-2010 by Florian Klaempfl
Так что, если ещё и от версий зависит... слишком много будет
conditional define'ов.
//DG wrote:Я скорее думаю, это от опций компилирования зависит.
//DG wrote:Твой пример у меня в 3,0,0 также через регистр возвращает.
//DG wrote:А режим компиляции(точнее, синтаксиса)-то какой?
0CodErr wrote://DG wrote:А режим компиляции(точнее, синтаксиса)-то какой?
Я специально его не указывал, но вот из документации:
This mode is selected by the $MODE FPC switch. On the command line, this means that you
none of the other compatibility mode switches. It is the default mode of the compiler (-Mfpc).
Значит был режим FPC.
//DG wrote:Значит был режим FPC.
Вот и я про то же, раз не указывал, то беретс fpc. А он и не должен быть совместимым с Дельфи, так что все путем. objfpc совместим, и он пересылает через регистр.
0CodErr wrote:Попробовал {$MODE OBJFPC} и {$MODE DELPHI}, — результат тот же, значит, тогда от версии зависит наверное.
//DG wrote:Попробовал {$MODE OBJFPC} и {$MODE DELPHI}, — результат тот же, значит, тогда от версии зависит наверное.
Наверно, я на последней тройке пробую.
Re: Delphi7 examples
Posted: Fri Oct 19, 2018 10:19 am
by Freeman
Siemargl wrote:У меня нет Дельфи СЕ и нет легальной возможности ее получить, т.к. уже зарегистрирован CBuilder Starter, а и то и то одновременно на халяву не положено
В состав C++Builder эпохи Borland входил dcc32 (иногда даже бо́льшей версии, чем в соответствующей версии Delphi) и исходники RTL/VCL на Delphi. У Embarcadero уже не так?
Re: Delphi7 examples
Posted: Wed Oct 24, 2018 9:27 pm
by 0CodErr
KolibriOS.lib issues:
- actually mac 6 bytes, Dword — only 4 bytes
Code: Select all
GetSentBytes(Device: Byte): Integer;
actually int64 instead of Integer
Code: Select all
GetReceivedBytes(Device: Byte): Integer;
actually int64 instead of Integer
Code: Select all
DrawWindow(Left, Top, Right, Bottom
should be Width, Height instead of Right, Bottom
Code: Select all
DrawButton(Left, Top, Right, Bottom
the same as DrawWindow
- need to add RenameFile
- need to add key code and scan code constants
- may be it need to a bit change in a definition of TThreadInfo structure, i suggest instead of
Code: Select all
Name: Packed Array[0..10] Of Char;
reserved2: Byte;
use thisCode: Select all
Name: Packed Array[0..11] Of Char;
and of course reserved2 field must be always set to zero by kernel
- Blit — ebx is not saved, need to add "push ebx \ pop ebx"
- DrawImageEx — esi, edi is not saved, need to add "push esi; push edi \ pop edi; pop esi"
Re: Delphi7 examples
Posted: Sat Nov 07, 2020 3:18 pm
by maxcodehack
У меня все идет успешно, до LD:
Code: Select all
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
Z:\media\maxim\E22406D62406AE1B\KOLIBRI\DELPHI\KolibriOS\KolibriOS.pas(626)
Unit1.pas(62)
690 lines, 0.02 seconds, 254 bytes code, 24 bytes data.
OMF2D 1.01 converts 32bit OMF to Delphi linkable OMF
Copyright (C) 2003 Radim Picha, www.anticracking.sk/EliCZ
Converting "Unit1.obj" to "Unit1.obj"
Microsoft (R) COFF/PE Editor Version 7.10.3052
Copyright (C) Microsoft Corporation. All rights reserved.
Unit1.obj : warning LNK4033: converting object format from OMF to COFF
LINK : warning LNK4041: no edit options specified
ld: skipping incompatible /media/maxim/E22406D62406AE1B/KOLIBRI/DELPHI/KolibriOS/Lib/libkos.a when searching for -lkos
ld: cannot find -lkos
Я просто KolibriOS.lib в libkos.a чтобы можно было написать -lkos. Странно, он говорит что формат не тот.
Re: Delphi7 examples
Posted: Sat Dec 05, 2020 7:08 pm
by Freeman
Эта тема уже 2 года не обновлялась. Сейчас все примеры перенесены на
Delphi SDK и компилируются
другим набором инструментов.
Re: Delphi7 examples
Posted: Mon Dec 07, 2020 11:19 am
by Kopa
Разные примеры на сайте Turbo Pascal Developer Network
http://tpdn.ru/files/130/
P.S. Не знаю насколько они совместимы с текущим SDK для KolibriOS.