Delphi XE2를 사용하여 iOS에서 가속도계에 액세스하려면 어떻게해야합니까?Delphi XE2의 iOS 가속도계에 액세스하는 방법?
IDE를 살펴 보았지만 구성 요소를 찾지 못했습니다.
Delphi XE2를 사용하여 iOS에서 가속도계에 액세스하려면 어떻게해야합니까?Delphi XE2의 iOS 가속도계에 액세스하는 방법?
IDE를 살펴 보았지만 구성 요소를 찾지 못했습니다.
Delphi XE2는 Mac에서 OSX 로의 배포를 지원합니다. iPhone에 배포하는 것은 apparently pretty easy이지만 최종 배포 도구로 XCode를 사용하는 것과 관련이 있습니다. Delphi는 iPhone 하드웨어 배포를 "공식적으로"지원하지 않기 때문에 특정 구성 요소가 포함되어 있는지 의심 스럽습니다.
면책 조항 : 방금 XE2를 다운로드 한 지 얼마되지 않아 지금까지 하나의 Mac 응용 프로그램 만 배포했습니다. 그래서 저는 전문가가 아닙니다.
편집 : Anders Ohlsson은 분명히 XE2 용 가속도계 구성 요소를 작성했습니다. 나는 그것을 시도하지 않았지만 here it is.
요셉이 맞습니다. 필립 헤스는 델파이의 iOS 뉴스 그룹에 기여 및 기타 유용한 정보, 예를 들어되었습니다
http://web.me.com/macpgmr/ObjP/Xcode4/ObjP_Intro.html
하는 당신에게 도움이 될 수있다 : 그는 또한 여기에이 페이지를 가지고
https://forums.embarcadero.com/message.jspa?messageID=390713&tstart=125
. 현재 CoreLocation 서비스를 사용하기 위해 모든 것을 진행하고 있습니다. 확실히 희미한 마음이 아닙니다.
엠바 카데로 블로그에 가속도계를 읽고 구성 요소있다: 여기
http://edn.embarcadero.com/article/41748
구성 요소에 대한 다운로드 링크 것 : 여기 http://cc.embarcadero.com/item/28609
그리고이 앤더스 올슨에 의해 소스 코드 것 : (나는 이것을 사용
가 GPS/Compass 용 구성 요소를 작성하십시오.)
unit Accelerometer;
{$IFDEF FPC}
{$mode objfpc}{$H+}
{$modeswitch objectivec1}
{$ENDIF}
interface
uses
SysUtils, Classes, FMX_Types
{$IFDEF FPC}
, iPhoneAll
{$ENDIF}
;
type
TAccelerateEvent = procedure(x,y : Double) of object;
TiOSAccelerometer = class(TFmxObject)
private
FOnAccelerate: TAccelerateEvent;
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
published
{ Published declarations }
property OnAccelerate: TAccelerateEvent read FOnAccelerate write FOnAccelerate;
end;
{$IFDEF FPC}
const
kAccelerometerFrequency = 100.0; // Hz
{$ENDIF}
{$IFDEF FPC}
type
UIAcceleration = objcclass external (NSObject)
public
function timestamp: NSTimeInterval; message 'timestamp';
function x: UIAccelerationValue; message 'x';
function y: UIAccelerationValue; message 'y';
function z: UIAccelerationValue; message 'z';
end;
{$ENDIF}
{$IFDEF FPC}
type
AccDelegate = objcclass(NSObject)
procedure accelerometer_didAccelerate(accelerometer: UIAccelerometer; acceleration: UIAcceleration); message 'accelerometer:didAccelerate:';
end;
{$ENDIF}
{$IFDEF FPC}
var
AccDelegatVar: AccDelegate;
{$ENDIF}
var
MyAccelerometer: TiOSAccelerometer;
procedure Register;
implementation
{$IFDEF FPC}
procedure AccDelegate.accelerometer_didAccelerate(accelerometer: UIAccelerometer; acceleration: UIAcceleration);
begin
if Assigned(MyAccelerometer) then
if Assigned(MyAccelerometer.FOnAccelerate) then
MyAccelerometer.FOnAccelerate(acceleration.x,acceleration.y);
end;
{$ENDIF}
constructor TiOSAccelerometer.Create(AOwner: TComponent);
begin
inherited;
{$IFDEF FPC}
UIAccelerometer.sharedAccelerometer.setUpdateInterval(1.0/kAccelerometerFrequency);
AccDelegatVar := AccDelegate.alloc;
UIAccelerometer.sharedAccelerometer.setDelegate(AccDelegatVar);
{$ENDIF}
end;
procedure Register;
begin
RegisterComponents('iOS', [TiOSAccelerometer]);
end;
end.
호기심에 관한 downvote. 내가 이것에 대해 틀렸다면 나는 올바른 방법이 무엇인지 듣고 싶다. Windows에서 델파이로 시뮬레이션 한 직접적인 iOS 하드웨어 액세스의 일부는 진짜 치료법이 될 것입니다. – JosephStyons
아래 소스 코드를 포함 시켰으며 템플릿을 사용하여 iOS 나침반/GPS 용 구성 요소를 작성했습니다. – Johan