lazarus/examples/androidlcl/secondform.pas

163 lines
4.2 KiB
ObjectPascal

unit secondform;
{$mode objfpc}{$H+}
{$ifdef Linux}{$ifdef CPUARM}
{$define Android}
{$endif}{$endif}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
ComCtrls, ExtCtrls, LCLType, LCLProc, lazdeviceapis;
type
{ TForm2 }
TForm2 = class(TForm)
Button1: TButton;
btnStartAccel: TButton;
btnStopAccel: TButton;
btnGetPos: TButton;
btnSendSMS: TButton;
Button2: TButton;
Button3: TButton;
textDest: TEdit;
textBody: TEdit;
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
labelSensorData: TLabel;
procedure btnSendSMSClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure btnStartAccelClick(Sender: TObject);
procedure btnStopAccelClick(Sender: TObject);
procedure btnGetPosClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure textDestExit(Sender: TObject);
procedure textDestKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure textDestKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure textDestUTF8KeyPress(Sender: TObject; var UTF8Key: TUTF8Char);
private
{ private declarations }
public
{ public declarations }
procedure HandleAccelerometerChanged(Sender: TObject);
procedure HandlePositionRetrieved(Sender: TObject);
procedure HandleMessagingStatus(AMessage: TLazDeviceMessage;
AStatus: TLazMessagingStatus);
end;
var
Form2: TForm2;
implementation
uses
{$ifdef LCLCustomDrawn}
customdrawnint,
{$endif}
TypInfo, mainform;
{$R *.lfm}
{ TForm2 }
procedure TForm2.Button1Click(Sender: TObject);
begin
Hide;
end;
procedure TForm2.btnSendSMSClick(Sender: TObject);
var
lMessage: TLazDeviceMessage;
begin
Messaging.OnMessagingStatus := @HandleMessagingStatus;
lMessage := Messaging.CreateMessage();
lMessage.Body := textBody.Text;
lMessage.destinationAddress.Text := textDest.Text;
DebugLn('[TForm2.btnSendSMSClick] dest='+textDest.Text);
Messaging.SendMessage(lMessage);
end;
procedure TForm2.btnStartAccelClick(Sender: TObject);
begin
Accelerometer.OnSensorChanged := @HandleAccelerometerChanged;
Accelerometer.StartReadingAccelerometerData();
end;
procedure TForm2.btnStopAccelClick(Sender: TObject);
begin
Accelerometer.StopReadingAccelerometerData();
end;
procedure TForm2.btnGetPosClick(Sender: TObject);
begin
PositionInfo.RequestPositionInfo(pmGPS);
PositionInfo.OnPositionRetrieved := @HandlePositionRetrieved;
end;
procedure TForm2.Button2Click(Sender: TObject);
var
lStr: string;
begin
lStr := Form1.LoadHTMLPageViaJNI('http://magnifier.sourceforge.net/');
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
{$ifdef Android}
CDWidgetSet.ShowListViewDialog('Dialog Title',
['Title1', 'Title2', 'Title3', 'Title4', 'Title5', 'Title6'],
['Descr1', 'Descr2', 'Descr3', 'Descr4', 'Descr5', 'Descr6']);
{$endif}
end;
procedure TForm2.textDestExit(Sender: TObject);
begin
DebugLn('[Edit1Exit]');
end;
procedure TForm2.textDestKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
DebugLn('[Edit1KeyDown] Key=' + DbgsVKCode(Key));
end;
procedure TForm2.textDestKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
DebugLn('[Edit1KeyUp] Key=' + DbgsVKCode(Key));
end;
procedure TForm2.textDestUTF8KeyPress(Sender: TObject; var UTF8Key: TUTF8Char);
begin
DebugLn('[Edit1UTF8KeyPress] Char=' + UTF8Key);
end;
procedure TForm2.HandleAccelerometerChanged(Sender: TObject);
begin
labelSensorData.Caption := Format('X=%f Y=%f Z=%f', [Accelerometer.xaxis,
Accelerometer.yaxis, Accelerometer.zaxis]);
DebugLn(labelSensorData.Caption);
end;
procedure TForm2.HandlePositionRetrieved(Sender: TObject);
begin
labelSensorData.Caption := Format('latitude=%f longitude=%f',
[PositionInfo.latitude, PositionInfo.longitude]);
DebugLn(labelSensorData.Caption);
end;
procedure TForm2.HandleMessagingStatus(AMessage: TLazDeviceMessage;
AStatus: TLazMessagingStatus);
begin
labelSensorData.Caption := '[HandleMessagingStatus] ' +
GetEnumName(TypeInfo(TLazMessagingStatus), integer(AStatus));
DebugLn(labelSensorData.Caption);
end;
end.