forked from KolibriOS/kolibrios
[fp] changes in rtl & examples
git-svn-id: svn://kolibrios.org@790 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
42
programs/develop/fp/examples/Makefile.fpc
Normal file
42
programs/develop/fp/examples/Makefile.fpc
Normal file
@@ -0,0 +1,42 @@
|
||||
[target]
|
||||
programs=example ray
|
||||
|
||||
[default]
|
||||
target=win32
|
||||
cpu=i386
|
||||
|
||||
[compiler]
|
||||
options=-dKOLIBRI
|
||||
unittargetdir=build
|
||||
targetdir=bin
|
||||
sourcedir=src
|
||||
|
||||
[prerules]
|
||||
ifdef KFPCDIR
|
||||
override KFPCDIR:=$(subst \,/,$(KFPCDIR))
|
||||
ifeq ($(wildcard $(KFPCDIR)/bin),)
|
||||
override KFPCDIR=wrong
|
||||
endif
|
||||
else
|
||||
override KFPCDIR=wrong
|
||||
endif
|
||||
|
||||
ifeq ($(KFPCDIR),wrong)
|
||||
$(error The KFPCDIR environment is wrong)
|
||||
endif
|
||||
|
||||
#UNITSDIR:=$(wildcard $(FPCDIR)/units/$(CPU_TARGET)-kolibri)
|
||||
UNITSDIR:=$(wildcard $(KFPCDIR)/units)
|
||||
KOSEXT=.kex
|
||||
EXE2KEX=$(KFPCDIR)/bin/exe2kos
|
||||
|
||||
[rules]
|
||||
ifneq ($(TARGET_PROGRAMS),)
|
||||
KOSFILES=$(addsuffix $(KOSEXT),$(TARGET_PROGRAMS))
|
||||
endif
|
||||
|
||||
fpc_all: $(KOSFILES)
|
||||
|
||||
%$(KOSEXT): %$(EXEEXT)
|
||||
@$(EXE2KEX) $(COMPILER_TARGETDIR)/$^ $(COMPILER_TARGETDIR)/$@
|
||||
@$(DEL) $(COMPILER_TARGETDIR)/$^
|
||||
@@ -1,21 +0,0 @@
|
||||
@echo off
|
||||
|
||||
set NAME=%1
|
||||
set NAMEEXE=%NAME%.exe
|
||||
set NAMEKEX=%NAME%.kex
|
||||
|
||||
set BUILD=-FUbuild
|
||||
set UNTS=-Fu..\units
|
||||
|
||||
fpc %NAME%.pp -n -Twin32 -Se5 -XXs -Sg -O3pPENTIUM3 -CfSSE -WB0 %BUILD% %UNTS%
|
||||
if errorlevel 1 goto error
|
||||
|
||||
..\exe2kos\exe2kos.exe %NAMEEXE% %NAMEKEX%
|
||||
del %NAMEEXE%
|
||||
move %NAMEKEX% bin
|
||||
goto end
|
||||
|
||||
:error
|
||||
echo An error occured while building %NAME%
|
||||
|
||||
:end
|
||||
@@ -1 +0,0 @@
|
||||
@_build example
|
||||
@@ -1 +0,0 @@
|
||||
@call _build.bat ray
|
||||
@@ -1 +1,21 @@
|
||||
„«ï ç « ¥®¡å®¦¨¬® ᮡà âì RTL ¨ ã⨫¨âã exe2kos.
|
||||
„«ï ç « ¥®¡å®¦¨¬® ᮡà âì RTL (../rtl/build.sh ¨«¨ ..\rtl\build.bat) ¨
|
||||
ã⨫¨âã exe2kos (../utils/exe2kos/build.sh ¨«¨ ..\utils\exe2kos\exe2kos.bat).
|
||||
“¡¥¤¨â¥áì çâ®, ®â®á¨â¥«ì® ¤ ®© ¯ ¯ª¨, áãé¥áâ¢ãîâ ä ©« ../bin/exe2kos ¤«ï
|
||||
Linux ¨«¨ ..\bin\exe2kos.exe ¤«ï Windows. ’ ª ¦¥ ã¡¥¤¨â¥áì çâ® áãé¥áâ¢ã¥â ¥
|
||||
¯ãáâ ï ¤¨à¥ªâ®à¨ï ../units/rtl ¤«ï Linux ¨«¨ ..\units\rtl ¤«ï Windows.
|
||||
|
||||
<EFBFBD>¥à¥¬¥ ï ®ªà㦥¨ï FPCDIR ¤®«¦ 㪠§ë¢ âì ¯ ¯ªã á FreePascal (¯ãâì
|
||||
㪠§ë¢ ¥âáï ¡¥§ § ¢¥àè î饣® á«íè ¨«¨ ®¡à ⮣® á«íè ).
|
||||
|
||||
<EFBFBD>¥à¥¬¥ ï ®ªà㦥¨ï KFPCDIR ¤®«¦ 㪠§ë¢ âì ¯ ¯ªã á ¯à®¥ªâ®¬ KolibriOS
|
||||
FreePascal (¯ãâì 㪠§ë¢ ¥âáï ¡¥§ § ¢¥àè î饣® á«íè ¨«¨ ®¡à ⮣® á«íè ). ‚ í⮩
|
||||
¯ ¯ª¥ ¤®«¦ë 室¨âìáï â ª¨¥ ¤¨à¥ªâ®à¨¨: bin, examples, rtl, units, utils.
|
||||
|
||||
<EFBFBD>®á«¥ í⮣® ¢ë¯®«¨â¥ á«¥¤ãî騥 ª®¬ ¤ë ¢ ¤ ®© ¯ ¯ª¥ (¡¥§ § ª $ ¨ ¯à®¡¥«
|
||||
¯®á«¥ ¥£®):
|
||||
$ fpcmake -Twin32
|
||||
$ make
|
||||
|
||||
…᫨ ¢ë ¢á¥ ᤥ« ¨ ¯à ¢¨«ì®, â® ¢ ¯ ¯ª¥ bin ¯®ï¢ïâáï ¨á¯®«ï¥¬ë¥ ä ©«ë á
|
||||
à áè¨à¥¨¥¬ kex.
|
||||
build - ¢à¥¬¥ ï ¯ ¯ª , ¨á¯®«ì§ã¥¬ ï ¯à¨ á¡®àª¥, ¬®¦¥â¥ 㤠«¨âì ¥ñ.
|
||||
@@ -4,37 +4,36 @@
|
||||
|
||||
{$mode objfpc}
|
||||
{$smartlink on}
|
||||
{$apptype console}
|
||||
|
||||
{ <EFBFBD> ¤ ë© ¬®¬¥â à áᬠâਢ ¥âáï ¢ë¯®«¥¨¥ ¯à¨«®¤¥¨ï ⮫쪮 ª ª ª®á®«ì®¥,
|
||||
â.¥. ¤¨à¥ªâ¨¢ console ®¡ï§ ⥫ì , ¯®¢¥¤¥¨¥ ¯à®£à ¬¬ë ¯à¨ ®âáãâá⢨¨ í⮩
|
||||
¤¨à¥ªâ¨¢ë ¯à¥¤®¯à¥¤¥«¨âì ¥«ì§ï. ƒ à â¨à®¢ ® ¥«ì§ï ¨á¯®«ì§®¢ âì äãªæ¨¨
|
||||
Write, WriteLn, Read, ReadLn ®â®á¨â¥«ì® áâ ¤ à⮩ ª®á®«¨ ¢¢®¤ /¢ë¢®¤ .
|
||||
}
|
||||
{$apptype gui}
|
||||
|
||||
program Example;
|
||||
|
||||
{ ‚ᥠäãªæ¨¨ ¨¬¥î騥 ¢ ᢮¥¬ ¨¬¥¨ ¯à¥ä¨ªá 'kos_' ïîâáï ¯« âä®à¬®§ ¢¨á¨¬ë¬¨
|
||||
¨ ॠ«¨§®¢ ë ⮫쪮 ¯®¤ KolibriOS. ˆå ¨á¯®«ì§®¢ ¨¥ ¢ «î¡ëå ¯à®£à ¬¬ëå
|
||||
¨ ॠ«¨§®¢ ë ⮫쪮 ¤«ï KolibriOS. ˆå ¨á¯®«ì§®¢ ¨¥ ¢ «î¡ëå ¯à®£à ¬¬ëå
|
||||
¯à¨«®¦¥¨ïå ª ⥣®à¨ç¥áª¨ ¥ ४®¬¥¤®¢ ®, ¢ë®á¨â¥ ¢á¥ ¬¥â®¤ë, ¨á¯®«ì§ãî騥
|
||||
í⨠äãªæ¨¨, ¢ ®â¤¥«ìë¥ ¬®¤ã«¨ (¨ ¨á¯®«ì§ã©â¥ ¥®¡å®¤¨¬ë¥ ¡áâà ªæ¨¨).
|
||||
}
|
||||
í⨠äãªæ¨¨, ¢ ®â¤¥«ìë¥ ¬®¤ã«¨ (¨ ¨á¯®«ì§ã©â¥ ¥®¡å®¤¨¬ë¥ ¡áâà ªæ¨¨). }
|
||||
|
||||
|
||||
procedure DoPaint;
|
||||
{ ‚뢮¤ ᮤ¥à¦¨¬®£® ®ª ¯à¨«®¦¥¨ï }
|
||||
begin
|
||||
kos_begindraw();
|
||||
{®¯à¥¤¥«¥¨¥ ¯ à ¬¥â஢ ®ª }
|
||||
|
||||
{ ®¯à¥¤¥«¥¨¥ ¯ à ¬¥â஢ ®ª }
|
||||
kos_definewindow(200, 200, 200, 50, $23AABBCC);
|
||||
{kos_definewindow ¥ ¨¬¥¥â ¯ à ¬¥âà ¤«ï ¢ë¢®¤ § £®«®¢ª ,
|
||||
¤¥« ¥¬ íâ® ®â¤¥«ì®© äãªæ¨¥© kos_setcaption}
|
||||
{®â®¡à ¦¥¨¥ § £®«®¢ª ®ª }
|
||||
|
||||
{ kos_definewindow ¥ ¨¬¥¥â ¯ à ¬¥âà ¤«ï ¢ë¢®¤ § £®«®¢ª ,
|
||||
¤¥« ¥¬ íâ® ®â¤¥«ì®© äãªæ¨¥© kos_setcaption }
|
||||
|
||||
{ ®â®¡à ¦¥¨¥ § £®«®¢ª ®ª }
|
||||
kos_setcaption('<27><>ˆŒ…<C592> <20><>Žƒ<C5BD>€ŒŒ›');
|
||||
{¢ë¢®¤ á®®¡é¥¨ï}
|
||||
|
||||
{ ¢ë¢®¤ á®®¡é¥¨ï }
|
||||
kos_drawtext(3, 8, '<27> ¦¬¨â¥ «î¡ãî ª« ¢¨èã...');
|
||||
kos_enddraw();
|
||||
end;
|
||||
|
||||
|
||||
procedure DoKey;
|
||||
{ Ž¡à ¡®âª ᮡëâ¨ï ¦ â¨ï ª« ¢¨è¨ }
|
||||
var
|
||||
@@ -42,11 +41,13 @@ var
|
||||
Notes: array[0..3] of Byte;
|
||||
begin
|
||||
Key := kos_getkey();
|
||||
{ áâà ¨¢ ¥¬ ¡ãä¥à ¤«ï ®â}
|
||||
|
||||
{ áâà ¨¢ ¥¬ ¡ãä¥à ¤«ï ®â }
|
||||
Notes[0] := $90;
|
||||
Notes[1] := Key shr 8;
|
||||
Notes[2] := $00;
|
||||
{¢®á¯à®¨§¢®¤¨¬}
|
||||
|
||||
{ ¢®á¯à®¨§¢®¤¨¬ }
|
||||
kos_speaker(@Notes);
|
||||
end;
|
||||
|
||||
@@ -56,9 +57,10 @@ function DoButton: Boolean;
|
||||
var
|
||||
Button: DWord;
|
||||
begin
|
||||
{¯®«ãç¨âì ª®¤ ¦ ⮩ ª«¨¢¨è¨}
|
||||
{ ¯®«ãç¨âì ª®¤ ¦ ⮩ ª«¨¢¨è¨ }
|
||||
Button := kos_getbutton();
|
||||
{¥á«¨ [x], â® ¢¥àãâì «®¦ì, § ç¨â á¯à®¢®æ¨à®¢ âì § ªàë⨥ ¯à¨«®¦¥¨ï}
|
||||
|
||||
{ ¥á«¨ [x], â® ¢¥àãâì «®¦ì, § ç¨â á¯à®¢®æ¨à®¢ âì § ªàë⨥ ¯à¨«®¦¥¨ï }
|
||||
Result := Button <> 1;
|
||||
end;
|
||||
|
||||
@@ -67,35 +69,30 @@ function ProcessMessage: Boolean;
|
||||
{ ަ¨¤ ¨¥ ¨ ®¡à ¡®âª ᮡë⨩.
|
||||
|
||||
@return: ‚®§¢à é ¥â False, ¥á«¨ ¡ë«® ᮡë⨥ ª § ¢¥àè¥¨î ¯à¨«®¦¥¨ï.
|
||||
@rtype: True ¨«¨ False }
|
||||
@rtype : True ¨«¨ False }
|
||||
var
|
||||
Event: DWord;
|
||||
begin
|
||||
Result := True;
|
||||
{®¦¨¤ ¥¬ ᮡëâ¨ï ®â á¨á⥬ë}
|
||||
|
||||
{ ®¦¨¤ ¥¬ ᮡëâ¨ï ®â á¨á⥬ë }
|
||||
Event := kos_getevent();
|
||||
case Event of
|
||||
SE_PAINT : DoPaint; {¯¥à¥à¨á®¢ª ®ª }
|
||||
SE_KEYBOARD: DoKey; {ᮡë⨥ ®â ª« ¢¨ âãàë}
|
||||
SE_BUTTON : Result := DoButton; {ᮡ먥 ®â ª®¯ª¨, ¬®¦¥â ®¯à¥¤¥«¨âì
|
||||
§ ¢¥à襨¥ ¯à¨«®¦¥¨ï, ¥á«¨ ¢¥à¥â False}
|
||||
SE_PAINT : DoPaint; { ¯¥à¥à¨á®¢ª ®ª }
|
||||
SE_KEYBOARD: DoKey; { ᮡë⨥ ®â ª« ¢¨ âãàë }
|
||||
SE_BUTTON : Result := DoButton; { ᮡë⨥ ®â ª®¯ª¨, ¬®¦¥â ®¯à¥¤¥«¨âì
|
||||
§ ¢¥à襨¥ ¯à¨«®¦¥¨ï, ¥á«¨ ¢¥à¥â False }
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure MainLoop;
|
||||
{ ƒ« ¢ë© 横« ¯à¨«®¦¥¨ï }
|
||||
var
|
||||
ThreadSlot: TThreadSlot;
|
||||
begin
|
||||
{ áâà ¨¢ ¥¬ ᮡëâ¨ï, ª®â®àë¥ ¬ë £®â®¢ë ®¡à ¡ âë¢ âì}
|
||||
{ áâà ¨¢ ¥¬ ᮡëâ¨ï, ª®â®àë¥ ¬ë £®â®¢ë ®¡à ¡ âë¢ âì }
|
||||
kos_maskevents(ME_PAINT or ME_KEYBOARD or ME_BUTTON);
|
||||
{®¡à ¡®âª ᮡë⨩}
|
||||
|
||||
{ ®¡à ¡®âª ᮡë⨩ }
|
||||
while ProcessMessage do;
|
||||
end;
|
||||
|
||||
|
||||
begin
|
||||
WriteLn('Look for a new window, I''m just a konsole ;-)');
|
||||
MainLoop;
|
||||
end.
|
||||
Reference in New Issue
Block a user