AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi Android App mit Delphi entwickeln - Wiedereinstieg bzw Neueinstieg
Thema durchsuchen
Ansicht
Themen-Optionen

Android App mit Delphi entwickeln - Wiedereinstieg bzw Neueinstieg

Ein Thema von ggscholz · begonnen am 2. Apr 2024 · letzter Beitrag vom 4. Apr 2024
Antwort Antwort
ggscholz
Online

Registriert seit: 20. Nov 2013
59 Beiträge
 
Delphi 11 Alexandria
 
#1

Android App mit Delphi entwickeln - Wiedereinstieg bzw Neueinstieg

  Alt 2. Apr 2024, 11:39
Hallo in die Runde,

ich habe vor Jahren eine Android-App entwickelt, die soweit alles macht, was sie soll. Jetzt steht eine Erweiterung an und ich möchte die damals ohne viel Hintergrundwissen gebastelte App etwas mehr auf einen aktuellen Standard ändern. Aktuelle Delphi Version ist 11, demnächst 12
Dazu habe ich mir von https://github.com/FMXExpress/Cross-Platform-Samples die Beispielanwendungen geladen.

Aber so richtig verstehe ich das Konzept nicht. In Delphi geladen und compiler wird die App auf dem Handy richtig installiert und ausgeführt.

Wie kann ich jetzt mit der Oberfläche in Delphi arbeiten? Neben der Tatsache , das in der App alles mehr oder weniger schwarz und schlecht erkennbar ist, lassen sich die platzierten Komponenten im Struktur-Baum auswählen, aber sie sind in der Design Oberfläche nicht markiert. Ich sehe als nicht, wo jetzt das gewählte Objekt in der Oberfläche platziert ist.

Wenn ich bisher eine neue Komponente aus der Palette in die Anwendung gezogen habe, scheint das bei diesen Apps nicht der richtige Weg zu sein: sie sind auch wieder nicht markiert und erkennbar .

Offensichtlich ist so einiges an Komponenten übereinander gestapelt, aber mit der Maus dann nicht mehr erreichbar.

Wie geht man da vor, um eine neue App von Grund auf aufzubauen oder hier in den Bespielen Änderungen vorzunehmen ?

Schon jetzt besten Dank für die Aufmerksamkeit

Grüße Gerd
Gerd
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.916 Beiträge
 
Delphi 12 Athens
 
#2

AW: Android App mit Delphi entwickeln - Wiedereinstieg bzw Neueinstieg

  Alt 2. Apr 2024, 12:39
Wie geht man da vor, um eine neue App von Grund auf aufzubauen oder hier in den Bespielen Änderungen vorzunehmen ?
Wenn mir eine UI oder eine Form/Frame mal zu komplex geworden ist, dann lagere ich gerne davon Teile in separate, wiederverwendbare Frames aus.
Die vorherigen Teile ersetze ich durch einfache "Carrier", wie TLayout oder TRectangle (mit Farbkontrolle).
Diese Frames lade ich dann in solche "Carrier", anstelle der bisherigen Komponentenstruktur, zur Laufzeit rein und kann diese danach schön separat managen und testen.

Die alten und neuen Teile funktionieren dabei in der Regel auch wunderbar parallel, sodass man einfach zwischen alt/neu umschalten kann und erst bei Erfolg die alten Teile endgültig löschen braucht.

Ist etwas mehr Aufwand, aber für mich hat sich das bisher immer gelohnt.
So kann man bestehende, komplexe Apps Schritt-für-Schritt umbauen und verschlanken.
  Mit Zitat antworten Zitat
ggscholz
Online

Registriert seit: 20. Nov 2013
59 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Android App mit Delphi entwickeln - Wiedereinstieg bzw Neueinstieg

  Alt 4. Apr 2024, 16:21
Hi Rolle62,

danke für die Beschreibung deiner Arbeitsweise. Habe ich im Grunde auch verstanden und werde mal damit rumprobieren.

Das Erste, was ich jetzt mal gemacht habe, ist das StyleBook rauszunehmen. Das hat die Sichtbarkeit deutlich erhöht.

So ganz verstanden habe ich die Reihenfolge oder Verwendung von TLayout und/oder TFrame noch nicht: beides Container zur Aufnahme vom Komponenten, aber wann oder warum verwendet man welche?

Letztendlich brauche zwei Label und zwei Edit's, die vom Scanner bedient werden und einen Button zum Verarbeiten der Daten aus den Edit-Feldern. Für Windows wäre ich damit jetzt fertig, bei Android/FMX geht's aber irgendwie völlig anders zu.

Gestern habe ich mal mit TGridLayout und TGridPanelLayout rumprobiert, um die Komponenten zu platzieren. Sieht in Delphi dann (nach vielen Versuchen) so aus, als könnte es passen, aber im Android Gerät gibt's dann doch eine etwas andere Anordnung der Komponenten.

Ich werde da noch das Eine oder Andere mir anlesen müssen.

Grüße Gerd
Gerd
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.827 Beiträge
 
Delphi 12 Athens
 
#4

AW: Android App mit Delphi entwickeln - Wiedereinstieg bzw Neueinstieg

  Alt 4. Apr 2024, 16:37
Hallo,

hast du im Formdesigner auch Android ausgewählt, damit dein Design wie unter Android aussieht?
Das hilft bei den Größen der Controls etc.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.916 Beiträge
 
Delphi 12 Athens
 
#5

AW: Android App mit Delphi entwickeln - Wiedereinstieg bzw Neueinstieg

  Alt 4. Apr 2024, 19:52
So ganz verstanden habe ich die Reihenfolge oder Verwendung von TLayout und/oder TFrame noch nicht: beides Container zur Aufnahme vom Komponenten, aber wann oder warum verwendet man welche?
TFrame ist das gewünschte UI, das kann man im Designer erzeugen und bequem grafisch wie üblich editieren.
Das TFrame ist im Prinzip ein TControl, was man dann irgendwo benutzen kann (um Erzeugen / Freigeben muss man sich natürlich auch entsprechend kümmern).

Von der Möglichkeit die Frames im Designer zu laden und per Drag-n-Drop irgendwo reinzuwerfen rate ich ab,
damit hatte ich in der Vergangenheit öfters mal massive Probleme.

Deshalb nutze ich die Frames in dem Ziel ausschließlich per Runtime.
Dafür habe ich "Carrier", in welche ich die Frames einfach einbinden kann.
Der Carrier ist dann nur eine Art Platzhalter für das Frame, im dem Ziel-Form oder Frame, wo Du das nutzten möchtest.

Ich hab hier mal die Funktionen für ein ganz "Basic" Embed/Release von Frames zu anderen Carriern.
Im Prinzip kann der Carrier alles Mögliche sein, in FMX kann man Controls beliebig verschachteln, auch mehrstufig
(Ich habe Frames, die wiederum andere Frames einbinden).

Delphi-Quellcode:

procedure Frame_Embed_To( const AFrame : TFrame;
                           const ACarrier : TControl;
                           const AAlign : TAlignLayout = TAlignLayout.Client );
...

// AFrame - Der Frame, der in den Carrier embedded werden soll
// ACarrier - Das Control, welches den Frame aufnehmen soll
// AAlign - Ein AlignLayout, üblicherweise TAlignLayout.Client, weil das eigentliche Layout im ZielForm oder Frame gemacht wird.
//
procedure Frame_Embed_To( const AFrame : TFrame;
                          const ACarrier : TControl;
                          const AAlign : TAlignLayout );
begin

    if Assigned( ACarrier ) and Assigned( AFrame) then
    begin

        ACarrier.BeginUpdate;

        try
            AFrame.Parent := nil;

            AFrame.Parent := ACarrier;
            AFrame.Align := AAlign;

        finally
            ACarrier.EndUpdate;
            ACarrier.Repaint;
        end;
    end;

end;

// Wie oben, so kann man den Frame wieder aus dem Carrier auslösen.
// In der Regel lasse ich aber die Zuordnung über die ganze Laufzeit stehen, kein Grund ständig
// Frames rein- und rauszubauen.
// Allerdings kann so auch einfach mal ein Frame je nach Sitiuation ausgetauscht werden.
//
procedure Frame_Embed_ReleaseFrom( const AFrame : TFrame;
                                   const ACarrier : TControl );
begin

    if Assigned( ACarrier ) and Assigned( AFrame) then
    begin

        ACarrier.BeginUpdate;

        try
            AFrame.Parent := nil;

        finally
            ACarrier.EndUpdate;
            ACarrier.Repaint;
        end;
    end;

end;

Geändert von Rollo62 ( 4. Apr 2024 um 19:55 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 18:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz