source upload
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,455 @@
|
||||
//
|
||||
// And_Controls Base Type & Constant
|
||||
//
|
||||
// simonsayz@naver.com / 최원식옹
|
||||
//
|
||||
// 2015.02.24 Started
|
||||
//
|
||||
|
||||
unit And_Controls_Types;
|
||||
|
||||
{$IFDef FPC} {$mode delphi} {$packrecords c} {$EndIF}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
SysUtils, Types, Classes,
|
||||
And_Jni;
|
||||
|
||||
Const
|
||||
// standard colors
|
||||
clBlack = $FF000000;
|
||||
clMaroon = $FF800000;
|
||||
clGreen = $FF008000;
|
||||
clOlive = $FF808000;
|
||||
clNavy = $FF000080;
|
||||
clPurple = $FF800080;
|
||||
clTeal = $FF008080;
|
||||
clGray = $FF808080;
|
||||
clSilver = $FFC0C0C0;
|
||||
clRed = $FFFF0000;
|
||||
clLime = $FF00FF00;
|
||||
clYellow = $FFFFFF00;
|
||||
clBlue = $FF0000FF;
|
||||
clFuchsia = $FFFF00FF;
|
||||
clAqua = $FF00FFFF;
|
||||
clWhite = $FFFFFFFF;
|
||||
clLtGray = clSilver;
|
||||
clDkGray = clGray;
|
||||
|
||||
// extended colors
|
||||
clMoneyGreen = $FFC0DCC0;
|
||||
clSkyBlue = $FFA6CAF0;
|
||||
clCream = $FFFFFBF0;
|
||||
clMedGray = $FFA0A0A4;
|
||||
|
||||
clCyan = clAqua;
|
||||
clMagenta = clFuchsia;
|
||||
clTransparent = $00000000;
|
||||
|
||||
// Max
|
||||
cMaxTouch = 10; // Max Touch
|
||||
cMaxForm = 40; // Max Form Stack Count
|
||||
|
||||
//
|
||||
cLogModeOn = True;
|
||||
cLogModeOff = False;
|
||||
|
||||
Type
|
||||
//----------------------------------------------------------------------------
|
||||
// Base Types
|
||||
//----------------------------------------------------------------------------
|
||||
cInt = Int32;
|
||||
PInt32 = PjInt;
|
||||
PSingle = PjFloat;
|
||||
|
||||
{$IfDef DCC}
|
||||
pAnsiChar = MarshaledAString;
|
||||
{$EndIf}
|
||||
//----------------------------------------------------------------------------
|
||||
// General Types
|
||||
//----------------------------------------------------------------------------
|
||||
TOnAppCreate = Procedure;
|
||||
TOnNotify = Procedure(Sender: TObject) of object;
|
||||
//
|
||||
TLangType = (ltNone,
|
||||
ltPascal,
|
||||
ltJava,
|
||||
ltAll);
|
||||
//
|
||||
TBytes = Array[0..0] of Byte;
|
||||
pBytes = ^TBytes;
|
||||
//
|
||||
TRGB = Packed Record
|
||||
R,G,B : Byte;
|
||||
End;
|
||||
pRGB = ^TRGB;
|
||||
TRGBs = Packed Array[0..0] of TRGB;
|
||||
pRGBs = ^TRGBs;
|
||||
TImgRGB = Record
|
||||
Width : Integer;
|
||||
Height : Integer;
|
||||
pRGBs_ : pRGBs;
|
||||
End;
|
||||
//
|
||||
TXYi = Record
|
||||
X,Y : Integer;
|
||||
end;
|
||||
TXYf = Record
|
||||
X,Y : Single;
|
||||
end;
|
||||
TWH = Record
|
||||
Width : Integer;
|
||||
Height : Integer;
|
||||
End;
|
||||
TWidthHeight = TWH;
|
||||
TXYWH = Record
|
||||
X, Y, W, H: Integer;
|
||||
End;
|
||||
TColor = DWord;
|
||||
TChangeType = (ctChangeBefore,
|
||||
ctChange,
|
||||
ctChangeAfter);
|
||||
TFormState = (fsFormCreate, // Initializing
|
||||
fsFormWork, // Working
|
||||
fsFormClose); // Closing
|
||||
//----------------------------------------------------------------------------
|
||||
// Java - And_Controls Types (And_Controls Const )
|
||||
// XRef. Controls.java - Const
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
TDirectory_Type = ( DIRECTORY_ALARMS = 0,
|
||||
DIRECTORY_DCIM = 1,
|
||||
DIRECTORY_DOCUMENTS = 2,
|
||||
DIRECTORY_DOWNLOADS = 3,
|
||||
DIRECTORY_MOVIES = 4,
|
||||
DIRECTORY_MUSIC = 5,
|
||||
DIRECTORY_NOTIFICATIONS = 6,
|
||||
DIRECTORY_PICTURES = 7,
|
||||
DIRECTORY_PODCASTS = 8,
|
||||
DIRECTORY_RINGTONES = 9,
|
||||
DIRECTORY_App = 10001,
|
||||
DIRECTORY_Files = 10002,
|
||||
DIRECTORY_SDCard = 10003,
|
||||
DIRECTORY_DataBase = 10004,
|
||||
DIRECTORY_Shared_Prefs = 10005);
|
||||
//
|
||||
TScreen_Style = ( Screen_Style_Normal = 0,
|
||||
Screen_Style_Full = 1);
|
||||
//
|
||||
TNetwork_Type = ( Network_Type_None = 0,
|
||||
Network_Type_Wifi = 1,
|
||||
Network_Type_Mobile = 2);
|
||||
//
|
||||
TPaint_Style = ( Paint_Style_Fill = 0,
|
||||
Paint_Style_Fill_And_Stroke = 1,
|
||||
Paint_Style_Stroke = 2);
|
||||
//
|
||||
TCompress_Format = ( Compress_Format_PNG = 0,
|
||||
Compress_Format_JPEG = 1);
|
||||
//
|
||||
TTouch_Type = ( Touch_Down = 0,
|
||||
Touch_Move = 1,
|
||||
Touch_Up = 2);
|
||||
//
|
||||
TClick = ( Click_Default = 0,
|
||||
Click_Yes = -1,
|
||||
Click_No = -2);
|
||||
// Animation
|
||||
TAnimation_Effect = ( Animation_Effect_None = $00000000,
|
||||
Animation_Effect_iR2L = $00000001,
|
||||
Animation_Effect_oR2L = $00000002,
|
||||
Animation_Effect_iL2R = $00000004,
|
||||
Animation_Effect_oL2R = $00000008,
|
||||
Animation_Effect_FadeIn = $00000010,
|
||||
Animation_Effect_FadeOut = $00000020);
|
||||
//
|
||||
TGLView_State = ( GLView_State_SurfaceCreated = 0,
|
||||
GLView_State_SurfaceChanged = 1,
|
||||
GLView_State_DrawFrame = 2,
|
||||
GLView_State_SurfaceDestroyed = 3,
|
||||
GLView_State_SurfaceThread = 4);
|
||||
//
|
||||
TWebView_Act = ( WebView_Act_Continue = 0,
|
||||
WebView_Act_Break = 1);
|
||||
//
|
||||
TWebView_State = ( WebView_State_Unknown = 0,
|
||||
WebView_State_Before = 1,
|
||||
WebView_State_Finish = 2,
|
||||
WebView_State_Error = 3);
|
||||
//
|
||||
TAsyncTask_State = ( AsyncTask_State_PreExecute = 0,
|
||||
AsyncTask_State_Update = 1,
|
||||
AsyncTask_State_PostExecute = 2,
|
||||
AsyncTask_State_BackGround = 3);
|
||||
//
|
||||
TEdit_Style = ( Edit_Style_SingleLine = 0,
|
||||
Edit_Style_MultiLine = 1);
|
||||
//
|
||||
TEdit_Type = ( Edit_Type_Number = 0,
|
||||
Edit_Type_Text = 1,
|
||||
Edit_Type_Phone = 2,
|
||||
Edit_Type_PassNumber = 3,
|
||||
Edit_Type_PassText = 4);
|
||||
//
|
||||
THttp_Act = ( Http_Act_Text = 0,
|
||||
Http_Act_Download = 1,
|
||||
Http_Act_Upload = 2);
|
||||
//
|
||||
THttp_State = ( Http_State_Xfer = 0,
|
||||
Http_State_Done = 1,
|
||||
Http_State_Error = 2);
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Java - Android Native Types
|
||||
//----------------------------------------------------------------------------
|
||||
TText_Alignment = ( Text_Alignment_INHERIT = 0,
|
||||
Text_Alignment_GRAVITY = 1,
|
||||
Text_Alignment_TEXT_START = 2,
|
||||
Text_Alignment_TEXT_END = 3,
|
||||
Text_Alignment_CENTER = 4,
|
||||
Text_Alignment_VIEW_START = 5,
|
||||
Text_Alignment_VIEW_END = 6);
|
||||
|
||||
TAndroid_Log = ( Android_Log_UNKNOWN = 0,
|
||||
Android_Log_DEFAULT = 1,
|
||||
Android_Log_VERBOSE = 2,
|
||||
Android_Log_DEBUG = 3,
|
||||
Android_Log_INFO = 4,
|
||||
Android_Log_WARN = 5,
|
||||
Android_Log_ERROR = 6,
|
||||
Android_Log_FATAL = 7,
|
||||
Android_Log_SILENT = 8);
|
||||
//
|
||||
TActivity_Result = ( Activity_Result_OK = -1,
|
||||
Activity_Result_CANCELED = 0);
|
||||
//
|
||||
TScreen_Rotate = ( Screen_Rotate_UNDEFINED = 0,
|
||||
Screen_Rotate_PORTRAIT = 1,
|
||||
Screen_Rotate_LANDSCAPE = 2,
|
||||
Screen_Rotate_SQUARE = 3); // Deprecated API 16
|
||||
//
|
||||
TScreen_Orientation = ( Screen_Orientation_UNSPECIFIED = -1,
|
||||
Screen_Orientation_LANDSCAPE = 0,
|
||||
Screen_Orientation_PORTRAIT = 1,
|
||||
Screen_Orientation_USER = 2,
|
||||
Screen_Orientation_BEHIND = 3,
|
||||
Screen_Orientation_SENSOR = 4,
|
||||
Screen_Orientation_NOSENSOR = 5,
|
||||
Screen_Orientation_SENSOR_LANDSCAPE = 6,
|
||||
Screen_Orientation_SENSOR_PORTRAIT = 7,
|
||||
Screen_Orientation_REVERSE_LANDSCAPE = 8,
|
||||
Screen_Orientation_REVERSE_PORTRAIT = 9,
|
||||
Screen_Orientation_FULL_SENSOR = 10,
|
||||
Screen_Orientation_USER_LANDSCAPE = 11,
|
||||
Screen_Orientation_USER_PORTRAIT = 12,
|
||||
Screen_Orientation_FULL_USER = 13,
|
||||
Screen_Orientation_LOCKED = 14);
|
||||
//
|
||||
TGLES_Version = ( GLES_v1 = 1,
|
||||
GLES_v2 = 2);
|
||||
//
|
||||
TProgressBarStyle = ( ProgressBarStyle_Horizontal = $01010078,
|
||||
ProgressBarStyle_Large = $0101007a);
|
||||
|
||||
// jnigraphics
|
||||
TAndroid_Bitmap_Result = ( Android_Bitmap_Result_SUCCESS = 0,
|
||||
Android_Bitmap_Result_BAD_PARAMETER = -1,
|
||||
Android_Bitmap_Result_JNI_EXCEPTION = -2,
|
||||
Android_Bitmap_Result_ALLOCATION_FAILED = -3);
|
||||
|
||||
TAndroid_Bitmap_Format = ( Android_Bitmap_Format_NONE = 0,
|
||||
Android_Bitmap_Format_RGBA_8888 = 1,
|
||||
Android_Bitmap_Format_RGB_565 = 4,
|
||||
Android_Bitmap_Format_RGBA_4444 = 7,
|
||||
Android_Bitmap_Format_A_8 = 8);
|
||||
|
||||
TAndroid_Bitmap_Info = Record
|
||||
width : Cardinal; // uint32_t;
|
||||
height : Cardinal; // uint32_t
|
||||
stride : Cardinal; // uint32_t
|
||||
format : Integer; // int32_t
|
||||
flags : Cardinal; // uint32_t - 0 for now
|
||||
End;
|
||||
|
||||
PAndroid_Bitmap_Info = ^TAndroid_Bitmap_Info;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Mouch = Mouse + Touch
|
||||
//----------------------------------------------------------------------------
|
||||
TMouch = Record // Ref. iOS_Controls.pas TiOSMTouch
|
||||
// Result
|
||||
Active : Boolean;
|
||||
Pt : TXYf;
|
||||
Zoom : Single;
|
||||
Angle : Single;
|
||||
Start : Boolean; // Multi Touch start Event
|
||||
End;
|
||||
TMouches = Record
|
||||
// Input
|
||||
Cnt : Integer;
|
||||
XYs : Array[0..cMaxTouch-1] of TXYf;
|
||||
// Status Save
|
||||
sLen : Single;
|
||||
sAngle : Single;
|
||||
sPt : TXYf;
|
||||
sPt1 : TXYf;
|
||||
sPt2 : TXYf;
|
||||
sCount : Integer; // Total Event Count
|
||||
Mouch : TMouch; // MultiTouch Result (Pt,Zoom,Angle)
|
||||
End;
|
||||
|
||||
// Java Env Info.
|
||||
TEnv = Record
|
||||
//
|
||||
AppName : String; // [Global] AppName ex. "com.kredix"
|
||||
//
|
||||
jVM : PJavaVM; // [Global] App
|
||||
jEnv : PJNIEnv; // [Not Global] Env per Thread
|
||||
//
|
||||
jClass : jClass; // [Global] Java I/F Controls - Class
|
||||
jControls : jObject; // [Global] Java I/F Controls - Object
|
||||
jLayout : jObject; // [Global] Java App - Base Layout
|
||||
End;
|
||||
TPaths = Record
|
||||
//
|
||||
ALARMS : String;
|
||||
DCIM : String;
|
||||
DOCUMENTS : String;
|
||||
DOWNLOADS : String;
|
||||
MOVIES : String;
|
||||
MUSIC : String;
|
||||
NOTIFICATIONS : String;
|
||||
PICTURES : String;
|
||||
PODCASTS : String;
|
||||
RINGTONES : String;
|
||||
//
|
||||
App : String;
|
||||
Files : String;
|
||||
SDCard : String;
|
||||
DataBase : String;
|
||||
Shared_Prefs : String;
|
||||
End;
|
||||
// Device Info.
|
||||
TDevice = Record
|
||||
ScreenStyle : TScreen_Style;
|
||||
ScreenOrientation : TScreen_Orientation;
|
||||
ScreenWH : TWH; // ex.
|
||||
//
|
||||
Model : String; // ex. Nexus 7
|
||||
Version : String; // ex. 5.0.3
|
||||
PhoneNumber : String; // ex.
|
||||
ID : String; // ex.
|
||||
Network : TNetwork_Type; // None,Wifi,Mobile
|
||||
End;
|
||||
TAnimation = Record
|
||||
AniIn : TAnimation_Effect;
|
||||
AniOut : TAnimation_Effect;
|
||||
end;
|
||||
// Form Stack
|
||||
TCallBack = Record
|
||||
Event : TOnNotify;
|
||||
Sender : TObject;
|
||||
End;
|
||||
TFormCallBack = Record
|
||||
jForm : jObject;
|
||||
CloseCB : TCallBack; // Close Call Back Event
|
||||
End;
|
||||
TForms = Record
|
||||
Index : Integer;
|
||||
Stack : Array[0..cMaxForm-1] of TFormCallBack;
|
||||
end;
|
||||
|
||||
//
|
||||
TOnClickEx = Procedure(Sender: TObject; Value: integer) of object;
|
||||
TOnClickYN = Procedure(Sender: TObject; Click : TClick ) of object;
|
||||
TOnClickItem = Procedure(Sender: TObject; Item : Integer ) of object;
|
||||
|
||||
//
|
||||
TOnChange = Procedure(Sender: TObject; EventType : TChangeType) of object;
|
||||
TOnTouch = Procedure(Sender: TObject; ID: integer; X, Y: single) of object;
|
||||
TOnTouchEvent = Procedure(Sender: TObject; Touch : TMouch ) of Object;
|
||||
TOnCloseQuery = Procedure(Sender: TObject; var CanClose: boolean) of object;
|
||||
TOnRotate = Procedure(Sender: TObject; rotate : TScreen_Rotate; Var rstRotate : TScreen_Rotate) of Object;
|
||||
TOnActivityRst = Procedure(Sender: TObject; requestCode : Integer; resultCode : TActivity_Result; jData : jObject) of Object;
|
||||
|
||||
// State Event
|
||||
TOnGLViewSize = Procedure(Sender: TObject; W, H : integer) of object;
|
||||
TOnWebViewState = Procedure(Sender: TObject; State : TWebView_State ; URL : String; Var CanNavi : Boolean) of object;
|
||||
TOnAsyncTaskState= Procedure(Sender: TObject; State : TAsyncTask_State; Progress : Integer) of object;
|
||||
TOnHttpState = Procedure(Sender: TObject; Act : THttp_Act; State : THttp_State; Progress : Integer;Const Msg : String) of object;
|
||||
|
||||
// Camera Preview Event
|
||||
TOnCameraFrame = Procedure(Sender: TObject; W,H,Fmt : Integer; Data : Pointer) of Object;
|
||||
|
||||
// Type To String
|
||||
Function strWH ( WH : TWH ) : String;
|
||||
Function strScreenStyle ( ScreenStyle : TScreen_Style ) : String;
|
||||
Function strScreenOrientation( ScreenOrientation : TScreen_Orientation ) : String;
|
||||
Function strNetworkType ( NetworkType : TNetwork_Type ) : String;
|
||||
Function strEditType ( EditType : TEdit_Type ) : String;
|
||||
|
||||
Var
|
||||
gLog : Boolean = True; // Log Write On/Off
|
||||
|
||||
implementation
|
||||
|
||||
Function strWH ( WH : TWH ) : String;
|
||||
begin
|
||||
Result := IntToStr(WH.Width) + 'x' + IntToStr(WH.Height);
|
||||
end;
|
||||
|
||||
Function strScreenStyle ( ScreenStyle : TScreen_Style ) : String;
|
||||
begin
|
||||
Case ScreenStyle of
|
||||
Screen_Style_Normal : Result := 'Normal';
|
||||
Screen_Style_Full : Result := 'Full';
|
||||
else Result := 'Unknown';
|
||||
end;
|
||||
end;
|
||||
|
||||
Function strScreenOrientation( ScreenOrientation : TScreen_Orientation ) : String;
|
||||
begin
|
||||
Case ScreenOrientation of
|
||||
Screen_Orientation_UNSPECIFIED : Result := 'Unspecified';
|
||||
Screen_Orientation_LANDSCAPE : Result := 'LANDSCAPE';
|
||||
Screen_Orientation_PORTRAIT : Result := 'PORTRAIT';
|
||||
Screen_Orientation_USER : Result := 'USER';
|
||||
Screen_Orientation_BEHIND : Result := 'BEHIND';
|
||||
Screen_Orientation_SENSOR : Result := 'SENSOR';
|
||||
Screen_Orientation_NOSENSOR : Result := 'NOSENSOR';
|
||||
Screen_Orientation_SENSOR_LANDSCAPE : Result := 'SENSOR_LANDSCAPE';
|
||||
Screen_Orientation_SENSOR_PORTRAIT : Result := 'SENSOR_PORTRAIT';
|
||||
Screen_Orientation_REVERSE_LANDSCAPE : Result := 'REVERSE_LANDSCAPE';
|
||||
Screen_Orientation_REVERSE_PORTRAIT : Result := 'REVERSE_PORTRAIT';
|
||||
Screen_Orientation_FULL_SENSOR : Result := 'FULL_SENSOR';
|
||||
Screen_Orientation_USER_LANDSCAPE : Result := 'USER_LANDSCAPE';
|
||||
Screen_Orientation_USER_PORTRAIT : Result := 'USER_PORTRAIT';
|
||||
Screen_Orientation_FULL_USER : Result := 'FULL_USER';
|
||||
Screen_Orientation_LOCKED : Result := 'LOCKED';
|
||||
else Result := 'Unknown';
|
||||
end;
|
||||
end;
|
||||
|
||||
Function strNetworkType ( NetworkType : TNetwork_Type ) : String;
|
||||
begin
|
||||
Case NetworkType of
|
||||
Network_Type_None : Result := 'None';
|
||||
Network_Type_Wifi : Result := 'Wifi';
|
||||
Network_Type_Mobile : Result := 'Mobile';
|
||||
End;
|
||||
end;
|
||||
|
||||
Function strEditType ( EditType : TEdit_Type ) : String;
|
||||
begin
|
||||
Case EditType of
|
||||
Edit_Type_Text : Result := 'TEXT';
|
||||
Edit_Type_Number : Result := 'NUMBER';
|
||||
Edit_Type_Phone : Result := 'PHONE';
|
||||
Edit_Type_PassNumber : Result := 'PASSNUMBER';
|
||||
Edit_Type_PassText : Result := 'PASSTEXT';
|
||||
else Result := 'Unknown';
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
@@ -0,0 +1,552 @@
|
||||
//
|
||||
//
|
||||
// Jni for Pascal
|
||||
//
|
||||
// Original Source Code : /fpc/2.7.1/packages/jni/src/jni.pas
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
unit And_jni;
|
||||
|
||||
{$ifdef fpc} {$mode delphi} {$packrecords c} {$endif}
|
||||
|
||||
interface
|
||||
|
||||
(*
|
||||
* Manifest constants.
|
||||
*)
|
||||
const JNI_FALSE=0;
|
||||
JNI_TRUE=1;
|
||||
|
||||
JNI_VERSION_1_1=$00010001;
|
||||
JNI_VERSION_1_2=$00010002;
|
||||
JNI_VERSION_1_4=$00010004;
|
||||
JNI_VERSION_1_6=$00010006;
|
||||
|
||||
JNI_OK=0; // no error
|
||||
JNI_ERR=-1; // generic error
|
||||
JNI_EDETACHED=-2; // thread detached from the VM
|
||||
JNI_EVERSION=-3; // JNI version error
|
||||
|
||||
JNI_COMMIT=1; // copy content, do not free buffer
|
||||
JNI_ABORT=2; // free buffer w/o copying back
|
||||
|
||||
{$IfDef DCC}
|
||||
type
|
||||
pChar = MarshaledAString;
|
||||
{$EndIf}
|
||||
|
||||
(*
|
||||
* Type definitions.
|
||||
*)
|
||||
type va_list=pointer;
|
||||
|
||||
jboolean=byte; // unsigned 8 bits
|
||||
jbyte=shortint; // signed 8 bits
|
||||
jchar=word; // unsigned 16 bits
|
||||
jshort=smallint; // signed 16 bits
|
||||
jint=longint; // signed 32 bits
|
||||
jlong=int64; // signed 64 bits
|
||||
jfloat=single; // 32-bit IEEE 754
|
||||
jdouble=double; // 64-bit IEEE 754
|
||||
|
||||
jsize=jint; // "cardinal indices and sizes"
|
||||
|
||||
Pjboolean=^jboolean;
|
||||
Pjbyte=^jbyte;
|
||||
Pjchar=^jchar;
|
||||
Pjshort=^jshort;
|
||||
Pjint=^jint;
|
||||
Pjlong=^jlong;
|
||||
Pjfloat=^jfloat;
|
||||
Pjdouble=^jdouble;
|
||||
|
||||
Pjsize=^jsize;
|
||||
|
||||
// Reference type
|
||||
jobject=pointer;
|
||||
jclass=jobject;
|
||||
jstring=jobject;
|
||||
jarray=jobject;
|
||||
jobjectArray=jarray;
|
||||
jbooleanArray=jarray;
|
||||
jbyteArray=jarray;
|
||||
jcharArray=jarray;
|
||||
jshortArray=jarray;
|
||||
jintArray=jarray;
|
||||
jlongArray=jarray;
|
||||
jfloatArray=jarray;
|
||||
jdoubleArray=jarray;
|
||||
jthrowable=jobject;
|
||||
jweak=jobject;
|
||||
jref=jobject;
|
||||
|
||||
PPointer=^pointer;
|
||||
Pjobject=^jobject;
|
||||
Pjclass=^jclass;
|
||||
Pjstring=^jstring;
|
||||
Pjarray=^jarray;
|
||||
PjobjectArray=^jobjectArray;
|
||||
PjbooleanArray=^jbooleanArray;
|
||||
PjbyteArray=^jbyteArray;
|
||||
PjcharArray=^jcharArray;
|
||||
PjshortArray=^jshortArray;
|
||||
PjintArray=^jintArray;
|
||||
PjlongArray=^jlongArray;
|
||||
PjfloatArray=^jfloatArray;
|
||||
PjdoubleArray=^jdoubleArray;
|
||||
Pjthrowable=^jthrowable;
|
||||
Pjweak=^jweak;
|
||||
Pjref=^jref;
|
||||
|
||||
_jfieldID=record // opaque structure
|
||||
end;
|
||||
jfieldID=^_jfieldID;// field IDs
|
||||
PjfieldID=^jfieldID;
|
||||
|
||||
_jmethodID=record // opaque structure
|
||||
end;
|
||||
jmethodID=^_jmethodID;// method IDs
|
||||
PjmethodID=^jmethodID;
|
||||
|
||||
PJNIInvokeInterface=^JNIInvokeInterface;
|
||||
|
||||
Pjvalue=^jvalue;
|
||||
jvalue={$ifdef packedrecords}packed{$endif} record
|
||||
case integer of
|
||||
0:(z:jboolean);
|
||||
1:(b:jbyte);
|
||||
2:(c:jchar);
|
||||
3:(s:jshort);
|
||||
4:(i:jint);
|
||||
5:(j:jlong);
|
||||
6:(f:jfloat);
|
||||
7:(d:jdouble);
|
||||
8:(l:jobject);
|
||||
end;
|
||||
|
||||
jobjectRefType=(
|
||||
JNIInvalidRefType=0,
|
||||
JNILocalRefType=1,
|
||||
JNIGlobalRefType=2,
|
||||
JNIWeakGlobalRefType=3);
|
||||
|
||||
PJNINativeMethod=^JNINativeMethod;
|
||||
JNINativeMethod={$ifdef packedrecords}packed{$endif} record
|
||||
name:pchar;
|
||||
signature:pchar;
|
||||
fnPtr:pointer;
|
||||
end;
|
||||
|
||||
PJNINativeInterface=^JNINativeInterface;
|
||||
|
||||
_JNIEnv={$ifdef packedrecords}packed{$endif} record
|
||||
functions:PJNINativeInterface;
|
||||
end;
|
||||
|
||||
_JavaVM={$ifdef packedrecords}packed{$endif} record
|
||||
functions:PJNIInvokeInterface;
|
||||
end;
|
||||
|
||||
C_JNIEnv=^JNINativeInterface;
|
||||
JNIEnv=^JNINativeInterface;
|
||||
JavaVM=^JNIInvokeInterface;
|
||||
|
||||
PPJNIEnv=^PJNIEnv;
|
||||
PJNIEnv=^JNIEnv;
|
||||
|
||||
PPJavaVM=^PJavaVM;
|
||||
PJavaVM=^JavaVM;
|
||||
|
||||
JNINativeInterface={$ifdef packedrecords}packed{$endif} record
|
||||
reserved0:pointer;
|
||||
reserved1:pointer;
|
||||
reserved2:pointer;
|
||||
reserved3:pointer;
|
||||
|
||||
GetVersion:function(Env:PJNIEnv):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
DefineClass:function(Env:PJNIEnv;const Name:pchar;Loader:JObject;const Buf:PJByte;Len:JSize):JClass;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
FindClass:function(Env:PJNIEnv;const Name:pchar):JClass;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
// Reflection Support
|
||||
FromReflectedMethod:function(Env:PJNIEnv;Method:JObject):JMethodID;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
FromReflectedField:function(Env:PJNIEnv;Field:JObject):JFieldID;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
ToReflectedMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;IsStatic:JBoolean):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
GetSuperclass:function(Env:PJNIEnv;Sub:JClass):JClass;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
IsAssignableFrom:function(Env:PJNIEnv;Sub:JClass;Sup:JClass):JBoolean;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
// Reflection Support
|
||||
ToReflectedField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;IsStatic:JBoolean):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
Throw:function(Env:PJNIEnv;Obj:JThrowable):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
ThrowNew:function(Env:PJNIEnv;AClass:JClass;const Msg:pchar):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
ExceptionOccurred:function(Env:PJNIEnv):JThrowable;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
ExceptionDescribe:procedure(Env:PJNIEnv);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
ExceptionClear:procedure(Env:PJNIEnv);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
FatalError:procedure(Env:PJNIEnv;const Msg:pchar);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
// Local Reference Management
|
||||
PushLocalFrame:function(Env:PJNIEnv;Capacity:JInt):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
PopLocalFrame:function(Env:PJNIEnv;Result:JObject):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
NewGlobalRef:function(Env:PJNIEnv;LObj:JObject):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
DeleteGlobalRef:procedure(Env:PJNIEnv;GRef:JObject);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
DeleteLocalRef:procedure(Env:PJNIEnv;Obj:JObject);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
IsSameObject:function(Env:PJNIEnv;Obj1:JObject;Obj2:JObject):JBoolean;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
// Local Reference Management
|
||||
NewLocalRef:function(Env:PJNIEnv;Ref:JObject):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
EnsureLocalCapacity:function(Env:PJNIEnv;Capacity:JInt):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
AllocObject:function(Env:PJNIEnv;AClass:JClass):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
NewObject:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
NewObjectV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
NewObjectA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
GetObjectClass:function(Env:PJNIEnv;Obj:JObject):JClass;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
IsInstanceOf:function(Env:PJNIEnv;Obj:JObject;AClass:JClass):JBoolean;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
GetMethodID:function(Env:PJNIEnv;AClass:JClass;const Name:pchar;const Sig:pchar):JMethodID;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallObjectMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallObjectMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallObjectMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallBooleanMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JBoolean;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallBooleanMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JBoolean;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallBooleanMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JBoolean;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallByteMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JByte;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallByteMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JByte;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallByteMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JByte;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallCharMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JChar;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallCharMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JChar;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallCharMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JChar;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallShortMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JShort;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallShortMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JShort;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallShortMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JShort;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallIntMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallIntMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallIntMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallLongMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JLong;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallLongMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JLong;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallLongMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JLong;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallFloatMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JFloat;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallFloatMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JFloat;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallFloatMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JFloat;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallDoubleMethod:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID):JDouble;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallDoubleMethodV:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list):JDouble;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallDoubleMethodA:function(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue):JDouble;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallVoidMethod:procedure(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallVoidMethodV:procedure(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:va_list);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallVoidMethodA:procedure(Env:PJNIEnv;Obj:JObject;MethodID:JMethodID;Args:PJValue);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallNonvirtualObjectMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualObjectMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualObjectMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallNonvirtualBooleanMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JBoolean;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualBooleanMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JBoolean;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualBooleanMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JBoolean;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallNonvirtualByteMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JByte;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualByteMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JByte;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualByteMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JByte;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallNonvirtualCharMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JChar;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualCharMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JChar;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualCharMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JChar;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallNonvirtualShortMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JShort;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualShortMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JShort;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualShortMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JShort;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallNonvirtualIntMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualIntMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualIntMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallNonvirtualLongMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JLong;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualLongMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JLong;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualLongMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JLong;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallNonvirtualFloatMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JFloat;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualFloatMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JFloat;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualFloatMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JFloat;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallNonvirtualDoubleMethod:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID):JDouble;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualDoubleMethodV:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list):JDouble;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualDoubleMethodA:function(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue):JDouble;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallNonvirtualVoidMethod:procedure(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualVoidMethodV:procedure(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:va_list);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallNonvirtualVoidMethodA:procedure(Env:PJNIEnv;Obj:JObject;AClass:JClass;MethodID:JMethodID;Args:PJValue);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
GetFieldID:function(Env:PJNIEnv;AClass:JClass;const Name:pchar;const Sig:pchar):JFieldID;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
GetObjectField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetBooleanField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JBoolean;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetByteField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JByte;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetCharField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JChar;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetShortField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JShort;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetIntField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetLongField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JLong;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetFloatField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JFloat;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetDoubleField:function(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID):JDouble;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
SetObjectField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JObject);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetBooleanField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JBoolean);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetByteField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JByte);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetCharField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JChar);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetShortField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JShort);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetIntField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JInt);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetLongField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JLong);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetFloatField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JFloat);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetDoubleField:procedure(Env:PJNIEnv;Obj:JObject;FieldID:JFieldID;Val:JDouble);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
GetStaticMethodID:function(Env:PJNIEnv;AClass:JClass;const Name:pchar;const Sig:pchar):JMethodID;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallStaticObjectMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticObjectMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticObjectMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallStaticBooleanMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JBoolean;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticBooleanMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JBoolean;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticBooleanMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JBoolean;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallStaticByteMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JByte;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticByteMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JByte;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticByteMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JByte;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallStaticCharMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JChar;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticCharMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JChar;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticCharMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JChar;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallStaticShortMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JShort;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticShortMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JShort;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticShortMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JShort;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallStaticIntMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticIntMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticIntMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallStaticLongMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JLong;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticLongMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JLong;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticLongMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JLong;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallStaticFloatMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JFloat;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticFloatMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JFloat;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticFloatMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JFloat;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallStaticDoubleMethod:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID):JDouble;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticDoubleMethodV:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list):JDouble;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticDoubleMethodA:function(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue):JDouble;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
CallStaticVoidMethod:procedure(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticVoidMethodV:procedure(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:va_list);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
CallStaticVoidMethodA:procedure(Env:PJNIEnv;AClass:JClass;MethodID:JMethodID;Args:PJValue);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
GetStaticFieldID:function(Env:PJNIEnv;AClass:JClass;const Name:pchar;const Sig:pchar):JFieldID;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetStaticObjectField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetStaticBooleanField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JBoolean;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetStaticByteField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JByte;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetStaticCharField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JChar;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetStaticShortField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JShort;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetStaticIntField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetStaticLongField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JLong;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetStaticFloatField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JFloat;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetStaticDoubleField:function(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID):JDouble;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
SetStaticObjectField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JObject);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetStaticBooleanField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JBoolean);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetStaticByteField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JByte);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetStaticCharField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JChar);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetStaticShortField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JShort);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetStaticIntField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JInt);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetStaticLongField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JLong);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetStaticFloatField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JFloat);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetStaticDoubleField:procedure(Env:PJNIEnv;AClass:JClass;FieldID:JFieldID;Val:JDouble);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
NewString:function(Env:PJNIEnv;const Unicode:PJChar;Len:JSize):JString;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetStringLength:function(Env:PJNIEnv;Str:JString):JSize;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetStringChars:function(Env:PJNIEnv;Str:JString;var IsCopy:JBoolean):PJChar;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
ReleaseStringChars:procedure(Env:PJNIEnv;Str:JString;const Chars:PJChar);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
NewStringUTF:function(Env:PJNIEnv;const UTF:pchar):JString;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetStringUTFLength:function(Env:PJNIEnv;Str:JString):JSize;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetStringUTFChars:function(Env:PJNIEnv;Str:JString; IsCopy:PJBoolean):pchar;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
ReleaseStringUTFChars:procedure(Env:PJNIEnv;Str:JString;const Chars:pchar);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
GetArrayLength:function(Env:PJNIEnv;AArray:JArray):JSize;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
NewObjectArray:function(Env:PJNIEnv;Len:JSize;AClass:JClass;Init:JObject):JObjectArray;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetObjectArrayElement:function(Env:PJNIEnv;AArray:JObjectArray;Index:JSize):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetObjectArrayElement:procedure(Env:PJNIEnv;AArray:JObjectArray;Index:JSize;Val:JObject);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
NewBooleanArray:function(Env:PJNIEnv;Len:JSize):JBooleanArray;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
NewByteArray:function(Env:PJNIEnv;Len:JSize):JByteArray;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
NewCharArray:function(Env:PJNIEnv;Len:JSize):JCharArray;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
NewShortArray:function(Env:PJNIEnv;Len:JSize):JShortArray;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
NewIntArray:function(Env:PJNIEnv;Len:JSize):JIntArray;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
NewLongArray:function(Env:PJNIEnv;Len:JSize):JLongArray;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
NewFloatArray:function(Env:PJNIEnv;Len:JSize):JFloatArray;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
NewDoubleArray:function(Env:PJNIEnv;Len:JSize):JDoubleArray;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
GetBooleanArrayElements:function(Env:PJNIEnv;AArray:JBooleanArray;var IsCopy:JBoolean):PJBoolean;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetByteArrayElements:function(Env:PJNIEnv;AArray:JByteArray;var IsCopy:JBoolean):PJByte;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetCharArrayElements:function(Env:PJNIEnv;AArray:JCharArray;var IsCopy:JBoolean):PJChar;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetShortArrayElements:function(Env:PJNIEnv;AArray:JShortArray;var IsCopy:JBoolean):PJShort;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetIntArrayElements:function(Env:PJNIEnv;AArray:JIntArray;var IsCopy:JBoolean):PJInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetLongArrayElements:function(Env:PJNIEnv;AArray:JLongArray;var IsCopy:JBoolean):PJLong;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetFloatArrayElements:function(Env:PJNIEnv;AArray:JFloatArray;var IsCopy:JBoolean):PJFloat;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetDoubleArrayElements:function(Env:PJNIEnv;AArray:JDoubleArray;var IsCopy:JBoolean):PJDouble;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
ReleaseBooleanArrayElements:procedure(Env:PJNIEnv;AArray:JBooleanArray;Elems:PJBoolean;Mode:JInt);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
ReleaseByteArrayElements:procedure(Env:PJNIEnv;AArray:JByteArray;Elems:PJByte;Mode:JInt);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
ReleaseCharArrayElements:procedure(Env:PJNIEnv;AArray:JCharArray;Elems:PJChar;Mode:JInt);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
ReleaseShortArrayElements:procedure(Env:PJNIEnv;AArray:JShortArray;Elems:PJShort;Mode:JInt);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
ReleaseIntArrayElements:procedure(Env:PJNIEnv;AArray:JIntArray;Elems:PJInt;Mode:JInt);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
ReleaseLongArrayElements:procedure(Env:PJNIEnv;AArray:JLongArray;Elems:PJLong;Mode:JInt);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
ReleaseFloatArrayElements:procedure(Env:PJNIEnv;AArray:JFloatArray;Elems:PJFloat;Mode:JInt);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
ReleaseDoubleArrayElements:procedure(Env:PJNIEnv;AArray:JDoubleArray;Elems:PJDouble;Mode:JInt);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
GetBooleanArrayRegion:procedure(Env:PJNIEnv;AArray:JBooleanArray;Start:JSize;Len:JSize;Buf:PJBoolean);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetByteArrayRegion:procedure(Env:PJNIEnv;AArray:JByteArray;Start:JSize;Len:JSize;Buf:PJByte);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetCharArrayRegion:procedure(Env:PJNIEnv;AArray:JCharArray;Start:JSize;Len:JSize;Buf:PJChar);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetShortArrayRegion:procedure(Env:PJNIEnv;AArray:JShortArray;Start:JSize;Len:JSize;Buf:PJShort);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetIntArrayRegion:procedure(Env:PJNIEnv;AArray:JIntArray;Start:JSize;Len:JSize;Buf:PJInt);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetLongArrayRegion:procedure(Env:PJNIEnv;AArray:JLongArray;Start:JSize;Len:JSize;Buf:PJLong);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetFloatArrayRegion:procedure(Env:PJNIEnv;AArray:JFloatArray;Start:JSize;Len:JSize;Buf:PJFloat);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetDoubleArrayRegion:procedure(Env:PJNIEnv;AArray:JDoubleArray;Start:JSize;Len:JSize;Buf:PJDouble);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
SetBooleanArrayRegion:procedure(Env:PJNIEnv;AArray:JBooleanArray;Start:JSize;Len:JSize;Buf:PJBoolean);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetByteArrayRegion:procedure(Env:PJNIEnv;AArray:JByteArray;Start:JSize;Len:JSize;Buf:PJByte);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetCharArrayRegion:procedure(Env:PJNIEnv;AArray:JCharArray;Start:JSize;Len:JSize;Buf:PJChar);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetShortArrayRegion:procedure(Env:PJNIEnv;AArray:JShortArray;Start:JSize;Len:JSize;Buf:PJShort);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetIntArrayRegion:procedure(Env:PJNIEnv;AArray:JIntArray;Start:JSize;Len:JSize;Buf:PJInt);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetLongArrayRegion:procedure(Env:PJNIEnv;AArray:JLongArray;Start:JSize;Len:JSize;Buf:PJLong);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetFloatArrayRegion:procedure(Env:PJNIEnv;AArray:JFloatArray;Start:JSize;Len:JSize;Buf:PJFloat);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
SetDoubleArrayRegion:procedure(Env:PJNIEnv;AArray:JDoubleArray;Start:JSize;Len:JSize;Buf:PJDouble);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
RegisterNatives:function(Env:PJNIEnv;AClass:JClass;const Methods:PJNINativeMethod;NMethods:JInt):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
UnregisterNatives:function(Env:PJNIEnv;AClass:JClass):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
MonitorEnter:function(Env:PJNIEnv;Obj:JObject):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
MonitorExit:function(Env:PJNIEnv;Obj:JObject):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
GetJavaVM:function(Env:PJNIEnv;var VM:JavaVM):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
// String Operations
|
||||
GetStringRegion:procedure(Env:PJNIEnv;Str:JString;Start:JSize;Len:JSize;Buf:PJChar);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetStringUTFRegion:procedure(Env:PJNIEnv;Str:JString;Start:JSize;Len:JSize;Buf:pchar);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
// Array Operations
|
||||
GetPrimitiveArrayCritical:function(Env:PJNIEnv;AArray:JArray;var IsCopy:JBoolean):pointer;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
ReleasePrimitiveArrayCritical:procedure(Env:PJNIEnv;AArray:JArray;CArray:pointer;Mode:JInt);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
// String Operations
|
||||
GetStringCritical:function(Env:PJNIEnv;Str:JString;var IsCopy:JBoolean):PJChar;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
ReleaseStringCritical:procedure(Env:PJNIEnv;Str:JString;CString:PJChar);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
// Weak Global References
|
||||
NewWeakGlobalRef:function(Env:PJNIEnv;Obj:JObject):JWeak;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
DeleteWeakGlobalRef:procedure(Env:PJNIEnv;Ref:JWeak);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
// Exceptions
|
||||
ExceptionCheck:function(Env:PJNIEnv):JBoolean;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
// J2SDK1_4
|
||||
NewDirectByteBuffer:function(Env:PJNIEnv;Address:pointer;Capacity:JLong):JObject;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetDirectBufferAddress:function(Env:PJNIEnv;Buf:JObject):pointer;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetDirectBufferCapacity:function(Env:PJNIEnv;Buf:JObject):JLong;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
|
||||
// added in JNI 1.6
|
||||
GetObjectRefType:function(Env:PJNIEnv;AObject:JObject):jobjectRefType;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
end;
|
||||
|
||||
JNIInvokeInterface={$ifdef packedrecords}packed{$endif} record
|
||||
reserved0:pointer;
|
||||
reserved1:pointer;
|
||||
reserved2:pointer;
|
||||
|
||||
DestroyJavaVM:function(PVM:PJavaVM):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
AttachCurrentThread:function(PVM:PJavaVM;PEnv:PPJNIEnv;Args:pointer):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
DetachCurrentThread:function(PVM:PJavaVM):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
GetEnv:function(PVM:PJavaVM;PEnv:Ppointer;Version:JInt):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
AttachCurrentThreadAsDaemon:function(PVM:PJavaVM;PEnv:PPJNIEnv;Args:pointer):JInt;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
end;
|
||||
|
||||
JavaVMAttachArgs={$ifdef packedrecords}packed{$endif} record
|
||||
version:jint; // must be >= JNI_VERSION_1_2
|
||||
name:pchar; // NULL or name of thread as modified UTF-8 str
|
||||
group:jobject; // global ref of a ThreadGroup object, or NULL
|
||||
end;
|
||||
|
||||
(**
|
||||
* JNI 1.2+ initialization. (As of 1.6, the pre-1.2 structures are no
|
||||
* longer supported.)
|
||||
*)
|
||||
|
||||
PJavaVMOption=^JavaVMOption;
|
||||
JavaVMOption={$ifdef packedrecords}packed{$endif} record
|
||||
optionString:pchar;
|
||||
extraInfo:pointer;
|
||||
end;
|
||||
|
||||
JavaVMInitArgs={$ifdef packedrecords}packed{$endif} record
|
||||
version:jint; // use JNI_VERSION_1_2 or later
|
||||
nOptions:jint;
|
||||
options:PJavaVMOption;
|
||||
ignoreUnrecognized:Pjboolean;
|
||||
end;
|
||||
|
||||
(*
|
||||
* VM initialization functions.
|
||||
*
|
||||
* Note these are the only symbols exported for JNI by the VM.
|
||||
*)
|
||||
{$ifdef jniexternals}
|
||||
function JNI_GetDefaultJavaVMInitArgs(p:pointer):jint;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}external 'jni' name 'JNI_GetDefaultJavaVMInitArgs';
|
||||
function JNI_CreateJavaVM(vm:PPJavaVM;AEnv:PPJNIEnv;p:pointer):jint;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}external 'jni' name 'JNI_CreateJavaVM';
|
||||
function JNI_GetCreatedJavaVMs(vm:PPJavaVM;ASize:jsize;p:Pjsize):jint;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}external 'jni' name 'JNI_GetCreatedJavaVMs';
|
||||
{$endif}
|
||||
|
||||
(*
|
||||
* Prototypes for functions exported by loadable shared libs. These are
|
||||
* called by JNI, not provided by JNI.
|
||||
*)
|
||||
|
||||
const curVM : PJavaVM = nil;
|
||||
curEnv : PJNIEnv = nil;
|
||||
|
||||
(*
|
||||
function JNI_OnLoad(vm:PJavaVM;reserved:pointer):jint;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
procedure JNI_OnUnload(vm:PJavaVM;reserved:pointer);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
*)
|
||||
implementation
|
||||
|
||||
|
||||
//function JNI_OnLoad(vm:PJavaVM;reserved:pointer):jint;{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
//begin
|
||||
// curVM := vm;
|
||||
// result := JNI_VERSION_1_6;
|
||||
//end;
|
||||
|
||||
|
||||
//procedure JNI_OnUnload(vm:PJavaVM;reserved:pointer);{$ifdef mswindows}stdcall;{$else}cdecl;{$endif}
|
||||
//begin
|
||||
//end;
|
||||
|
||||
end.
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,117 @@
|
||||
Unit Form_Splash;
|
||||
|
||||
{$mode delphi}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
SysUtils,Classes,math,
|
||||
And_jni,And_jni_Bridge,
|
||||
And_Controls_Types,And_Controls;
|
||||
|
||||
Type
|
||||
jForm_Splash = class(jForm)
|
||||
private
|
||||
tvLabel : jTextView;
|
||||
ivImageBG : jImageView; // Image - BackGround
|
||||
ivImageIcon : jImageView; // Image - Cube
|
||||
Timer : jTimer;
|
||||
//
|
||||
protected
|
||||
Procedure Form_OnActive (Sender : TObject);
|
||||
Procedure Form_OnCloseQuery(Sender : TObject; Var CanClose : Boolean);
|
||||
Procedure Form_OnClose (Sender : TObject);
|
||||
//
|
||||
Procedure Timer_OnTimer (Sender : TObject);
|
||||
public
|
||||
Cnt_Timer : Integer;
|
||||
Constructor Create(Owner : jForm) ; override;
|
||||
Destructor Destroy; override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
//
|
||||
Constructor jForm_Splash.Create(Owner : jForm);
|
||||
begin
|
||||
inherited;
|
||||
dbg('SplashForm.OnCreate');
|
||||
// Resource Extract
|
||||
Asset_SaveToFile('mormot.jpg' ,App.Paths.Files+'/mormot.jpg');
|
||||
Asset_SaveToFile('Synopse.png',App.Paths.Files+'/Synopse.png');
|
||||
// Create Controls ----------------------------------------------------------
|
||||
ivImageBG := jImageView.Create(Self);
|
||||
ivImageBG.xyWH := xyWH( 0,0,App.Device.ScreenWH.width,App.Device.ScreenWH.height); // x,y,w,h
|
||||
ivImageBG.Parent := Self.View;
|
||||
ivImageBG.ImageName := App.Paths.Files+'/mormot.jpg';
|
||||
//
|
||||
ivImageIcon := jImageView.Create(Self);
|
||||
ivImageIcon.xyWH := xyWH(100,80,550,190); // x,y,w,h
|
||||
ivImageIcon.Parent := Self.View;
|
||||
ivImageIcon.ImageName := App.Paths.Files+'/Synopse.png';
|
||||
//
|
||||
tvLabel := jTextView.Create (Self);
|
||||
tvLabel.xyWH := xyWH(60,100,600,60);
|
||||
tvLabel.Parent := Self.View;
|
||||
tvLabel.Text := utf8encode('Please wait ... initializing the mORMot');
|
||||
tvLabel.FontColor := clWhite;
|
||||
tvLabel.FontSize := 35;
|
||||
//
|
||||
Timer := jTimer.Create(Self);
|
||||
Timer.OnTimer := Timer_OnTimer;
|
||||
Timer.Interval := 20;
|
||||
Timer.Enabled := True;
|
||||
Cnt_Timer := 0;
|
||||
//
|
||||
Self.Name := 'Form_Splash';
|
||||
Self.Color := clBlack;
|
||||
Self.OnActive := Form_OnActive;
|
||||
Self.OnClose := Form_OnClose;
|
||||
Self.OnCloseQuery := Form_OnCloseQuery;
|
||||
App.SetTitleBar(False);
|
||||
App.SetScreenStyle(Screen_Style_Full);
|
||||
//
|
||||
end;
|
||||
|
||||
Destructor jForm_Splash.Destroy;
|
||||
begin
|
||||
ivImageBG.Free;
|
||||
ivImageIcon.Free;
|
||||
tvLabel.Free;
|
||||
Timer.Free;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
//
|
||||
Procedure jForm_Splash.Form_OnActive(Sender : TObject);
|
||||
begin
|
||||
dbg('Form_Splash OnActive');
|
||||
end;
|
||||
|
||||
//
|
||||
Procedure jForm_Splash.Form_OnCloseQuery(Sender : TObject; Var CanClose : Boolean);
|
||||
begin
|
||||
dbg('Form_Splash OnCloseQuery');
|
||||
CanClose := True;
|
||||
end;
|
||||
|
||||
//
|
||||
Procedure jForm_Splash.Form_OnClose (Sender : TObject);
|
||||
begin
|
||||
dbg('Form_Splash OnClose');
|
||||
Free;
|
||||
App.SetTitleBar(True);
|
||||
App.SetScreenStyle(Screen_Style_Normal);
|
||||
end;
|
||||
|
||||
//
|
||||
Procedure jForm_Splash.Timer_OnTimer(Sender : TObject);
|
||||
begin
|
||||
Inc(Cnt_Timer,3);
|
||||
If Cnt_timer < ((App.Device.ScreenWH.height DIV 2)-200) then ivImageIcon.xyWH := xyWH(100,80+Cnt_Timer,550,190);
|
||||
If Cnt_timer < (App.Device.ScreenWH.height DIV 2) then Exit;
|
||||
Timer.Enabled := False;
|
||||
Close;
|
||||
end;
|
||||
|
||||
end.
|
@@ -0,0 +1,245 @@
|
||||
Unit Form_Main;
|
||||
|
||||
{$mode delphi}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
SysUtils,Classes,math,
|
||||
And_jni,And_jni_Bridge,And_Controls_Types,And_Controls,
|
||||
Form_Splash
|
||||
,SynCommons
|
||||
,mORMot
|
||||
,mORMotSQLite3, SynSQLite3Static
|
||||
,SampleData
|
||||
;
|
||||
|
||||
Type
|
||||
jForm_Main = class(jForm)
|
||||
private
|
||||
ivImageBG : jImageView; // Image - BackGround
|
||||
lblTitle : jTextView;
|
||||
lblName : jTextView;
|
||||
lblMessage : jTextView;
|
||||
AddBtn : jButton;
|
||||
FindBtn : jButton;
|
||||
cbInput : jCheckBox;
|
||||
cbInput2 : jCheckBox;
|
||||
NameInput : jEditText;
|
||||
MessageInput : jEditText;
|
||||
private
|
||||
Database: TSQLRest;
|
||||
Model: TSQLModel;
|
||||
protected
|
||||
Procedure Form_OnActive (Sender : TObject);
|
||||
Procedure Form_OnCloseQuery(Sender : TObject; Var CanClose : Boolean);
|
||||
Procedure Form_OnClose (Sender : TObject);
|
||||
Procedure Form_OnRotate (Sender : TObject; rotate : TScreen_Rotate; var rstRotate : TScreen_Rotate);
|
||||
//
|
||||
Procedure AddBtn_OnClick (Sender : TObject);
|
||||
Procedure FindBtn_OnClick (Sender : TObject);
|
||||
Procedure cbInput_OnClick (Sender : TObject);
|
||||
Procedure cbInput2_OnClick (Sender : TObject);
|
||||
public
|
||||
Form_Splash : jForm;
|
||||
Constructor Create(Owner : jForm) ; override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
//
|
||||
Constructor jForm_Main.Create(Owner : jForm) ;
|
||||
begin
|
||||
inherited;
|
||||
|
||||
Dbg('MainForm.OnCreate');
|
||||
Self.Color := clBlack;
|
||||
|
||||
// Resource Extract
|
||||
Asset_SaveToFile('mormotbw.jpg' ,App.Paths.Files+'/mormotbw.jpg');
|
||||
// Create Controls ----------------------------------------------------------
|
||||
ivImageBG := jImageView.Create(Self);
|
||||
ivImageBG.xyWH := xyWH( 0,0,App.Device.ScreenWH.width,App.Device.ScreenWH.height); // x,y,w,h
|
||||
ivImageBG.Parent := Self.View;
|
||||
ivImageBG.ImageName := App.Paths.Files+'/mormotbw.jpg';
|
||||
|
||||
lblTitle := jTextView.Create (Self);
|
||||
lblTitle.xyWH := xyWH(30,10,600,80,1.4);
|
||||
lblTitle.Parent := Self.View;
|
||||
lblTitle.Text := 'mORMot for Android';
|
||||
lblTitle.FontSize := 60;
|
||||
lblTitle.FontColor := clBlue;
|
||||
lblTitle.Enabled := True;
|
||||
//
|
||||
lblName := jTextView.Create (Self);
|
||||
lblName.xyWH := xyWH(30,90,200,40,1.2);
|
||||
lblName.Parent := Self.View;
|
||||
lblName.Text := 'Your name' ;
|
||||
lblName.FontColor := clBlack;
|
||||
lblName.FontSize := 30;
|
||||
|
||||
NameInput := jEditText.Create (Self);
|
||||
NameInput.xyWH := xyWH( 30,150,350, 80);
|
||||
NameInput.Parent := Self.View;
|
||||
NameInput.FontColor := clWhite; // ARGB , Black
|
||||
NameInput.FontSize := 40; // Pixel
|
||||
NameInput.EditType := Edit_Type_Text; //
|
||||
//NameInput.OnEnter := edInput_OnEnter;
|
||||
//NameInput.OnChange := edInput_OnChange;
|
||||
NameInput.Text := '';
|
||||
NameInput.Hint := 'Enter Name';
|
||||
|
||||
FindBtn := jButton.Create(Self);
|
||||
FindBtn.xyWH := xyWH( 400,150,220,80); // x,y,w,h
|
||||
FindBtn.Parent := Self.View;
|
||||
FindBtn.Text := 'Find';
|
||||
FindBtn.FontColor := clWhite;
|
||||
FindBtn.FontSize := 40;
|
||||
FindBtn.OnClick := FindBtn_OnClick;
|
||||
|
||||
lblMessage := jTextView.Create (Self);
|
||||
lblMessage.xyWH := xyWH(30,200,200,40,1.2);
|
||||
lblMessage.Parent := Self.View;
|
||||
lblMessage.Text := 'Your message' ;
|
||||
lblMessage.FontColor := clBlack;
|
||||
lblMessage.FontSize := 30;
|
||||
|
||||
MessageInput := jEditText.Create(Self);
|
||||
MessageInput.xyWH := xyWH( 30, 280, 600, 400);
|
||||
MessageInput.Parent := Self.View;
|
||||
MessageInput.FontColor := clWhite; // ARGB , Black
|
||||
MessageInput.FontSize := 40; // Pixel
|
||||
MessageInput.EditType := Edit_Type_Text; //
|
||||
MessageInput.EditStyle := Edit_Style_MultiLine; //
|
||||
//MessageInput.OnEnter := edInput_OnEnter;
|
||||
//MessageInput.OnChange := edInput_OnChange;
|
||||
MessageInput.Text := '';
|
||||
MessageInput.Hint := 'Enter Message';
|
||||
|
||||
AddBtn := jButton.Create(Self);
|
||||
AddBtn.xyWH := xyWH(30,700,600,80); // x,y,w,h
|
||||
AddBtn.Parent := Self.View;
|
||||
AddBtn.Text := 'Add the message';
|
||||
AddBtn.OnClick := AddBtn_OnClick;
|
||||
AddBtn.FontSize := 40;
|
||||
AddBtn.FontColor := clWhite;
|
||||
|
||||
cbInput := jCheckBox.Create(Self);
|
||||
cbInput.xyWH := xyWH( 30,800,400, 50); // x,y,w,h
|
||||
cbInput.Parent := Self.View;
|
||||
cbInput.Text := 'Full screen';
|
||||
cbInput.Checked := False;
|
||||
cbInput.FontColor := clWhite;
|
||||
cbInput.FontSize := 40; // Pixel
|
||||
cbInput.OnClick := cbInput_OnClick;
|
||||
|
||||
cbInput2 := jCheckBox.Create(Self);
|
||||
cbInput2.xyWH := xyWH( 30,900,400, 50); // x,y,w,h
|
||||
cbInput2.Parent := Self.View;
|
||||
cbInput2.Text := 'Title / action bar';
|
||||
cbInput2.Checked := True;
|
||||
cbInput2.FontColor := clWhite;
|
||||
cbInput2.FontSize := 40; // Pixel
|
||||
cbInput2.OnClick := cbInput2_OnClick;
|
||||
|
||||
|
||||
Self.Name := 'Form_Main';
|
||||
Self.OnActive := Form_OnActive;
|
||||
Self.OnCloseQuery := Form_OnCloseQuery;
|
||||
Self.OnClose := Form_OnClose;
|
||||
//Self.OnRotate := Form_OnRotate; // rotate not enabled now ... fixed portrait ... see also AndroidManifest.xml
|
||||
App.SetTitleBar(True);
|
||||
App.SetScreenStyle(Screen_Style_Normal);
|
||||
|
||||
// the mORMot
|
||||
Model := CreateSampleModel; // from SampleData unit
|
||||
Database := TSQLRestServerDB.Create(Model,App.Paths.DOWNLOADS+'/mORMot.db3');
|
||||
TSQLRestServerDB(Database).CreateMissingTables;
|
||||
|
||||
Form_Splash := jForm_Splash.Create(Self);
|
||||
end;
|
||||
|
||||
Procedure jForm_Main.Form_OnActive(Sender : TObject);
|
||||
begin
|
||||
Dbg('OnActive Event');
|
||||
Form_Splash.Show;
|
||||
end;
|
||||
|
||||
Procedure jForm_Main.Form_OnCloseQuery(Sender : TObject; Var CanClose : Boolean);
|
||||
begin
|
||||
Dbg('CanClose:Main');
|
||||
CanClose := True;
|
||||
if Assigned(Form_Splash.View) then Form_Splash.Visible := False;
|
||||
end;
|
||||
|
||||
Procedure jForm_Main.Form_OnClose(Sender : TObject);
|
||||
begin
|
||||
Dbg('OnClose Event:Main');
|
||||
Database.Free;
|
||||
Model.Free;
|
||||
Self.Free;
|
||||
App.Finish;
|
||||
end;
|
||||
|
||||
Procedure jForm_Main.Form_OnRotate(Sender : TObject; rotate : TScreen_Rotate; var rstRotate : TScreen_Rotate);
|
||||
begin
|
||||
MessageInput.Text := 'Rotating';
|
||||
case rotate of
|
||||
Screen_Rotate_PORTRAIT:MessageInput.Text := 'Rotating: Portrait';
|
||||
Screen_Rotate_LANDSCAPE:MessageInput.Text := 'Rotating: Landscape';
|
||||
end;
|
||||
end;
|
||||
|
||||
Procedure jForm_Main.cbInput_OnClick(Sender : TObject);
|
||||
begin
|
||||
Case cbInput.Checked of
|
||||
True : begin
|
||||
App.setScreenStyle(Screen_Style_Full);
|
||||
end;
|
||||
False : begin
|
||||
App.setScreenStyle(Screen_Style_Normal);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
Procedure jForm_Main.cbInput2_OnClick(Sender : TObject);
|
||||
begin
|
||||
App.SetTitleBar(cbInput2.Checked);
|
||||
end;
|
||||
|
||||
|
||||
Procedure jForm_Main.AddBtn_OnClick (Sender : TObject);
|
||||
var Rec: TSQLSampleRecord;
|
||||
begin
|
||||
Rec := TSQLSampleRecord.Create;
|
||||
try
|
||||
// we use explicit StringToUTF8() for conversion below
|
||||
// a real application should use TLanguageFile.StringToUTF8() in mORMoti18n
|
||||
Rec.Name := StringToUTF8(NameInput.Text);
|
||||
Rec.Question := StringToUTF8(MessageInput.Text);
|
||||
if Database.Add(Rec,true)=0 then
|
||||
ShowMessage('Error adding the data') else begin
|
||||
NameInput.Text := '';
|
||||
MessageInput.Text := '';
|
||||
NameInput.SetFocus;
|
||||
end;
|
||||
finally
|
||||
Rec.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
Procedure jForm_Main.FindBtn_OnClick (Sender : TObject);
|
||||
var Rec: TSQLSampleRecord;
|
||||
begin
|
||||
Rec := TSQLSampleRecord.Create(Database,'Name=?',[StringToUTF8(NameInput.Text)]);
|
||||
try
|
||||
if Rec.ID=0 then
|
||||
MessageInput.Text := 'Not found' else
|
||||
MessageInput.Text := UTF8ToString(Rec.Question);
|
||||
finally
|
||||
Rec.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
end.
|
@@ -0,0 +1,39 @@
|
||||
/// it's a good practice to put all data definition into a stand-alone unit
|
||||
// - this unit will be shared between client and server
|
||||
unit SampleData;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
SynCommons,
|
||||
mORMot;
|
||||
|
||||
type
|
||||
/// here we declare the class containing the data
|
||||
// - it just has to inherits from TSQLRecord, and the published
|
||||
// properties will be used for the ORM (and all SQL creation)
|
||||
// - the beginning of the class name must be 'TSQL' for proper table naming
|
||||
// in client/server environnment
|
||||
TSQLSampleRecord = class(TSQLRecord)
|
||||
private
|
||||
fQuestion: RawUTF8;
|
||||
fName: RawUTF8;
|
||||
fTime: TModTime;
|
||||
published
|
||||
property Time: TModTime read fTime write fTime;
|
||||
property Name: RawUTF8 read fName write fName;
|
||||
property Question: RawUTF8 read fQuestion write fQuestion;
|
||||
end;
|
||||
|
||||
/// an easy way to create a database model for client and server
|
||||
function CreateSampleModel: TSQLModel;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
function CreateSampleModel: TSQLModel;
|
||||
begin
|
||||
result := TSQLModel.Create([TSQLSampleRecord]);
|
||||
end;
|
||||
|
||||
end.
|
@@ -0,0 +1,140 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<Version Value="9"/>
|
||||
<General>
|
||||
<Flags>
|
||||
<SaveOnlyProjectUnits Value="True"/>
|
||||
<MainUnitHasCreateFormStatements Value="False"/>
|
||||
<MainUnitHasTitleStatement Value="False"/>
|
||||
</Flags>
|
||||
<SessionStorage Value="InProjectDir"/>
|
||||
<MainUnit Value="0"/>
|
||||
<Title Value="mORMotDemoOnAndroid"/>
|
||||
<UseAppBundle Value="False"/>
|
||||
<ResourceType Value="res"/>
|
||||
<Icon Value="-1"/>
|
||||
</General>
|
||||
<i18n>
|
||||
<EnableI18N LFM="False"/>
|
||||
</i18n>
|
||||
<VersionInfo>
|
||||
<UseVersionInfo Value="True"/>
|
||||
<AutoIncrementBuild Value="True"/>
|
||||
<BuildNr Value="2986"/>
|
||||
<StringTable ProductVersion=""/>
|
||||
</VersionInfo>
|
||||
<BuildModes Count="1">
|
||||
<Item1 Name="Default" Default="True"/>
|
||||
</BuildModes>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
|
||||
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
|
||||
</PublishOptions>
|
||||
<RunParams>
|
||||
<local>
|
||||
<FormatVersion Value="1"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
<Units Count="5">
|
||||
<Unit0>
|
||||
<Filename Value="mORMotOnAndroid.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="mORMotOnAndroid"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="Form_main.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="Form_Main"/>
|
||||
</Unit1>
|
||||
<Unit2>
|
||||
<Filename Value="And_Controls/And_Jni_Bridge.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="And_Jni_Bridge"/>
|
||||
</Unit2>
|
||||
<Unit3>
|
||||
<Filename Value="../src/Controls.java"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit3>
|
||||
<Unit4>
|
||||
<Filename Value="../src/App.java"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
</Unit4>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="11"/>
|
||||
<Target>
|
||||
<Filename ApplyConventions="False"/>
|
||||
</Target>
|
||||
<SearchPaths>
|
||||
<IncludeFiles Value="$(ProjOutDir);../mORMot"/>
|
||||
<Libraries Value="C:/Users/Public/Documents/Embarcadero/Studio/15.0/PlatformSDKs/android-ndk-r9c/platforms/android-18/arch-arm/usr/lib/;C:/Users/Public/Documents/Embarcadero/Studio/15.0/PlatformSDKs/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/lib/gcc/arm-linux-androideabi/4.6/"/>
|
||||
<OtherUnitFiles Value="And_Controls;../mORMot;../mORMot/SQLite3"/>
|
||||
</SearchPaths>
|
||||
<Parsing>
|
||||
<SyntaxOptions>
|
||||
<SyntaxMode Value="Delphi"/>
|
||||
<CStyleOperator Value="False"/>
|
||||
<AllowLabel Value="False"/>
|
||||
<CPPInline Value="False"/>
|
||||
<UseAnsiStrings Value="False"/>
|
||||
</SyntaxOptions>
|
||||
</Parsing>
|
||||
<CodeGeneration>
|
||||
<TargetCPU Value="arm"/>
|
||||
<TargetOS Value="android"/>
|
||||
<Optimizations>
|
||||
<OptimizationLevel Value="3"/>
|
||||
</Optimizations>
|
||||
</CodeGeneration>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<GenerateDebugInfo Value="False"/>
|
||||
<UseLineInfoUnit Value="False"/>
|
||||
</Debugging>
|
||||
<Options>
|
||||
<ExecutableType Value="Library"/>
|
||||
</Options>
|
||||
</Linking>
|
||||
<Other>
|
||||
<Verbosity>
|
||||
<ShowNotes Value="False"/>
|
||||
<ShowHints Value="False"/>
|
||||
<ShowGenInfo Value="False"/>
|
||||
</Verbosity>
|
||||
<WriteFPCLogo Value="False"/>
|
||||
<CustomOptions Value="-MObjFPC -Scghi -CX
|
||||
-Tandroid
|
||||
-Parm
|
||||
-O3
|
||||
-XsdX
|
||||
-vew
|
||||
-FuAnd_Controls
|
||||
-FUoutput
|
||||
-XParm-linux-androideabi-
|
||||
-o..\libs\armeabi-v7a\libmain.so"/>
|
||||
<ExecuteBefore>
|
||||
<CompileReasons Compile="False" Build="False" Run="False"/>
|
||||
</ExecuteBefore>
|
||||
<ExecuteAfter>
|
||||
<ShowAllMessages Value="True"/>
|
||||
<CompileReasons Compile="False" Run="False"/>
|
||||
</ExecuteAfter>
|
||||
</Other>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<Exceptions Count="3">
|
||||
<Item1>
|
||||
<Name Value="EAbort"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<Name Value="ECodetoolError"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<Name Value="EFOpenError"/>
|
||||
</Item3>
|
||||
</Exceptions>
|
||||
</Debugging>
|
||||
</CONFIG>
|
@@ -0,0 +1,115 @@
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// Free Pascal for Android
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
library mORMotOnAndroidTyphon;
|
||||
|
||||
{$mode delphi}
|
||||
{$packrecords c}
|
||||
|
||||
uses
|
||||
And_jni,And_jni_Bridge,
|
||||
And_Controls_Types,And_Controls,
|
||||
Form_Main;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Application Define
|
||||
//
|
||||
// XRef.
|
||||
// App.java : package com.kredix;
|
||||
// Controls.java : package com.kredix;
|
||||
//
|
||||
// AndroidManifest.xml : package = "com.kredix"
|
||||
// uninstall.bat : adb.exe uninstall com.kredix
|
||||
//------------------------------------------------------------------------------
|
||||
Const
|
||||
cAppName = 'com.mormot.mORMotDemoOnAndroid'; // ! Use your app name
|
||||
cAppJ = 'com_mormot_Controls'; // ! Pascal Lib. Export name
|
||||
|
||||
// JNI - Java->Pas
|
||||
function JNI_OnLoad (vm:PJavaVM;reserved:pointer):jint; cdecl; forward;
|
||||
Procedure JNI_OnUnload (vm:PJavaVM;reserved:pointer); cdecl; forward;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Java Interface
|
||||
//-----------------------------------------------------------------------------
|
||||
exports
|
||||
// JNI
|
||||
JNI_OnLoad name 'JNI_OnLoad',
|
||||
JNI_OnUnload name 'JNI_OnUnload',
|
||||
|
||||
// App Event
|
||||
Java_Event_pOnAppCreate name 'Java_' + cAppJ + '_pOnAppCreate' ,
|
||||
Java_Event_pOnAppScreenStyle name 'Java_' + cAppJ + '_pOnAppScreenStyle' ,
|
||||
Java_Event_pOnAppScreenOrientation name 'Java_' + cAppJ + '_pOnAppScreenOrientation' ,
|
||||
Java_Event_pOnAppNewIntent name 'Java_' + cAppJ + '_pOnAppNewIntent' ,
|
||||
Java_Event_pOnAppDestroy name 'Java_' + cAppJ + '_pOnAppDestroy' ,
|
||||
Java_Event_pOnAppPause name 'Java_' + cAppJ + '_pOnAppPause' ,
|
||||
Java_Event_pOnAppRestart name 'Java_' + cAppJ + '_pOnAppRestart' ,
|
||||
Java_Event_pOnAppResume name 'Java_' + cAppJ + '_pOnAppResume' ,
|
||||
Java_Event_pOnAppActive name 'Java_' + cAppJ + '_pOnAppActive' ,
|
||||
Java_Event_pOnAppStop name 'Java_' + cAppJ + '_pOnAppStop' ,
|
||||
Java_Event_pOnAppBackPressed name 'Java_' + cAppJ + '_pOnAppBackPressed' ,
|
||||
Java_Event_pOnAppRotate name 'Java_' + cAppJ + '_pOnAppRotate' ,
|
||||
Java_Event_pOnAppConfigurationChanged name 'Java_' + cAppJ + '_pOnAppConfigurationChanged',
|
||||
Java_Event_pOnAppActivityResult name 'Java_' + cAppJ + '_pOnAppActivityResult' ,
|
||||
|
||||
// Control Event
|
||||
Java_Event_pOnChange name 'Java_' + cAppJ + '_pOnChange',
|
||||
Java_Event_pOnClick name 'Java_' + cAppJ + '_pOnClick' ,
|
||||
Java_Event_pOnDraw name 'Java_' + cAppJ + '_pOnDraw' ,
|
||||
Java_Event_pOnEnter name 'Java_' + cAppJ + '_pOnEnter' ,
|
||||
Java_Event_pOnTimer name 'Java_' + cAppJ + '_pOnTimer' ,
|
||||
Java_Event_pOnTouch name 'Java_' + cAppJ + '_pOnTouch' ,
|
||||
|
||||
// Form Event
|
||||
Java_Event_pOnClose name 'Java_' + cAppJ + '_pOnClose' ,
|
||||
|
||||
// State Event
|
||||
Java_Event_pOnGLViewState name 'Java_' + cAppJ + '_pOnGLViewState' ,
|
||||
Java_Event_pOnWebViewState name 'Java_' + cAppJ + '_pOnWebViewState' ,
|
||||
Java_Event_pOnAsyncTaskState name 'Java_' + cAppJ + '_pOnAsyncTaskState',
|
||||
Java_Event_pOnHttpState name 'Java_' + cAppJ + '_pOnHttpState' ,
|
||||
|
||||
// Camera Preview Event
|
||||
Java_Event_pOnCameraFrame name 'Java_' + cAppJ + '_pOnCameraFrame';
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Application StartUp
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
Procedure OnAppCreate;
|
||||
begin
|
||||
App.Form := jForm_Main.Create(nil);
|
||||
App.Form.Show;
|
||||
end;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// JNI_OnLoad, Unload
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
Function JNI_OnLoad(vm:PJavaVM;reserved:pointer):jint; cdecl;
|
||||
begin
|
||||
jLog('JNI_OnLoad');
|
||||
Result := JNI_VERSION_1_6;
|
||||
//
|
||||
jAppInit(App, // App Object Create & Init
|
||||
Vm, // Java VM
|
||||
cAppName, // App Name
|
||||
Screen_Style_Normal, // Screen Style [Normal,Full]
|
||||
Screen_Orientation_Portrait, // Screen Orientation [Portrait,Landscape]
|
||||
// Screen_Orientation_SENSOR,
|
||||
cLogModeOn, // Log Mode (Default : On)
|
||||
OnAppCreate); // App Create Event
|
||||
end;
|
||||
|
||||
Procedure JNI_OnUnload(vm:PJavaVM;reserved:pointer); cdecl;
|
||||
begin
|
||||
jLog('JNI_OnUnload');
|
||||
//
|
||||
end;
|
||||
|
||||
end.
|
||||
|
Binary file not shown.
@@ -0,0 +1,93 @@
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
// Free Pascal for Android
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
library main;
|
||||
|
||||
{$mode delphi}
|
||||
{$packrecords c}
|
||||
|
||||
uses
|
||||
And_jni,
|
||||
And_Controls_Types,And_Controls,
|
||||
Form_Main;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Application Define
|
||||
//
|
||||
// XRef.
|
||||
// App.java : package com.kredix;
|
||||
// Controls.java : package com.kredix;
|
||||
//
|
||||
// AndroidManifest.xml : package = "com.kredix"
|
||||
// uninstall.bat : adb.exe uninstall com.kredix
|
||||
//------------------------------------------------------------------------------
|
||||
Const
|
||||
cAppName = 'com.kredix'; // ! Use your app name
|
||||
cAppJ = 'com_kredix_Controls'; // ! Pascal Lib. Export name
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Java Interface
|
||||
//-----------------------------------------------------------------------------
|
||||
exports
|
||||
// JNI
|
||||
JNI_OnLoad name 'JNI_OnLoad',
|
||||
JNI_OnUnload name 'JNI_OnUnload',
|
||||
|
||||
// App Event
|
||||
Java_Event_pOnAppCreate name 'Java_' + cAppJ + '_pOnAppCreate' ,
|
||||
Java_Event_pOnAppScreenStyle name 'Java_' + cAppJ + '_pOnAppScreenStyle' ,
|
||||
Java_Event_pOnAppScreenOrientation name 'Java_' + cAppJ + '_pOnAppScreenOrientation' ,
|
||||
Java_Event_pOnAppNewIntent name 'Java_' + cAppJ + '_pOnAppNewIntent' ,
|
||||
Java_Event_pOnAppDestroy name 'Java_' + cAppJ + '_pOnAppDestroy' ,
|
||||
Java_Event_pOnAppPause name 'Java_' + cAppJ + '_pOnAppPause' ,
|
||||
Java_Event_pOnAppRestart name 'Java_' + cAppJ + '_pOnAppRestart' ,
|
||||
Java_Event_pOnAppResume name 'Java_' + cAppJ + '_pOnAppResume' ,
|
||||
Java_Event_pOnAppActive name 'Java_' + cAppJ + '_pOnAppActive' ,
|
||||
Java_Event_pOnAppStop name 'Java_' + cAppJ + '_pOnAppStop' ,
|
||||
Java_Event_pOnAppBackPressed name 'Java_' + cAppJ + '_pOnAppBackPressed' ,
|
||||
Java_Event_pOnAppRotate name 'Java_' + cAppJ + '_pOnAppRotate' ,
|
||||
Java_Event_pOnAppConfigurationChanged name 'Java_' + cAppJ + '_pOnAppConfigurationChanged',
|
||||
Java_Event_pOnAppActivityResult name 'Java_' + cAppJ + '_pOnAppActivityResult' ,
|
||||
|
||||
// Control Event
|
||||
Java_Event_pOnChange name 'Java_' + cAppJ + '_pOnChange',
|
||||
Java_Event_pOnClick name 'Java_' + cAppJ + '_pOnClick' ,
|
||||
Java_Event_pOnDraw name 'Java_' + cAppJ + '_pOnDraw' ,
|
||||
Java_Event_pOnEnter name 'Java_' + cAppJ + '_pOnEnter' ,
|
||||
Java_Event_pOnTimer name 'Java_' + cAppJ + '_pOnTimer' ,
|
||||
Java_Event_pOnTouch name 'Java_' + cAppJ + '_pOnTouch' ,
|
||||
|
||||
// Form Event
|
||||
Java_Event_pOnClose name 'Java_' + cAppJ + '_pOnClose' ,
|
||||
|
||||
// State Event
|
||||
Java_Event_pOnGLViewState name 'Java_' + cAppJ + '_pOnGLViewState' ,
|
||||
Java_Event_pOnWebViewState name 'Java_' + cAppJ + '_pOnWebViewState' ,
|
||||
Java_Event_pOnAsyncTaskState name 'Java_' + cAppJ + '_pOnAsyncTaskState',
|
||||
Java_Event_pOnHttpState name 'Java_' + cAppJ + '_pOnHttpState' ,
|
||||
|
||||
// Camera Preview Event
|
||||
Java_Event_pOnCameraFrame name 'Java_' + cAppJ + '_pOnCameraFrame';
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Application StartUp
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
Procedure OnAppCreate;
|
||||
begin
|
||||
App.Form := jForm_Main.Create(nil);
|
||||
App.Form.Show;
|
||||
end;
|
||||
|
||||
begin
|
||||
Dbg('Lib Start');
|
||||
jAppInit(App, // App Object Create & Init
|
||||
cAppName, // App Name
|
||||
Screen_Style_Normal, // Screen Style [Normal,Full]
|
||||
Screen_Orientation_Portrait, // Screen Orientation [Portrait,Landscape]
|
||||
cLogModeOn, // Log Mode (Default : On)
|
||||
OnAppCreate); // App Create Event
|
||||
end.
|
Binary file not shown.
Reference in New Issue
Block a user