Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: XE5 Orientation Sensor unter Android

  Alt 24. Okt 2013, 11:32
Das Beispiel hat ja schon einige Schwachpunkte im Bezug auf Rückmeldungen im Fehlerfall.
Ich kommentiere mal den Sourcecode:
Delphi-Quellcode:
procedure TGyroscopeForm.Form3DCreate(Sender: TObject);
begin
  { attempt to get and activate the sensor manager }
  FSensorManager := TSensorManager.Current;
  FSensorManager.Activate;
  { attempt to get an orientation sensor }
  FSensors := TSensorManager.Current.GetSensorsByCategory(TSensorCategory.Orientation);
  if Length(FSensors) = 0 then
  begin
    Label1.Text := 'Gyro not found'; // gut, aber die Meldung sollte sein: "no sensors available"
    Exit; { no sensors available }
  end;
  if not (FSensors[0] is TCustomOrientationSensor) then
  begin
    // schlecht - hier fehlt die Rückmeldung an den User
    Label1.Text := 'no orientation sensor is available'; // neu hinzu
    Exit; { no orientation sensor is available }
  end;



  { start the sensor if it is not started }
  if not TCustomOrientationSensor(FSensors[0]).Started then
  begin
    TCustomOrientationSensor(FSensors[0]).Start;

    // sollte der Sensor aus irgendeinem Grund schon gestartet sein
    // dann wird der Timer nicht gestartet
    // die folgende Zeile sollte daher ausserhalb der if-Anweisung verschoben werden
    Timer1.Enabled := True;
  end
end;
fork me on Github
  Mit Zitat antworten Zitat