AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi XE7: Zoom von Android App -wie?

XE7: Zoom von Android App -wie?

Ein Thema von Kralle · begonnen am 3. Nov 2014 · letzter Beitrag vom 8. Nov 2014
Antwort Antwort
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
355 Beiträge
 
Delphi XE7 Professional
 
#1

AW: XE7: Zoom von Android App -wie?

  Alt 7. Nov 2014, 15:31
Moin,

also ich glaube ich bin einfach zu blöd dafür.
ich nimm ein neues Projekt für eine Mobil-Anwendung, packe dort ein ScaledLayout und in diese Ein Label und den Gestenmanager. Dann stelle ich beim Form das zoom auf aktiv und es passiert auf dem Android-gerät nichts.

Irgendwas fehlt an Informationen ...

Gruß HEiko
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.164 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: XE7: Zoom von Android App -wie?

  Alt 7. Nov 2014, 18:55
ich nimm ein neues Projekt für eine Mobil-Anwendung, packe dort ein ScaledLayout und in diese Ein Label und den Gestenmanager. Dann stelle ich beim Form das zoom auf aktiv und es passiert auf dem Android-gerät nichts.

Irgendwas fehlt an Informationen ...

Gruß HEiko
Ja - Du hast mein Posting nicht gelesen!

Vergiss das ScaledLayout... oder kannst Du das Fenster auf Deinem Handy mit der Maus groß ziehen?
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
355 Beiträge
 
Delphi XE7 Professional
 
#3

AW: XE7: Zoom von Android App -wie?

  Alt 7. Nov 2014, 19:27
Moin,


Ja - Du hast mein Posting nicht gelesen!
Doch, aber erkläre mir wo FLastDIstance , ZoomWidth und ZoomHeight herkommen?

Gruß Heiko
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: XE7: Zoom von Android App -wie?

  Alt 7. Nov 2014, 21:20
Warum schaust du dir zu diesem Thema nicht einfach mal die Demo von Emba an? Dafür sind die doch da (oder wofür sonst)?

Und den GestureManager brauchst du nicht, aber du musst schon dem Delphi-Referenz durchsuchenFMX.Types.TTouchManager z.B. der Form Delphi-Referenz durchsuchenFMX.Forms.TCommonCustomForm.Touch sagen, auf welche Gesten du reagieren möchtest
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
355 Beiträge
 
Delphi XE7 Professional
 
#5

AW: XE7: Zoom von Android App -wie?

  Alt 8. Nov 2014, 06:45
Guten Morgen,

Warum schaust du dir zu diesem Thema nicht einfach mal die Demo von Emba an? Dafür sind die doch da (oder wofür sonst)?
Weil die Demo keine Android-Demo ist. Weil es z.B. den OpenDialog nicht unter Android gibt.

Wen das alles so einfach ist, dann bräuchte ich doch nur wie angehängten Beispiel vorgehen.
Leeres Form für Mobile Anwendungen, Eigenschaften für Interaktive Gesten aktivieren und alles fein, aber es läuft nicht.
Auch wenn ich aus dem Wiki die Muster-Procedure für das Anzeigen der genutzten Geste einbinde, bekomme ich trotzdem kein verlässliche Information welche Geste genutzt wurde.
Entweder bin ich wirklich zu blöd oder es ist wieder mal in den Tiefen der Delphi Einstellungen etwas zu aktivieren das bei mir nicht aktiviert ist.
Weder auf meinem Trekstor-Tablet noch auf meinem Samsung Galaxy S5 mini bekomme ich eine Gesten-App funktionsfähig zum Laufen.

Gruß Heiko
Angehängte Dateien
Dateityp: zip Gesten-Test 002.zip (62,7 KB, 5x aufgerufen)
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: XE7: Zoom von Android App -wie?

  Alt 8. Nov 2014, 08:15
Oh, Ja, Mist - nicht für Android weil kein OpenDingsbums, dann schnell wieder weg und bloß nicht weiter anschauen

Ich dachte es geht dir um die Gesten? Warum schaust du dir nicht an dem Beispielprojekt an, wie das mit den Gesten gemacht werden muss? Das Drumherum kann dir doch egal sein. Wenn die mit einem OpenDialog Bilder öffnen und es das auf der Zielplattform nicht gibt, dann schmeiß den Rotz einfach weg. Ist doch nur Zuckerguß, denn mit den Gesten hat das nichts zu tun.

Zu deinem Testprogramm:

Ja, wo hast du denn der Anwendung gesagt wie auf die Gesten reagiert werden soll? Du hast zwar eingestellt, dass auf (und welche) Gesten reagiert werden soll, aber wie denn bitteschön? Ohne OnGesture Event wird das nichts.

Zu dem Beispielcode von Mavarik:
  • Den Ort und die Art der Deklaration von FLastDistance hättest du sehr einfach herausfinden können, wenn du dich mit dem von mir genannten Beispiel auseinandergesetzt hättest.
  • ZoomWidth und ZoomHeigth ergeben sich aus dem Kontext heraus:
    Delphi-Quellcode:
    ZoomPanel.Width := ZoomWidth * LScale;
    ZoomPanel.Height := ZoomHeight * LScale;
    Da wird also bei so einem ominösen ZoomPanel die Breite und Höhe gesetzt und errechnet wird das über einen Skalierungsfaktor LScale .
    Jetzt kommt Mathematik:
    Wenn also die Skalierung auf 1 ist (und kleiner wird die nie) if LScale < 1 then LScale := 1; , dann nimmt diese ominöse ZoomPanel die Werte aus ZoomWidth und ZoomHeigth . Ich schlussfolgere nun mal, da die Werte für das (immer noch ominöse) ZoomPanel überschrieben werden (s.o.), befinden sich in ZoomWidth und ZoomHeight die originalen Werte für ZoomPanel .
    Und weiter vermute ich anhand des Namensgebung, dass wir es hier mit jeweils einer property zu tun haben (genau wie ZoomPanel ).
Aber bevor du gleich einen Heulkrampf bekommst, hier ein abgespecktes Codebeispiel
Delphi-Quellcode:
unit Form.Main;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,
  FMX.Layouts, FMX.ListBox;

type
  TMainForm = class( TForm )
    ZoomPanel: TPanel;
    Label1: TLabel;
    procedure FormGesture( Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean );
  private
    FLastDistance: Integer;
    FZoomWidth, FZoomHeight: Single;
  public
    procedure AfterConstruction; override;

  end;

var
  MainForm: TMainForm;

implementation

{$R *.fmx}

procedure TMainForm.AfterConstruction;
begin
  inherited;

  Label1.Text := 'Ich kann größer werden';

  // ZoomPanel-Werte sichern

  FZoomWidth := ZoomPanel.Width;
  FZoomHeight := ZoomPanel.Height;

  // Gesten-Behandlung

  Self.OnGesture := FormGesture;
  Self.Touch.InteractiveGestures := [TInteractiveGesture.Zoom];
end;

procedure TMainForm.FormGesture( Sender: TObject; const EventInfo: TGestureEventInfo; var Handled: Boolean );
var
  LScale, Direction: Single;
begin
  if EventInfo.GestureID = igiZoom
  then
    begin
      if not( TInteractiveGestureFlag.gfBegin in EventInfo.Flags ) and not( TInteractiveGestureFlag.gfEnd in EventInfo.Flags )
      then
        begin
          Direction := EventInfo.Distance / FLastDistance;
          LScale := ZoomPanel.Scale.X * Direction;
          if LScale < 1
          then
            LScale := 1;

          ZoomPanel.Scale.X := LScale;
          ZoomPanel.Scale.Y := LScale;

          ZoomPanel.Width := FZoomWidth * LScale;
          ZoomPanel.Height := FZoomHeight * LScale;
        end;
      FLastDistance := EventInfo.Distance;
    end;
end;

end.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Kralle

Registriert seit: 31. Okt 2004
Ort: Bremerhaven
355 Beiträge
 
Delphi XE7 Professional
 
#7

AW: XE7: Zoom von Android App -wie?

  Alt 8. Nov 2014, 09:00
Guten Morgen,

QUOTE=Sir Rufo;1279139]Oh, Ja, Mist - nicht für Android weil kein OpenDingsbums, dann schnell wieder weg und bloß nicht weiter anschauen
[/QUOTE]

Ich habe es mir angeschaut und ich habe den Code sogar von der Windows-App in eine Android-App übertragen. Das Projekt ging dann auch auf aber bei der Zoom-Geste passierte im Gegensatz zu Deinem letzten Beispiel nichts.

Zitat:
Ich dachte es geht dir um die Gesten?
Ja.

Zitat:
Warum schaust du dir nicht an dem Beispielprojekt an, wie das mit den Gesten gemacht werden muss?
Wie bei allen anderen Beispielen die im Laufe dieses Threads kamen habe ich es bei diesem Beispiel gemacht, aber es funktionierte nicht.

Zitat:
Das Drumherum kann dir doch egal sein. Wenn die mit einem OpenDialog Bilder öffnen und es das auf der Zielplattform nicht gibt, dann schmeiß den Rotz einfach weg. Ist doch nur Zuckerguß, denn mit den Gesten hat das nichts zu tun.
Schon klar.

Zitat:
Ja, wo hast du denn der Anwendung gesagt wie auf die Gesten reagiert werden soll?
Gar nicht, da sich die letzen Kommentare so anhörten als wenn ich das eigentlich gar nicht brauche.

Zitat:
Du hast zwar eingestellt, dass auf (und welche) Gesten reagiert werden soll, aber wie denn bitteschön? Ohne OnGesture Event wird das nichts.
Da ich bei den anderen Bespielen auch mit den "OnGesture"-Events keine Erfolg hatte, habe ich das offen gelassen.


Zu dem Beispielcode von Mavarik:

Zitat:
Den Ort und die Art der Deklaration von FLastDistance hättest du sehr einfach herausfinden können, wenn du dich mit dem von mir genannten Beispiel auseinandergesetzt hättest.
Aber die Deklaration fehlt.

Zitat:
ZoomWidth und ZoomHeigth ergeben sich aus dem Kontext heraus:
Delphi-Quellcode:
ZoomPanel.Width := ZoomWidth * LScale;
ZoomPanel.Height := ZoomHeight * LScale;
Auch bei den beiden fehlt die Deklaration.


Zitat:
Aber bevor du gleich einen Heulkrampf bekommst, hier ein abgespecktes Codebeispiel
Das funktioniert. Jetzt muß ich nur noch das verschieben des vergrößerten Inhaltes in 4 Richtungen einbetten.
(Was Delphi ja auch nicht automatisch macht).

MfG
Heiko
OS: Windows 10 Professional, Delphi XE7 Pro SP1 +(Mobilpack & FireDAC)
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz