Removes the LCL-Android example as this interface was substituted by LCL-CustomDrawn

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2187 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
sekelsenmat 2011-12-09 08:36:21 +00:00
parent 0f88939e2d
commit 27833d3746
20 changed files with 0 additions and 2224 deletions

View File

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.pascal.androidlcl"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.VIBRATE" />
<supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:anyDensity="true" />
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="4" />
<application android:label="@string/app_name" android:icon="@drawable/icon"
android:debuggable="True">
<activity android:name="AndroidLCLTest"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

View File

@ -1,17 +0,0 @@
# This file is used to override default values used by the Ant build system.
#
# This file must be checked in Version Control Systems, as it is
# integral to the build system of your project.
# This file is only used by the Ant script.
# You can use this to override default values such as
# 'source.dir' for the location of your java source folder and
# 'out.dir' for the location of your output folder.
# You can also use it define how the release builds are signed by declaring
# the following properties:
# 'key.store' for the location of your keystore and
# 'key.alias' for the name of the key to use.
# The password will be asked during the build when you use the 'release' target.

View File

@ -1,85 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="AndroidLCLTest" default="help">
<!-- The local.properties file is created and updated by the 'android' tool.
It contains the path to the SDK. It should *NOT* be checked into
Version Control Systems. -->
<loadproperties srcFile="local.properties" />
<!-- The ant.properties file can be created by you. It is only edited by the
'android' tool to add properties to it.
This is the place to change some Ant specific build properties.
Here are some properties you may want to change/update:
source.dir
The name of the source directory. Default is 'src'.
out.dir
The name of the output directory. Default is 'bin'.
For other overridable properties, look at the beginning of the rules
files in the SDK, at tools/ant/build.xml
Properties related to the SDK location or the project target should
be updated using the 'android' tool with the 'update' action.
This file is an integral part of the build system for your
application and should be checked into Version Control Systems.
-->
<property file="ant.properties" />
<!-- The project.properties file is created and updated by the 'android'
tool, as well as ADT.
This contains project specific properties such as project target, and library
dependencies. Lower level build properties are stored in ant.properties
(or in .classpath for Eclipse projects).
This file is an integral part of the build system for your
application and should be checked into Version Control Systems. -->
<loadproperties srcFile="project.properties" />
<!-- quick check on sdk.dir -->
<fail
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project'"
unless="sdk.dir"
/>
<!-- extension targets. Uncomment the ones where you want to do custom work
in between standard targets -->
<!--
<target name="-pre-build">
</target>
<target name="-pre-compile">
</target>
/* This is typically used for code obfuscation.
Compiled code location: ${out.classes.absolute.dir}
If this is not done in place, override ${out.dex.input.absolute.dir} */
<target name="-post-compile">
</target>
-->
<!-- Import the actual build file.
To customize existing targets, there are two options:
- Customize only one target:
- copy/paste the target into this file, *before* the
<import> task.
- customize it to your needs.
- Customize the whole content of build.xml
- copy/paste the content of the rules files (minus the top node)
into this file, replacing the <import> task.
- customize to your needs.
***********************
****** IMPORTANT ******
***********************
In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
in order to avoid having your file be overridden by tools such as "android update project"
-->
<!-- version-tag: 1 -->
<import file="${sdk.dir}/tools/ant/build.xml" />
</project>

View File

@ -1,11 +0,0 @@
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=android-4

View File

@ -1,10 +0,0 @@
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must *NOT* be checked in Version Control Systems,
# as it contains information specific to your local configuration.
# location of the SDK. This is only used by Ant
# For customization when using a Version Control System, please read the
# header note.
sdk.dir=/home/felipe/Programas/android-sdk-linux

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">LCL Test</string>
</resources>

View File

@ -1,965 +0,0 @@
package com.pascal.androidlcl;
import android.app.*;
import android.view.*;
import android.os.*;
import android.util.*;
import android.content.*;
import android.view.*;
import android.widget.*;
import android.R.*;
import java.util.*;
import java.lang.*;
public class AndroidAll
{
// info from other classes
Activity activity;
AndroidPipesComm MyAndroidPipesComm;
JavaLang MyJavaLang;
// lists of variables
ArrayList ViewElements;
ArrayList ViewElementsTags;
public AndroidAll(AndroidPipesComm AAndroidPipesComm, Activity AActivity, JavaLang AJavaLang)
{
activity = AActivity;
MyAndroidPipesComm = AAndroidPipesComm;
MyJavaLang = AJavaLang;
ViewElements = new ArrayList();
ViewElementsTags = new ArrayList();
}
public void DebugOut(String Str)
{
MyAndroidPipesComm.DebugOut(Str);
}
// DisplayMetrics
static final int amkUI_TDisplayMetrics_Create_0 = 0x00101000;
static final int amkUI_TDisplayMetrics_density_1 = 0x00101001;
static final int amkUI_TDisplayMetrics_densityDpi_2 = 0x00101002;
static final int amkUI_TDisplayMetrics_heightPixels_3 = 0x00101003;
static final int amkUI_TDisplayMetrics_scaledDensity_4 = 0x00101004;
static final int amkUI_TDisplayMetrics_widthPixels_5 = 0x00101005;
static final int amkUI_TDisplayMetrics_xdpi_6 = 0x00101006;
static final int amkUI_TDisplayMetrics_ydpi_7 = 0x00101007;
// DialogInterface
// Activity
static final int amkUI_TActivity_setTitle_0 = 0x00103000;
static final int amkUI_TActivity_getTitle_1 = 0x00103001;
// Display
static final int amkUI_TDisplay_getMetrics_0 = 0x00104000;
// WindowManager
static final int amkUI_TWindowManager_getDefaultDisplay_0 = 0x00105000;
// Dialog
static final int amkUI_TDialog_show_0 = 0x00106000;
// AlertDialog
static final int amkUI_TAlertDialog_setButton_0 = 0x00107000;
static final int amkUI_TAlertDialog_Button_Start_1 = 0x00107001;
static final int amkUI_TAlertDialog_Button_Finished_2 = 0x00107002;
static final int amkUI_TAlertDialog_setMessage_3 = 0x00107003;
static final int amkUI_TAlertDialog_setTitle_4 = 0x00107004;
static final int amkUI_TAlertDialog_setView_5 = 0x00107005;
// AlertDialog.Builder
static final int amkUI_TAlertDialog_Builder_Create_0 = 0x00108000;
static final int amkUI_TAlertDialog_Builder_create_1 = 0x00108001;
static final int amkUI_TAlertDialog_Builder_setMessage_2 = 0x00108002;
static final int amkUI_TAlertDialog_Builder_setTitle_3 = 0x00108003;
static final int amkUI_TAlertDialog_Builder_setView_4 = 0x00108004;
static final int amkUI_TAlertDialog_Builder_show_5 = 0x00108005;
// ViewGroup.LayoutParams
static final int amkUI_TViewGroup_LayoutParams_Create_0 = 0x00109000;
// View
static final int amkUI_TView_setLayoutParams_0 = 0x0010A000;
static final int amkUI_TView_setOnClickListener_1 = 0x0010A001;
static final int amkUI_TView_OnClickListener_Start_2 = 0x0010A002;
static final int amkUI_TView_OnClickListener_Finished_3 = 0x0010A003;
static final int amkUI_TView_setVisibility_4 = 0x0010A004;
// ViewGroup
static final int amkUI_TViewGroup_addView_0 = 0x0010B000;
static final int amkUI_TViewGroup_addView_1 = 0x0010B001;
static final int amkUI_TViewGroup_addView_2 = 0x0010B002;
static final int amkUI_TViewGroup_addView_3 = 0x0010B003;
static final int amkUI_TViewGroup_addView_4 = 0x0010B004;
// LinearLayout
static final int amkUI_TLinearLayout_Create_0 = 0x0010C000;
static final int amkUI_TLinearLayout_setOrientation_1 = 0x0010C001;
// AbsoluteLayout
static final int amkUI_TAbsoluteLayout_Create_0 = 0x0010D000;
// AbsoluteLayout.LayoutParams
static final int amkUI_TAbsoluteLayout_LayoutParams_Create_0 = 0x0010E000;
// TextView
static final int amkUI_TTextView_Create_0 = 0x0010F000;
static final int amkUI_TTextView_getText_1 = 0x0010F001;
static final int amkUI_TTextView_setText_2 = 0x0010F002;
static final int amkUI_TTextView_setTextSize_3 = 0x0010F003;
// EditText
static final int amkUI_TEditText_Create_0 = 0x00110000;
// Button
static final int amkUI_TButton_Create_0 = 0x00111000;
// FrameLayout
// TimePicker
static final int amkUI_TTimePicker_Create_0 = 0x00113000;
static final int amkUI_TTimePicker_getCurrentHour_1 = 0x00113001;
static final int amkUI_TTimePicker_setCurrentHour_2 = 0x00113002;
static final int amkUI_TTimePicker_getCurrentMinute_3 = 0x00113003;
static final int amkUI_TTimePicker_setCurrentMinute_4 = 0x00113004;
static final int amkUI_TTimePicker_is24HourView_5 = 0x00113005;
static final int amkUI_TTimePicker_setIs24HourView_6 = 0x00113006;
// ScrollView
static final int amkUI_TScrollView_Create_0 = 0x00114000;
// CompoundButton
static final int amkUI_TCompoundButton_isChecked_0 = 0x00115000;
static final int amkUI_TCompoundButton_performClick_1 = 0x00115001;
static final int amkUI_TCompoundButton_setChecked_2 = 0x00115002;
static final int amkUI_TCompoundButton_toggle_3 = 0x00115003;
// CheckBox
static final int amkUI_TCheckBox_Create_0 = 0x00116000;
// AdapterView
static final int amkUI_TAdapterView_getSelectedItemPosition_0 = 0x00117000;
// AbsSpinner
static final int amkUI_TAbsSpinner_getCount_0 = 0x00118000;
static final int amkUI_TAbsSpinner_setAdapter_1 = 0x00118001;
static final int amkUI_TAbsSpinner_setSelection_2 = 0x00118002;
// Spinner
static final int amkUI_TSpinner_Create_0 = 0x00119000;
// Filterable
// Adapter
// ListAdapter
// SpinnerAdapter
// BaseAdapter
// ArrayAdapter<String>
static final int amkUI_TArrayAdapter_String__Create_0 = 0x0011F000;
static final int amkUI_TArrayAdapter_String__add_1 = 0x0011F001;
static final int amkUI_TArrayAdapter_String__clear_2 = 0x0011F002;
static final int amkUI_TArrayAdapter_String__insert_3 = 0x0011F003;
static final int amkUI_TArrayAdapter_String__remove_4 = 0x0011F004;
// layout
public boolean ProcessCommand(int Buffer)
{
//DebugOut("AndroidUI.ProcessCommand Command=" + java.lang.Integer.toHexString(Buffer));
//
// basic types
//
int lInt, lIndex, lPascalPointer;
boolean lBool;
float lFloat;
//
// Self params
//
View param_self_View;
ViewGroup param_self_ViewGroup;
TextView param_self_TextView;
Button param_self_Button;
EditText param_self_EditText;
LinearLayout param_self_LinearLayout;
TimePicker param_self_TimePicker;
Display param_self_Display;
DisplayMetrics param_self_DisplayMetrics;
CompoundButton param_self_CompoundButton;
WindowManager param_self_WindowManager;
AbsSpinner param_self_AbsSpinner;
ArrayAdapter<String> param_self_ArrayAdapter_String_;
AdapterView param_self_AdapterView;
AlertDialog.Builder param_self_AlertDialog_Builder;
Dialog param_self_Dialog;
AlertDialog param_self_AlertDialog;
//
// Params
//
ViewGroup.LayoutParams lViewGroup_LayoutParams_1, lViewGroup_LayoutParams_2, lViewGroup_LayoutParams_3;
SpinnerAdapter lSpinnerAdapter_1;
DisplayMetrics lDisplayMetrics_1;
CharSequence lCharSequence_1, lCharSequence_2;
String lString_1;
View lView_1;
int lint_1, lint_2, lint_3, lint_4;
float lfloat_1, lfloat_2;
boolean lboolean_1;
//
// Results
//
float lResult_float;
int lResult_int;
boolean lResult_boolean;
CharSequence lResult_CharSequence;
Display lResult_Display;
AlertDialog.Builder lResult_AlertDialog_Builder;
AlertDialog lResult_AlertDialog;
switch (Buffer)
{
case amkUI_TDisplayMetrics_Create_0:
DebugOut("amkUI_TDisplayMetrics_Create_0");
ViewElements.add(new DisplayMetrics());
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// field float density
case amkUI_TDisplayMetrics_density_1:
DebugOut("amkUI_TDisplayMetrics_density_1");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_DisplayMetrics = (DisplayMetrics) ViewElements.get(lInt);
// params
//
lResult_float = param_self_DisplayMetrics.density;
MyAndroidPipesComm.SendFloatResult(lResult_float);
break;
// field int densityDpi
case amkUI_TDisplayMetrics_densityDpi_2:
DebugOut("amkUI_TDisplayMetrics_densityDpi_2");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_DisplayMetrics = (DisplayMetrics) ViewElements.get(lInt);
// params
//
lResult_int = param_self_DisplayMetrics.densityDpi;
MyAndroidPipesComm.SendIntResult(lResult_int);
break;
// field int heightPixels
case amkUI_TDisplayMetrics_heightPixels_3:
DebugOut("amkUI_TDisplayMetrics_heightPixels_3");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_DisplayMetrics = (DisplayMetrics) ViewElements.get(lInt);
// params
//
lResult_int = param_self_DisplayMetrics.heightPixels;
MyAndroidPipesComm.SendIntResult(lResult_int);
break;
// field float scaledDensity
case amkUI_TDisplayMetrics_scaledDensity_4:
DebugOut("amkUI_TDisplayMetrics_scaledDensity_4");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_DisplayMetrics = (DisplayMetrics) ViewElements.get(lInt);
// params
//
lResult_float = param_self_DisplayMetrics.scaledDensity;
MyAndroidPipesComm.SendFloatResult(lResult_float);
break;
// field int widthPixels
case amkUI_TDisplayMetrics_widthPixels_5:
DebugOut("amkUI_TDisplayMetrics_widthPixels_5");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_DisplayMetrics = (DisplayMetrics) ViewElements.get(lInt);
// params
//
lResult_int = param_self_DisplayMetrics.widthPixels;
MyAndroidPipesComm.SendIntResult(lResult_int);
break;
// field float xdpi
case amkUI_TDisplayMetrics_xdpi_6:
DebugOut("amkUI_TDisplayMetrics_xdpi_6");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_DisplayMetrics = (DisplayMetrics) ViewElements.get(lInt);
// params
//
lResult_float = param_self_DisplayMetrics.xdpi;
MyAndroidPipesComm.SendFloatResult(lResult_float);
break;
// field float ydpi
case amkUI_TDisplayMetrics_ydpi_7:
DebugOut("amkUI_TDisplayMetrics_ydpi_7");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_DisplayMetrics = (DisplayMetrics) ViewElements.get(lInt);
// params
//
lResult_float = param_self_DisplayMetrics.ydpi;
MyAndroidPipesComm.SendFloatResult(lResult_float);
break;
// method void setTitle(CharSequence title)
case amkUI_TActivity_setTitle_0:
DebugOut("amkUI_TActivity_setTitle_0");
// params
lInt = MyAndroidPipesComm.GetInt();
lCharSequence_1 = (CharSequence) MyJavaLang.LangElements.get(lInt);
//
activity.setTitle(lCharSequence_1);
MyAndroidPipesComm.SendResult();
break;
// method CharSequence getTitle()
case amkUI_TActivity_getTitle_1:
DebugOut("amkUI_TActivity_getTitle_1");
// params
//
lResult_CharSequence = activity.getTitle();
MyAndroidPipesComm.SendStringResult(lResult_CharSequence);
break;
// method void getMetrics(DisplayMetrics outMetrics)
case amkUI_TDisplay_getMetrics_0:
DebugOut("amkUI_TDisplay_getMetrics_0");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_Display = (Display) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lDisplayMetrics_1 = (DisplayMetrics) ViewElements.get(lInt);
//
param_self_Display.getMetrics(lDisplayMetrics_1);
MyAndroidPipesComm.SendResult();
break;
// method Display getDefaultDisplay()
case amkUI_TWindowManager_getDefaultDisplay_0:
DebugOut("amkUI_TWindowManager_getDefaultDisplay_0");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_WindowManager = (WindowManager) ViewElements.get(lInt);
// params
//
lResult_Display = param_self_WindowManager.getDefaultDisplay();
ViewElements.add(lResult_Display);
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method void show()
case amkUI_TDialog_show_0:
DebugOut("amkUI_TDialog_show_0");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_Dialog = (Dialog) ViewElements.get(lInt);
// params
//
param_self_Dialog.show();
MyAndroidPipesComm.SendResult();
break;
// callbacksetter void setButton(int whichButton, CharSequence text, $DialogInterface.OnClickListener listener)
case amkUI_TAlertDialog_setButton_0:
DebugOut("amkUI_TAlertDialog_setButton_0");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog = (AlertDialog) ViewElements.get(lInt);
// params
lPascalPointer = MyAndroidPipesComm.GetInt();
ViewElementsTags.set(lInt, new Integer(lPascalPointer));
lInt = MyAndroidPipesComm.GetInt();
lint_1 = lInt;
lInt = MyAndroidPipesComm.GetInt();
lCharSequence_2 = (CharSequence) MyJavaLang.LangElements.get(lInt);
// Run the code
param_self_AlertDialog.setButton(lint_1, lCharSequence_2, new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
// Perform action
DebugOut("START DialogInterface.OnClickListener");
MyAndroidPipesComm.SendMessage(AndroidPipesComm.amkUICommand, amkUI_TAlertDialog_Button_Start_1);
Integer lTag = (Integer) ViewElementsTags.get(ViewElements.indexOf(dialog));
MyAndroidPipesComm.SendInt(lTag.intValue());
MyAndroidPipesComm.WaitForPascalMessage(AndroidPipesComm.amkUICommand, amkUI_TAlertDialog_Button_Finished_2);
DebugOut("END DialogInterface.OnClickListener");
}
}
);
MyAndroidPipesComm.SendResult();
break;
// method void setMessage(CharSequence message)
case amkUI_TAlertDialog_setMessage_3:
DebugOut("amkUI_TAlertDialog_setMessage_3");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog = (AlertDialog) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lCharSequence_1 = (CharSequence) MyJavaLang.LangElements.get(lInt);
//
param_self_AlertDialog.setMessage(lCharSequence_1);
MyAndroidPipesComm.SendResult();
break;
// method void setTitle(CharSequence title)
case amkUI_TAlertDialog_setTitle_4:
DebugOut("amkUI_TAlertDialog_setTitle_4");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog = (AlertDialog) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lCharSequence_1 = (CharSequence) MyJavaLang.LangElements.get(lInt);
//
param_self_AlertDialog.setTitle(lCharSequence_1);
MyAndroidPipesComm.SendResult();
break;
// method void setView(View view)
case amkUI_TAlertDialog_setView_5:
DebugOut("amkUI_TAlertDialog_setView_5");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog = (AlertDialog) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lView_1 = (View) ViewElements.get(lInt);
//
param_self_AlertDialog.setView(lView_1);
MyAndroidPipesComm.SendResult();
break;
case amkUI_TAlertDialog_Builder_Create_0:
DebugOut("amkUI_TAlertDialog_Builder_Create_0");
ViewElements.add(new AlertDialog.Builder(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method AlertDialog create ()
case amkUI_TAlertDialog_Builder_create_1:
DebugOut("amkUI_TAlertDialog_Builder_create_1");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog_Builder = (AlertDialog.Builder) ViewElements.get(lInt);
// params
//
lResult_AlertDialog = param_self_AlertDialog_Builder.create();
ViewElements.add(lResult_AlertDialog);
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method AlertDialog.Builder setMessage (CharSequence message)
case amkUI_TAlertDialog_Builder_setMessage_2:
DebugOut("amkUI_TAlertDialog_Builder_setMessage_2");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog_Builder = (AlertDialog.Builder) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lCharSequence_1 = (CharSequence) MyJavaLang.LangElements.get(lInt);
//
lResult_AlertDialog_Builder = param_self_AlertDialog_Builder.setMessage(lCharSequence_1);
ViewElements.add(lResult_AlertDialog_Builder);
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method AlertDialog.Builder setTitle (CharSequence title)
case amkUI_TAlertDialog_Builder_setTitle_3:
DebugOut("amkUI_TAlertDialog_Builder_setTitle_3");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog_Builder = (AlertDialog.Builder) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lCharSequence_1 = (CharSequence) MyJavaLang.LangElements.get(lInt);
//
lResult_AlertDialog_Builder = param_self_AlertDialog_Builder.setTitle(lCharSequence_1);
ViewElements.add(lResult_AlertDialog_Builder);
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method AlertDialog.Builder setView (View view)
case amkUI_TAlertDialog_Builder_setView_4:
DebugOut("amkUI_TAlertDialog_Builder_setView_4");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog_Builder = (AlertDialog.Builder) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lView_1 = (View) ViewElements.get(lInt);
//
lResult_AlertDialog_Builder = param_self_AlertDialog_Builder.setView(lView_1);
ViewElements.add(lResult_AlertDialog_Builder);
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method AlertDialog show ()
case amkUI_TAlertDialog_Builder_show_5:
DebugOut("amkUI_TAlertDialog_Builder_show_5");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AlertDialog_Builder = (AlertDialog.Builder) ViewElements.get(lInt);
// params
//
lResult_AlertDialog = param_self_AlertDialog_Builder.show();
ViewElements.add(lResult_AlertDialog);
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
case amkUI_TViewGroup_LayoutParams_Create_0:
DebugOut("amkUI_TViewGroup_LayoutParams_Create_0");
lint_1 = MyAndroidPipesComm.GetInt();
lint_2 = MyAndroidPipesComm.GetInt();
ViewElements.add(new ViewGroup.LayoutParams(lint_1, lint_2));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method void setLayoutParams(ViewGroup.LayoutParams params);
case amkUI_TView_setLayoutParams_0:
DebugOut("amkUI_TView_setLayoutParams_0");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_View = (View) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lViewGroup_LayoutParams_1 = (ViewGroup.LayoutParams) ViewElements.get(lInt);
//
param_self_View.setLayoutParams(lViewGroup_LayoutParams_1);
MyAndroidPipesComm.SendResult();
break;
// callbacksetter void setOnClickListener($View.OnClickListener l)
case amkUI_TView_setOnClickListener_1:
DebugOut("amkUI_TView_setOnClickListener_1");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_View = (View) ViewElements.get(lInt);
// params
lPascalPointer = MyAndroidPipesComm.GetInt();
ViewElementsTags.set(lInt, new Integer(lPascalPointer));
// Run the code
param_self_View.setOnClickListener( new View.OnClickListener()
{
public void onClick(View v)
{
// Perform action
DebugOut("START View.OnClickListener");
MyAndroidPipesComm.SendMessage(AndroidPipesComm.amkUICommand, amkUI_TView_OnClickListener_Start_2);
Integer lTag = (Integer) ViewElementsTags.get(ViewElements.indexOf(v));
MyAndroidPipesComm.SendInt(lTag.intValue());
MyAndroidPipesComm.WaitForPascalMessage(AndroidPipesComm.amkUICommand, amkUI_TView_OnClickListener_Finished_3);
DebugOut("END View.OnClickListener");
}
}
);
MyAndroidPipesComm.SendResult();
break;
// method void setVisibility(int visibility);
case amkUI_TView_setVisibility_4:
DebugOut("amkUI_TView_setVisibility_4");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_View = (View) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lint_1 = lInt;
//
param_self_View.setVisibility(lint_1);
MyAndroidPipesComm.SendResult();
break;
// method void addView(View child, int aindex, ViewGroup.LayoutParams params); overload;
case amkUI_TViewGroup_addView_0:
DebugOut("amkUI_TViewGroup_addView_0");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_ViewGroup = (ViewGroup) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lView_1 = (View) ViewElements.get(lInt);
lInt = MyAndroidPipesComm.GetInt();
lint_2 = lInt;
lInt = MyAndroidPipesComm.GetInt();
lViewGroup_LayoutParams_3 = (ViewGroup.LayoutParams) ViewElements.get(lInt);
//
param_self_ViewGroup.addView(lView_1, lint_2, lViewGroup_LayoutParams_3);
MyAndroidPipesComm.SendResult();
break;
// method void addView(View child, ViewGroup.LayoutParams params); overload;
case amkUI_TViewGroup_addView_1:
DebugOut("amkUI_TViewGroup_addView_1");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_ViewGroup = (ViewGroup) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lView_1 = (View) ViewElements.get(lInt);
lInt = MyAndroidPipesComm.GetInt();
lViewGroup_LayoutParams_2 = (ViewGroup.LayoutParams) ViewElements.get(lInt);
//
param_self_ViewGroup.addView(lView_1, lViewGroup_LayoutParams_2);
MyAndroidPipesComm.SendResult();
break;
// method void addView(View child, int aindex); overload;
case amkUI_TViewGroup_addView_2:
DebugOut("amkUI_TViewGroup_addView_2");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_ViewGroup = (ViewGroup) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lView_1 = (View) ViewElements.get(lInt);
lInt = MyAndroidPipesComm.GetInt();
lint_2 = lInt;
//
param_self_ViewGroup.addView(lView_1, lint_2);
MyAndroidPipesComm.SendResult();
break;
// method void addView(View child); overload;
case amkUI_TViewGroup_addView_3:
DebugOut("amkUI_TViewGroup_addView_3");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_ViewGroup = (ViewGroup) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lView_1 = (View) ViewElements.get(lInt);
//
param_self_ViewGroup.addView(lView_1);
MyAndroidPipesComm.SendResult();
break;
// method void addView(View child, int width, int height); overload;
case amkUI_TViewGroup_addView_4:
DebugOut("amkUI_TViewGroup_addView_4");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_ViewGroup = (ViewGroup) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lView_1 = (View) ViewElements.get(lInt);
lInt = MyAndroidPipesComm.GetInt();
lint_2 = lInt;
lInt = MyAndroidPipesComm.GetInt();
lint_3 = lInt;
//
param_self_ViewGroup.addView(lView_1, lint_2, lint_3);
MyAndroidPipesComm.SendResult();
break;
case amkUI_TLinearLayout_Create_0:
DebugOut("amkUI_TLinearLayout_Create_0");
ViewElements.add(new LinearLayout(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method void setOrientation(int orientation);
case amkUI_TLinearLayout_setOrientation_1:
DebugOut("amkUI_TLinearLayout_setOrientation_1");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_LinearLayout = (LinearLayout) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lint_1 = lInt;
//
param_self_LinearLayout.setOrientation(lint_1);
MyAndroidPipesComm.SendResult();
break;
case amkUI_TAbsoluteLayout_Create_0:
DebugOut("amkUI_TAbsoluteLayout_Create_0");
ViewElements.add(new AbsoluteLayout(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
case amkUI_TAbsoluteLayout_LayoutParams_Create_0:
DebugOut("amkUI_TAbsoluteLayout_LayoutParams_Create_0");
lint_1 = MyAndroidPipesComm.GetInt();
lint_2 = MyAndroidPipesComm.GetInt();
lint_3 = MyAndroidPipesComm.GetInt();
lint_4 = MyAndroidPipesComm.GetInt();
ViewElements.add(new AbsoluteLayout.LayoutParams(lint_1, lint_2, lint_3, lint_4));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
case amkUI_TTextView_Create_0:
DebugOut("amkUI_TTextView_Create_0");
ViewElements.add(new TextView(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method CharSequence getText()
case amkUI_TTextView_getText_1:
DebugOut("amkUI_TTextView_getText_1");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_TextView = (TextView) ViewElements.get(lInt);
// params
//
lResult_CharSequence = param_self_TextView.getText();
MyAndroidPipesComm.SendStringResult(lResult_CharSequence);
break;
// method void setText(CharSequence AText);
case amkUI_TTextView_setText_2:
DebugOut("amkUI_TTextView_setText_2");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_TextView = (TextView) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lCharSequence_1 = (CharSequence) MyJavaLang.LangElements.get(lInt);
//
param_self_TextView.setText(lCharSequence_1);
MyAndroidPipesComm.SendResult();
break;
// method void setTextSize(int unit_; float size);
case amkUI_TTextView_setTextSize_3:
DebugOut("amkUI_TTextView_setTextSize_3");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_TextView = (TextView) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lint_1 = lInt;
lFloat = MyAndroidPipesComm.GetFloat();
lfloat_2 = lFloat;
//
param_self_TextView.setTextSize(lint_1, lfloat_2);
MyAndroidPipesComm.SendResult();
break;
case amkUI_TEditText_Create_0:
DebugOut("amkUI_TEditText_Create_0");
ViewElements.add(new EditText(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
case amkUI_TButton_Create_0:
DebugOut("amkUI_TButton_Create_0");
ViewElements.add(new Button(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
case amkUI_TTimePicker_Create_0:
DebugOut("amkUI_TTimePicker_Create_0");
ViewElements.add(new TimePicker(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method int getCurrentHour();
case amkUI_TTimePicker_getCurrentHour_1:
DebugOut("amkUI_TTimePicker_getCurrentHour_1");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_TimePicker = (TimePicker) ViewElements.get(lInt);
// params
//
lResult_int = param_self_TimePicker.getCurrentHour();
MyAndroidPipesComm.SendIntResult(lResult_int);
break;
// method void setCurrentHour(int currentHour);
case amkUI_TTimePicker_setCurrentHour_2:
DebugOut("amkUI_TTimePicker_setCurrentHour_2");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_TimePicker = (TimePicker) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lint_1 = lInt;
//
param_self_TimePicker.setCurrentHour(lint_1);
MyAndroidPipesComm.SendResult();
break;
// method int getCurrentMinute;
case amkUI_TTimePicker_getCurrentMinute_3:
DebugOut("amkUI_TTimePicker_getCurrentMinute_3");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_TimePicker = (TimePicker) ViewElements.get(lInt);
// params
//
lResult_int = param_self_TimePicker.getCurrentMinute();
MyAndroidPipesComm.SendIntResult(lResult_int);
break;
// method void setCurrentMinute(int currentMinute);
case amkUI_TTimePicker_setCurrentMinute_4:
DebugOut("amkUI_TTimePicker_setCurrentMinute_4");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_TimePicker = (TimePicker) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lint_1 = lInt;
//
param_self_TimePicker.setCurrentMinute(lint_1);
MyAndroidPipesComm.SendResult();
break;
// method boolean is24HourView;
case amkUI_TTimePicker_is24HourView_5:
DebugOut("amkUI_TTimePicker_is24HourView_5");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_TimePicker = (TimePicker) ViewElements.get(lInt);
// params
//
lResult_boolean = param_self_TimePicker.is24HourView();
MyAndroidPipesComm.SendBoolResult(lResult_boolean);
break;
// method void setIs24HourView(boolean AIs24HourView);
case amkUI_TTimePicker_setIs24HourView_6:
DebugOut("amkUI_TTimePicker_setIs24HourView_6");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_TimePicker = (TimePicker) ViewElements.get(lInt);
// params
lBool = MyAndroidPipesComm.GetBool();
lboolean_1 = lBool;
//
param_self_TimePicker.setIs24HourView(lboolean_1);
MyAndroidPipesComm.SendResult();
break;
case amkUI_TScrollView_Create_0:
DebugOut("amkUI_TScrollView_Create_0");
ViewElements.add(new ScrollView(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method boolean isChecked()
case amkUI_TCompoundButton_isChecked_0:
DebugOut("amkUI_TCompoundButton_isChecked_0");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_CompoundButton = (CompoundButton) ViewElements.get(lInt);
// params
//
lResult_boolean = param_self_CompoundButton.isChecked();
MyAndroidPipesComm.SendBoolResult(lResult_boolean);
break;
// method boolean performClick()
case amkUI_TCompoundButton_performClick_1:
DebugOut("amkUI_TCompoundButton_performClick_1");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_CompoundButton = (CompoundButton) ViewElements.get(lInt);
// params
//
lResult_boolean = param_self_CompoundButton.performClick();
MyAndroidPipesComm.SendBoolResult(lResult_boolean);
break;
// method void setChecked(boolean checked)
case amkUI_TCompoundButton_setChecked_2:
DebugOut("amkUI_TCompoundButton_setChecked_2");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_CompoundButton = (CompoundButton) ViewElements.get(lInt);
// params
lBool = MyAndroidPipesComm.GetBool();
lboolean_1 = lBool;
//
param_self_CompoundButton.setChecked(lboolean_1);
MyAndroidPipesComm.SendResult();
break;
// method void toggle()
case amkUI_TCompoundButton_toggle_3:
DebugOut("amkUI_TCompoundButton_toggle_3");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_CompoundButton = (CompoundButton) ViewElements.get(lInt);
// params
//
param_self_CompoundButton.toggle();
MyAndroidPipesComm.SendResult();
break;
case amkUI_TCheckBox_Create_0:
DebugOut("amkUI_TCheckBox_Create_0");
ViewElements.add(new CheckBox(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method int getSelectedItemPosition()
case amkUI_TAdapterView_getSelectedItemPosition_0:
DebugOut("amkUI_TAdapterView_getSelectedItemPosition_0");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AdapterView = (AdapterView) ViewElements.get(lInt);
// params
//
lResult_int = param_self_AdapterView.getSelectedItemPosition();
MyAndroidPipesComm.SendIntResult(lResult_int);
break;
// method int getCount()
case amkUI_TAbsSpinner_getCount_0:
DebugOut("amkUI_TAbsSpinner_getCount_0");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AbsSpinner = (AbsSpinner) ViewElements.get(lInt);
// params
//
lResult_int = param_self_AbsSpinner.getCount();
MyAndroidPipesComm.SendIntResult(lResult_int);
break;
// method void setAdapter(SpinnerAdapter adapter)
case amkUI_TAbsSpinner_setAdapter_1:
DebugOut("amkUI_TAbsSpinner_setAdapter_1");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AbsSpinner = (AbsSpinner) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lSpinnerAdapter_1 = (SpinnerAdapter) ViewElements.get(lInt);
//
param_self_AbsSpinner.setAdapter(lSpinnerAdapter_1);
MyAndroidPipesComm.SendResult();
break;
// method void setSelection(int position); overload;
case amkUI_TAbsSpinner_setSelection_2:
DebugOut("amkUI_TAbsSpinner_setSelection_2");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_AbsSpinner = (AbsSpinner) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lint_1 = lInt;
//
param_self_AbsSpinner.setSelection(lint_1);
MyAndroidPipesComm.SendResult();
break;
case amkUI_TSpinner_Create_0:
DebugOut("amkUI_TSpinner_Create_0");
ViewElements.add(new Spinner(activity));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
case amkUI_TArrayAdapter_String__Create_0:
DebugOut("amkUI_TArrayAdapter_String__Create_0");
lint_1 = MyAndroidPipesComm.GetInt();
ViewElements.add(new ArrayAdapter<String>(activity, lint_1));
ViewElementsTags.add(null);
MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1);
break;
// method void add(String aobject)
case amkUI_TArrayAdapter_String__add_1:
DebugOut("amkUI_TArrayAdapter_String__add_1");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_ArrayAdapter_String_ = (ArrayAdapter<String>) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lString_1 = (String) MyJavaLang.LangElements.get(lInt);
//
param_self_ArrayAdapter_String_.add(lString_1);
MyAndroidPipesComm.SendResult();
break;
// method void clear()
case amkUI_TArrayAdapter_String__clear_2:
DebugOut("amkUI_TArrayAdapter_String__clear_2");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_ArrayAdapter_String_ = (ArrayAdapter<String>) ViewElements.get(lInt);
// params
//
param_self_ArrayAdapter_String_.clear();
MyAndroidPipesComm.SendResult();
break;
// method void insert(String aobject, int aindex)
case amkUI_TArrayAdapter_String__insert_3:
DebugOut("amkUI_TArrayAdapter_String__insert_3");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_ArrayAdapter_String_ = (ArrayAdapter<String>) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lString_1 = (String) MyJavaLang.LangElements.get(lInt);
lInt = MyAndroidPipesComm.GetInt();
lint_2 = lInt;
//
param_self_ArrayAdapter_String_.insert(lString_1, lint_2);
MyAndroidPipesComm.SendResult();
break;
// method void remove(String aobject)
case amkUI_TArrayAdapter_String__remove_4:
DebugOut("amkUI_TArrayAdapter_String__remove_4");
// Self
lInt = MyAndroidPipesComm.GetInt();
param_self_ArrayAdapter_String_ = (ArrayAdapter<String>) ViewElements.get(lInt);
// params
lInt = MyAndroidPipesComm.GetInt();
lString_1 = (String) MyJavaLang.LangElements.get(lInt);
//
param_self_ArrayAdapter_String_.remove(lString_1);
MyAndroidPipesComm.SendResult();
break;
default:
return false;
}
return true;
}
}

View File

@ -1,77 +0,0 @@
package com.pascal.androidlcl;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.*;
import android.util.*;
import android.content.*;
import android.view.*;
import android.widget.*;
import java.util.*;
public class AndroidApp
{
// info from other classes
Activity activity;
AndroidPipesComm MyAndroidPipesComm;
JavaLang MyJavaLang;
AndroidAll MyAndroidAll;
// lists of variables
ArrayList ViewElements;
//
// android.app.*
static final int amkUI_Activity_setContentView = 0x0000;
static final int amkUI_Activity_getWindowManager = 0x0080;
public AndroidApp(AndroidPipesComm AAndroidPipesComm, Activity AActivity, JavaLang AJavaLang, AndroidAll AAndroidAll)
{
activity = AActivity;
MyAndroidPipesComm = AAndroidPipesComm;
MyJavaLang = AJavaLang;
MyAndroidAll = AAndroidAll;
ViewElements = AAndroidAll.ViewElements;
}
public void DebugOut(String Str)
{
MyAndroidPipesComm.DebugOut(Str);
}
public boolean ProcessCommand(int Buffer)
{
//DebugOut("AndroidUI.ProcessCommand");
//DebugOut("AndroidUI.ProcessCommand Command=" + java.lang.Integer.toHexString(Buffer));
int lInt, lIndex, lPascalPointer;
Integer lTag;
TextView lTextView;
CharSequence lChars;
//
WindowManager param_self_WindowManager;
//
switch (Buffer)
{
// android.app.Activity
// public void setContentView (View view)
case amkUI_Activity_setContentView:
DebugOut("amkUI_Activity_setContentView");
lInt = MyAndroidPipesComm.GetInt();
View lView = (View) ViewElements.get(lInt);
activity.setContentView(lView);
MyAndroidPipesComm.SendResult();
break;
/* case amkUI_Activity_getWindowManager:
DebugOut("amkUI_Activity_getWindowManager");
WindowManagerElements.add(activity.getWindowManager());
MyAndroidPipesComm.SendIntResult(WindowManagerElements.size() - 1);
break;*/
default:
return false;
}
return true;
}
}

View File

@ -1,273 +0,0 @@
package com.pascal.androidlcl;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.*;
import android.util.Log;
import android.content.*;
import android.view.*;
import android.widget.*;
import java.io.*;
public class AndroidLCLTest extends Activity
{
AndroidPipesComm MyAndroidPipesComm;
String ExecutablePath;
// Debug
boolean DEBUG_PASCAL4ANDROID = true;
// Android Message subtype
static int ams_ActivityCallback_onCreateStarted = 0x0001;
static int ams_ActivityCallback_onStartStarted = 0x0002;
static int ams_ActivityCallback_onRestartStarted = 0x0003;
static int ams_ActivityCallback_onResumeStarted = 0x0004;
static int ams_ActivityCallback_onPauseStarted = 0x0005;
static int ams_ActivityCallback_onStopStarted = 0x0006;
static int ams_ActivityCallback_onDestroyStarted = 0x0007;
static int ams_ActivityCallback_onCreateOptionsMenuStarted = 0x0008;
static int ams_ActivityCallback_onKeyUpStarted = 0x0010;
static int ams_ActivityCallback_onCreateFinished = 0x1001;
static int ams_ActivityCallback_onStartFinished = 0x1002;
static int ams_ActivityCallback_onRestartFinished = 0x1003;
static int ams_ActivityCallback_onResumeFinished = 0x1004;
static int ams_ActivityCallback_onPauseFinished = 0x1005;
static int ams_ActivityCallback_onStopFinished = 0x1006;
static int ams_ActivityCallback_onDestroyFinished = 0x1007;
static int ams_ActivityCallback_onCreateOptionsMenuFinished = 0x1008;
static int ams_ActivityCallback_onKeyUpFinished = 0x1010;
Button.OnClickListener buttonClickCallback = new Button.OnClickListener()
{
public void onClick(View v)
{
MyAndroidPipesComm.DebugOut("Click!");
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
MyAndroidPipesComm = new AndroidPipesComm(this);
// Prepare the application
ExecutablePath = getApplicationContext().getFilesDir() + "/androidlcltest";
String LibraryPathPath = "/data/data/com.pascal.androidlcl/lib/libandroidlcltest.so";
MyAndroidPipesComm.DebugOut("Executing application " + LibraryPathPath + " copied to " + ExecutablePath);
String Str = FileCopy(LibraryPathPath, ExecutablePath);
String Str2 = RunProgram("/system/bin/chmod", "755", ExecutablePath);
// Run the application
RunPascalProgram(ExecutablePath);
// Waits until the Pascal side finishes its initialization
MyAndroidPipesComm.DebugOut("WaitForPascalMessage(amkActivityCallback, ams_ActivityCallback_onCreateFinished)");
MyAndroidPipesComm.WaitForPascalMessage(MyAndroidPipesComm.amkActivityCallback, ams_ActivityCallback_onCreateFinished);
MyAndroidPipesComm.DebugOut("END onCreate");
}
/** */
@Override
protected void onStart()
{
MyAndroidPipesComm.DebugOut("START onStart");
super.onStart();
MyAndroidPipesComm.SendMessage(MyAndroidPipesComm.amkActivityCallback, ams_ActivityCallback_onStartStarted);
MyAndroidPipesComm.WaitForPascalMessage(MyAndroidPipesComm.amkActivityCallback, ams_ActivityCallback_onStartFinished);
MyAndroidPipesComm.DebugOut("END onStart");
}
/** */
@Override
protected void onRestart()
{
MyAndroidPipesComm.DebugOut("START onRestart");
super.onRestart();
MyAndroidPipesComm.SendMessage(MyAndroidPipesComm.amkActivityCallback, ams_ActivityCallback_onRestartStarted);
MyAndroidPipesComm.WaitForPascalMessage(MyAndroidPipesComm.amkActivityCallback, ams_ActivityCallback_onRestartFinished);
MyAndroidPipesComm.DebugOut("END onRestart");
}
/** */
@Override
protected void onResume()
{
MyAndroidPipesComm.DebugOut("START onResume");
super.onResume();
MyAndroidPipesComm.SendMessage(MyAndroidPipesComm.amkActivityCallback, ams_ActivityCallback_onResumeStarted);
MyAndroidPipesComm.WaitForPascalMessage(MyAndroidPipesComm.amkActivityCallback, ams_ActivityCallback_onResumeFinished);
MyAndroidPipesComm.DebugOut("END onResume");
}
/** */
@Override
protected void onPause()
{
MyAndroidPipesComm.DebugOut("START onPause");
super.onPause();
MyAndroidPipesComm.SendMessage(MyAndroidPipesComm.amkActivityCallback, ams_ActivityCallback_onPauseStarted);
MyAndroidPipesComm.WaitForPascalMessage(MyAndroidPipesComm.amkActivityCallback, ams_ActivityCallback_onPauseFinished);
MyAndroidPipesComm.DebugOut("END onPause");
}
/** */
@Override
protected void onStop()
{
MyAndroidPipesComm.DebugOut("START onStop");
super.onStop();
MyAndroidPipesComm.SendMessage(MyAndroidPipesComm.amkActivityCallback, ams_ActivityCallback_onStopStarted);
MyAndroidPipesComm.WaitForPascalMessage(MyAndroidPipesComm.amkActivityCallback, ams_ActivityCallback_onStopFinished);
MyAndroidPipesComm.DebugOut("END onStop");
}
/** */
@Override
protected void onDestroy()
{
MyAndroidPipesComm.DebugOut("START onDestroy");
super.onDestroy();
MyAndroidPipesComm.SendMessage(MyAndroidPipesComm.amkActivityCallback, ams_ActivityCallback_onStartStarted);
MyAndroidPipesComm.WaitForPascalMessage(MyAndroidPipesComm.amkActivityCallback, ams_ActivityCallback_onStartFinished);
MyAndroidPipesComm.DebugOut("END onDestroy");
}
// public boolean onCreateOptionsMenu (Menu menu)
/*@Override
public boolean onCreateOptionsMenu(Menu menu)
{
if (DEBUG_PASCAL4ANDROID == true) MyAndroidPipesComm.DebugOut("START onCreateOptionsMenu");
MyAndroidPipesComm.SendMessage(MyAndroidPipesComm.amkActivityCallback, ams_ActivityCallback_onCreateOptionsMenuStarted);
MyAndroidPipesComm.MyAndroidMenu.MenuElements.add(menu);
int lMenuIndex = MyAndroidPipesComm.MyAndroidMenu.MenuElements.size() - 1;
MyAndroidPipesComm.SendInt(lMenuIndex);
MyAndroidPipesComm.WaitForPascalMessage(MyAndroidPipesComm.amkActivityCallback, ams_ActivityCallback_onCreateOptionsMenuFinished);
int lInt = MyAndroidPipesComm.GetInt();
// ToDo: If we start supporting object deletion then we need to use indexOf to get the new index
MyAndroidPipesComm.MyAndroidMenu.MenuElements.remove(lMenuIndex);
if (DEBUG_PASCAL4ANDROID == true) MyAndroidPipesComm.DebugOut("END onCreateOptionsMenu");
return (lInt != 0);
}*/
// generic Key Listener
@Override
public boolean onKeyUp(int keyCode, KeyEvent event)
{
if (DEBUG_PASCAL4ANDROID == true) MyAndroidPipesComm.DebugOut("START onKeyUp");
MyAndroidPipesComm.SendMessage(MyAndroidPipesComm.amkActivityCallback, ams_ActivityCallback_onKeyUpStarted);
MyAndroidPipesComm.SendInt(keyCode);
// ToDo: Also send the KeyEvent
//MyAndroidPipesComm.MyAndroidMenu.MenuElements.add(menu);
//int lMenuIndex = MyAndroidPipesComm.MyAndroidMenu.MenuElements.size() - 1;
MyAndroidPipesComm.WaitForPascalMessage(MyAndroidPipesComm.amkActivityCallback, ams_ActivityCallback_onKeyUpFinished);
int lInt = MyAndroidPipesComm.GetInt();
if (DEBUG_PASCAL4ANDROID == true) MyAndroidPipesComm.DebugOut("END onCreateOptionsMenu");
if (lInt != 0) return true;
return super.onKeyUp(keyCode, event);
}
//
private static String FileCopy(String srFile, String dtFile)
{
try
{
File f1 = new File(srFile);
File f2 = new File(dtFile);
InputStream in = new FileInputStream(f1);
//For Overwrite the file.
OutputStream out = new FileOutputStream(f2, true);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0){
out.write(buf, 0, len);
}
in.close();
out.close();
return "Success dest=" + dtFile;
}
catch(FileNotFoundException e)
{
return "Error=FileNotFoundException=" + e.getMessage();
}
catch(IOException e)
{
return "Error=IOException=" + e.getMessage();
}
}
/*
Simple method for running external applications.
It waits until the program finishes running.
it uses Runtime.getRuntime()
*/
public String RunProgram(String cmd, String param1, String param2)
{
String output = "";
try
{
if (param1 == null) param1 = "";
if (param2 == null) param2 = "";
// Runs the application
java.lang.Process process = Runtime.getRuntime().exec(cmd + " " + param1 + " " + param2);
// Now connects pipes to it
DataInputStream reader = new DataInputStream(process.getInputStream());
// Waits until it finishes
process.waitFor();
// And stores the result of the pipes in the result of the function
String line;
String separator = System.getProperty("line.separator");
while ((line = reader.readLine()) != null)
{
output += line + separator;
}
}
catch (IOException e)
{
output += "error=IOException=" + e.getMessage();
}
catch (InterruptedException e)
{
output += "error=InterruptedException=" + e.getMessage();
}
return output;
}
/*
This function will run a Pascal program and interact with it via pipes
Uses Runtime.getRuntime()
*/
public void RunPascalProgram(String cmd)
{
try
{
// Runs the application
MyAndroidPipesComm.PascalProcess = Runtime.getRuntime().exec(cmd);
// Now connects pipes to it
MyAndroidPipesComm.writer = new DataOutputStream(
MyAndroidPipesComm.PascalProcess.getOutputStream());
MyAndroidPipesComm.reader = new DataInputStream(
MyAndroidPipesComm.PascalProcess.getInputStream());
}
catch (IOException e)
{
MyAndroidPipesComm.DebugOut("error=IOException=" + e.getMessage());
}
}
}

View File

@ -1,353 +0,0 @@
package com.pascal.androidlcl;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.*;
import android.util.Log;
import android.content.*;
import android.view.*;
import android.widget.*;
import java.io.*;
public class AndroidPipesComm
{
// info from other classes
Activity activity;
// Data pool accessed by many methods
java.lang.Process PascalProcess;
DataOutputStream writer;
DataInputStream reader;
// Data pool to solve the lack of passing parameter by reference
byte lType = 0;
int lSubtype = 0;
// Android Message Kind
static byte amkStringResult = 14;
static byte amkFloatResult = 13;
static byte amkIntResult = 12;
static byte amkResult = 11;
static byte amkActivityCallback = 0;
static byte amkLog = 1;
static byte amkUICommand = 2;
static byte amkJavaLangCall = 3;
static byte amkTimer = 4;
// Add / remove modules here
public JavaLang MyJavaLang;
public AndroidAll MyAndroidAll;
public AndroidApp MyAndroidApp;
public AndroidPipesComm(Activity AActivity)
{
activity = AActivity;
MyJavaLang = new JavaLang(this);
MyAndroidAll = new AndroidAll(this, activity, MyJavaLang);
MyAndroidApp = new AndroidApp(this, activity, MyJavaLang, MyAndroidAll);
}
public void DebugOut(String Str)
{
Log.v("AndroidPipesComm:", Str);
}
public void ErrorOut(String Str)
{
Log.v("AndroidPipesComm:", Str);
}
public void TerminateApplication()
{
System.exit(0);
}
public void PrintPascalException(byte Buffer)
{
String PascalMessage = "" + (char) Buffer;
byte curChar;
try
{
while (true)
{
curChar = reader.readByte();
// Output line by line
if (curChar == 0x10)
{
ErrorOut(PascalMessage);
PascalMessage = "";
}
else
{
PascalMessage = PascalMessage + (char) curChar;
}
}
}
catch (IOException e)
{
ErrorOut("[PrintPascalException] Exception while obtaining the Pascal Exception, printing the rest of the buffer");
ErrorOut(PascalMessage);
}
}
// Waits for a particular Pascal message.
// In the mean time processes any other incoming messages
public void WaitForPascalMessage(byte AExpectedMessageType, int AExpectedMessageSubtype)
{
DebugOut("START WaitForPascalMessage AExpectedMessageType=" + AExpectedMessageType
+ " AExpectedMessageSubtype=" + java.lang.Integer.toHexString(AExpectedMessageSubtype));
while (true)
{
WaitAndProcessPascalMessage();
//DebugOut("MID_END WaitForPascalMessage lType=" + lType + " lSubtype=" + java.lang.Integer.toHexString(lSubtype));
if ((lType == AExpectedMessageType) && (lSubtype == AExpectedMessageSubtype)) return;
if ((lType == amkActivityCallback) && (AExpectedMessageType == amkActivityCallback)) return;
}
}
// Waits for and processes a Pascal message
public void WaitAndProcessPascalMessage()
{
try
{
//DebugOut("WaitAndProcessPascalMessage");
byte Buffer = reader.readByte(); // blocking read
lType = Buffer;
lSubtype = 0;
if (Buffer == amkActivityCallback)
{
DebugOut("amkActivityCallback");
// lSubtype = reader.readInt(); // blocking read
}
else if (Buffer == amkLog)
{
DebugOut("amkLog");
char[] lChars = GetString();
DebugOut(new String(lChars));
}
else if (Buffer == amkUICommand)
{
DebugOut("amkUICommand");
lSubtype = reader.readInt(); // blocking read
if (MyAndroidAll.ProcessCommand(lSubtype) == true) ;
else if (MyAndroidApp.ProcessCommand(lSubtype) == true) ;
else
{
ErrorOut("Unknown UI Command!!! This is normal in the end of a callback" + java.lang.Integer.toHexString(lSubtype));
};
}
else if (Buffer == amkJavaLangCall)
{
DebugOut("amkJavaLangCall");
lSubtype = reader.readInt(); // blocking read
MyJavaLang.ProcessCommand(lSubtype);
}
// else if (Buffer == amkTimer)
// {
// DebugOut("amkTimer");
// lSubtype = reader.readInt(); // blocking read
// MyAndroidTimer.ProcessCommand(lSubtype);
// }
else
{
ErrorOut("[WaitAndProcessPascalMessage] Unknown Pascal message!!! " + java.lang.Integer.toHexString(Buffer));
// If we get an Unknown Pascal message, it might be an error printed to the console, so lets print it and quit
PrintPascalException(Buffer);
TerminateApplication();
}
}
catch (EOFException e)
{
ErrorOut("[WaitAndProcessPascalMessage] EOFException=" + e.getMessage());
TerminateApplication();
}
catch (IOException e)
{
ErrorOut("[WaitAndProcessPascalMessage] IOException=" + e.getMessage());
}
}
// Receiving data
public byte GetByte()
{
try
{
return reader.readByte();
}
catch (IOException e)
{
ErrorOut("[GetByte] IOException=" + e.getMessage());
}
return -1;
}
public int GetInt()
{
try
{
return reader.readInt();
}
catch (IOException e)
{
ErrorOut("[GetInt] IOException=" + e.getMessage());
}
return -1;
}
public boolean GetBool()
{
try
{
int Tmp = reader.readInt();
if (Tmp == 0) return false;
else return true;
}
catch (IOException e)
{
ErrorOut("[GetBool] IOException=" + e.getMessage());
}
return false;
}
public float GetFloat()
{
try
{
return reader.readFloat();
}
catch (IOException e)
{
ErrorOut("[GetFloat] IOException=" + e.getMessage());
}
return -1;
}
public char[] GetString()
{
char[] lChars;
try
{
int lInt = reader.readInt(); // Length
lChars = new char[lInt];
for (int i = 0; i < lInt; i++)
{
lChars[i] = (char) reader.readByte();
}
return lChars;
}
catch (IOException e)
{
ErrorOut("[GetString] IOException=" + e.getMessage());
}
return new char[0];
}
// Sending results
public void SendResult()
{
try
{
writer.writeByte(amkResult);
}
catch (IOException e)
{
ErrorOut("[SendResult] IOException=" + e.getMessage());
}
}
public void SendIntResult(int Result)
{
try
{
writer.writeByte(amkIntResult);
writer.writeInt(Result);
}
catch (IOException e)
{
ErrorOut("[SendIntResult] IOException=" + e.getMessage());
}
}
public void SendFloatResult(float Result)
{
try
{
writer.writeByte(amkFloatResult);
writer.writeFloat(Result);
// writer.writeInt(Float.floatToIntBits(Result));
}
catch (IOException e)
{
ErrorOut("[SendFloatResult] IOException=" + e.getMessage());
}
}
public void SendStringResult(CharSequence Result)
{
try
{
writer.writeByte(amkStringResult);
int lInt = Result.length();
writer.writeInt(lInt); // Length
for (int i = 0; i < lInt; i++)
{
writer.writeByte(Result.charAt(i));
}
}
catch (IOException e)
{
ErrorOut("[SendStringResult] IOException=" + e.getMessage());
}
}
// Sending data
// Convenience routine, uses SendIntResult
public void SendBoolResult(boolean Result)
{
if (Result == false) SendIntResult(0);
else SendIntResult(-1);
}
public void SendInt(int AData)
{
try
{
writer.writeInt(AData);
}
catch (IOException e)
{
ErrorOut("[SendBoolResult] IOException=" + e.getMessage());
}
}
public void SendMessage(byte AMessageKind, int AMessageSubtype)
{
try
{
writer.writeByte(AMessageKind);
writer.writeInt(AMessageSubtype);
}
catch (IOException e)
{
ErrorOut("[SendMessage] IOException=" + e.getMessage());
TerminateApplication();
}
}
// String separator = System.getProperty("line.separator");
/* // Displays a dialog with the result of the operation
AlertDialog alertDialog;
alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Result of cp");
alertDialog.setMessage(Str + "||" + Str2 + "||" + Str3);
alertDialog.show();*/
// Waits until it finishes
// process.waitFor();
// Thread.currentThread().sleep(1000);
}

View File

@ -1,50 +0,0 @@
package com.pascal.androidlcl;
import java.lang.*;
import java.util.*;
public class JavaLang
{
// info from other classes
AndroidPipesComm MyAndroidPipesComm;
// lists of variables
ArrayList LangElements = new ArrayList();
//
static final int amkJavaLang_New_String = 0x0000;
public JavaLang(AndroidPipesComm AAndroidPipesComm)
{
MyAndroidPipesComm = AAndroidPipesComm;
}
public void DebugOut(String Str)
{
MyAndroidPipesComm.DebugOut(Str);
}
public void ProcessCommand(int Buffer)
{
// DebugOut("<before readByte>");
int lInt;
switch (Buffer)
{
// java.lang.String
// String(char[] data)
case amkJavaLang_New_String:
DebugOut("amkJavaLang_New_String");
lInt = MyAndroidPipesComm.GetInt(); // Length
char[] lChars = new char[lInt];
for (int i = 0; i < lInt; i++)
{
lChars[i] = (char) MyAndroidPipesComm.GetByte();
}
LangElements.add(new String(lChars));
MyAndroidPipesComm.SendIntResult(LangElements.size() - 1);
break;
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

View File

@ -1,190 +0,0 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<Version Value="9"/>
<General>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<UseXPManifest Value="True"/>
<Icon Value="0"/>
</General>
<i18n>
<EnableI18N LFM="False"/>
</i18n>
<VersionInfo>
<StringTable ProductVersion=""/>
</VersionInfo>
<MacroValues Count="1">
<Macro1 Name="LCLWidgetType" Value="android"/>
</MacroValues>
<BuildModes Count="4">
<Item1 Name="Android" Default="True"/>
<Item2 Name="Desktop">
<MacroValues Count="1">
<Macro1 Name="LCLWidgetType" Value="gtk2"/>
</MacroValues>
<CompilerOptions>
<Version Value="10"/>
<Target>
<Filename Value="androidlcltest"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
<Other>
<CompilerMessages>
<UseMsgFile Value="True"/>
</CompilerMessages>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
</Item2>
<Item3 Name="Android-Desktop">
<MacroValues Count="1">
<Macro1 Name="LCLWidgetType" Value="android"/>
</MacroValues>
<CompilerOptions>
<Version Value="10"/>
<Target>
<Filename Value="androidlcltest"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
<Other>
<CompilerMessages>
<UseMsgFile Value="True"/>
</CompilerMessages>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
</Item3>
<Item4 Name="Android-Debug">
<MacroValues Count="1">
<Macro1 Name="LCLWidgetType" Value="android"/>
</MacroValues>
<CompilerOptions>
<Version Value="10"/>
<Target>
<Filename Value="android/libs/armeabi/libandroidlcltest.so"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<CodeGeneration>
<TargetCPU Value="arm"/>
<TargetOS Value="linux"/>
</CodeGeneration>
<Linking>
<Debugging>
<GenerateDebugInfo Value="True"/>
<GenerateDwarf Value="True"/>
</Debugging>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
<Other>
<CompilerMessages>
<UseMsgFile Value="True"/>
</CompilerMessages>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
</Item4>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="/usr/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="1">
<Item1>
<PackageName Value="LCL"/>
</Item1>
</RequiredPackages>
<Units Count="2">
<Unit0>
<Filename Value="androidlcltest.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="androidlcltest"/>
</Unit0>
<Unit1>
<Filename Value="mainform.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="Form2"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="mainform"/>
</Unit1>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="10"/>
<Target>
<Filename Value="android/libs/armeabi/libandroidlcltest.so"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<CodeGeneration>
<TargetCPU Value="arm"/>
<TargetOS Value="linux"/>
</CodeGeneration>
<Linking>
<Debugging>
<UseLineInfoUnit Value="False"/>
<StripSymbols Value="True"/>
</Debugging>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
<Other>
<CompilerMessages>
<UseMsgFile Value="True"/>
</CompilerMessages>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@ -1,20 +0,0 @@
program androidlcltest;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, mainform
{ you can add units after this };
//{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm2, Form2);
Application.Run;
end.

View File

@ -1,74 +0,0 @@
object Form2: TForm2
Left = 181
Height = 276
Top = 137
Width = 320
Caption = 'Form2'
ClientHeight = 276
ClientWidth = 320
LCLVersion = '0.9.31'
object Button1: TButton
Left = 33
Height = 25
Top = 48
Width = 87
Caption = 'Button1'
OnClick = Button1Click
TabOrder = 0
end
object CheckBox1: TCheckBox
Left = 33
Height = 21
Top = 101
Width = 94
Caption = 'CheckBox1'
TabOrder = 1
end
object Edit1: TEdit
Left = 33
Height = 25
Top = 157
Width = 99
TabOrder = 2
Text = 'Edit1'
end
object StaticText1: TStaticText
Left = 147
Height = 17
Top = 49
Width = 65
Caption = 'StaticText1'
TabOrder = 3
end
object ComboBox1: TComboBox
Left = 136
Height = 27
Top = 101
Width = 112
ItemHeight = 0
Items.Strings = (
'Item1'
'Item2'
'Item3'
)
TabOrder = 4
Text = 'ComboBox1'
end
object Edit2: TEdit
Left = 147
Height = 25
Top = 157
Width = 80
TabOrder = 5
Text = 'Edit2'
end
object Button2: TButton
Left = 35
Height = 25
Top = 199
Width = 75
Caption = 'InputBox'
OnClick = Button2Click
TabOrder = 6
end
end

View File

@ -1,74 +0,0 @@
unit mainform;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, DbCtrls, ExtCtrls, InterfaceBase;
type
{ TForm2 }
TForm2 = class(TForm)
Button1: TButton;
Button2: TButton;
CheckBox1: TCheckBox;
ComboBox1: TComboBox;
Edit1: TEdit;
Edit2: TEdit;
StaticText1: TStaticText;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form2: TForm2;
implementation
{ TForm2 }
procedure TForm2.Button1Click(Sender: TObject);
var
lChecked, lEdit1Text: String;
lComboBox: String;
begin
if CheckBox1.Checked then lChecked := 'True'
else lChecked := 'False';
WidgetSet.DebugLogLn('3');
lEdit1Text := Edit1.Text;
WidgetSet.DebugLogLn('4');
lComboBox := IntToStr(ComboBox1.ItemIndex);
WidgetSet.DebugLogLn('5');
Edit2.Text :=
'Edit1.Text='+lEdit1Text+LineEnding+
'Caption='+Caption+LineEnding+
'Checked?='+lChecked+LineEnding+
'ComboBox='+lComboBox;
Caption := lEdit1Text;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
WidgetSet.DebugLogLn('TForm2.Button2Click');
InputBox('Caption', 'Prompt', 'Default');
WidgetSet.DebugLogLn('TForm2.Button2Click 2');
end;
initialization
{$I mainform.lrs}
end.