Customdrawn Android

Rund um die LCL und andere Komponenten
Antworten
HHick123
Beiträge: 21
Registriert: Mo 10. Nov 2014, 00:28

Customdrawn Android

Beitrag von HHick123 »

Hallo Leute,
ich versuche gerade (meine Schach-Engine und GUI, übrigens eine der wenigen in Pascal, soweit mir bekannt: ev. veröffentliche ich mal den Source-Code), mittels Customdraw auf Android zu bringen...

Für das GUI benötige ich nicht viel: 7 Buttons, zwei Labels, eine Paintbox oder ein Image (für das Brett).... und ideal wäre eine Listbox oder Listview (zur Anzeige der Eröffnungsbuch-Varianten),

Hab das jetzt mal probiert mit laz2apk, ohne der Listbox. Funktioniert im Prinzip super!
Die App installiert sich am Phone bzw. im Emulator und scheint zu laufen....

Allerdings stehe ich momentan an:
-Meine Controls sind viel zu groß, d.h. ich muss Width und Height einstellen und Positionieren, aber Wie bekomme ich die Bildschirmabmessungen heraus? Das Form1 scheint aktuell weit über den sichtbaren Bereich hinauszugehen, aber der ist ja bei jedem Phone anders. Clientwidth und ClientHeight liefern jedenfalls sehr große seltsame Werte)
-Wie bekomme ich mit, wenn der Bildschirm gedreht wird? OnFormResize dürfte es ja nicht sein, oder?

Hat jemand eine Idee?

Schönen Gruß, Helmut

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Customdrawn Android

Beitrag von Komoluna »

Für die Bildschirmgröße würde ich Screen.Width/Height probieren.
In laz2apk ist irgendwo ne unit drin, mit der man relativ einfach auf viele Gerätefunktionen zugreifen kann, wie den Beschleunigungssensor und ich glaube auch die Bildschirmausrichtung.
(hab jetzt keine Zeit, heute Mittag guck ich mal nach, wie die Unit heißt. Oder du suchst mal selber, müsste irgendwas mit Android heißen...)

MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

mschnell
Beiträge: 3418
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Customdrawn Android

Beitrag von mschnell »

Verstehe ich richtig, das CustomDrawn auf PC un Android bei Dir tatsächlich bereits prinzipiell funktioniert ?

Gibt es bei CustomDrawn "Screen" ?

P.S.:
Ich habe gerade in Linux Lazarus nochmal übersetzt und eine winzige Test-Applikation mit einem Button und einem Memo mit Custom-Drawn gemacht.

Was mir sofort auffiel:
- Der "Button" hat nach dem Start keine Beschriftung. Man kann im Programm aber seine Caption zuweisen und das wird auch korrekt angezeigt.
- Das Memo wird nach dem Start angezeigt und es steht "Memo1" drin. Im Programm tut aber "Clear" und "Add" nichts.

-Michael

HHick123
Beiträge: 21
Registriert: Mo 10. Nov 2014, 00:28

Re: Customdrawn Android

Beitrag von HHick123 »

mschnell hat geschrieben:Verstehe ich richtig, das CustomDrawn auf PC un Android bei Dir thttp://sourceforge.net/projects/laztoapk/files/tsächlich bereits prinzipiell funktioniert ?

Gibt es bei CustomDrawn "Screen" ?

P.S.:
Ich habe gerade in Linux Lazarus nochmal übersetzt und eine winzige Test-Applikation mit einem Button und einem Memo mit Custom-Drawn gemacht.

Was mir sofort auffiel:
- Der "Button" hat nach dem Start keine Beschriftung. Man kann im Programm aber seine Caption zuweisen und das wird auch korrekt angezeigt.
- Das Memo wird nach dem Start angezeigt und es steht "Memo1" drin. Im Programm tut aber "Clear" und "Add" nichts.

-Michael


Ja, prinzipiell dürfte es funktionieren, hab' mich nach dem laztoapk-Tutorial auf sourceforge gerichtet (auf Windows 7). Das dort enthaltene Beispielprogramm funktioniert definitiv... Hab' nur mein Formular auf die Customdrawn-Komponenten umgebaut, lpr-Datei angepasst (wie die in der Beispielapplikation) und schon war mein Programm am Handy...

Ok, die Toolpalette für Customdrawn ist sehr spartanisch (viel spartanischer geht's eigentlich nicht mehr), es funktioniert aber zumindest: StaticText, Button geht bei mir, Timer geht auch, Paintbox zeichnet auch auf den ersten Blick).
Die Align-Eigenschaften funktionieren anscheinend noch nicht, aber macht nichts, dann positionirte ich doe Controls eben selbst....
.... wenn ich nur wüsste, wie groß der Schirm ist....

Am abend schaue ich mir mal das mit ''Screen.'' an...

LG Helmut

LazarusRocks
Beiträge: 40
Registriert: Mo 4. Aug 2008, 09:25
OS, Lazarus, FPC: WinXP(L 0.9.29SVN FPC 2.4.1)
CPU-Target: xxBit
Wohnort: CH

Re: Customdrawn Android

Beitrag von LazarusRocks »

Hallo,
schön zu hören dass LazToApk funktioniert hat.
Ich bin der "Entwickler" von LazToApk und möchte noch kurz etwas erklären.
Die Hauptarbeit macht laz4android (truetom) und die initiale Version von LazToApk wurde von tapani01 geschrieben. Also die Ehre gehört also diesen beiden Leuten.
Ich habe "nur" die Anwendung etwas verbessert und ein schönes Setup darum gebaut.

Nun noch kurz meine Frage zu deinem Projekt. Welche Windows-Version,welche SDK,JDK und android API hast du verwendet?

Ich versuche gerade LazToApk auf window 10 tech preview zum laufen zu kriegen. Und eigentlich möchte ich auf sourceforge bei laztoapk eine Tabelle einrichten, mit Konfigurationen welche funktionert haben. Deshalb interessieren mich solch Dinge.

Und natürlich werde ich auch gerne dein Schachprogramm mal auf meinem Tablet ausprobieren :D

Happy coding und tschüss..

Sam

HHick123
Beiträge: 21
Registriert: Mo 10. Nov 2014, 00:28

Re: Customdrawn Android

Beitrag von HHick123 »

Hallo Sam,
hier meine Versionsdaten:

Windows 7 Service Pack 1 64bit

laztoapk ver. 0.9.0.27 (setup_laztoapk_alpha_011_experimental.exe)
JDK: Java SE Development Kit 7u72 (jdk-7u72-windows-i586.exe)

Den Rest hatte laztoapk ja selbst heruntergeladen, das ist:
Laz4Android: Lazarus Version 1.3 Datum 2014-11-07, FPC-Version 2.7.1, SVN-Revision 46592 i386-win32-win32/win64
Android SDK-Manager ist Rev.23.0.5

laztoapk zeigt an:
NDK-Platform: 4.0 API 14
SDK Build-Tool: 19.1.0
sowie folgende Pfade:
Android SDK Path: c:\laztoapk\downloads\android-sdk-windows\
Android NDK Path: c:\laztoapk\downloads\android-ndk-r9d\
Java JDK Path: c:\Program Files (x86)\Java\jdk1.7.0_72\
Build tool: c:\laztoapk\downloads\laz4android\lazbuild.exe

Eine kleine Herausforderung war: Musste im Android Virtual Device Manager das "Use Host GPU" Hakerl entfernen, sonst startet das AVD nicht (dürfte ein aktueller Bug sein).

LG Helmut

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Customdrawn Android

Beitrag von Komoluna »

Hab die Unit gefunden:
lazdeviceapis
Einfach einbinden und dann mit Device.GetScreenRotation(0) die Ausrichtung abfragen(Device ist eine globale Variable in der Unit lazdeviceapis)

MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Customdrawn Android

Beitrag von Komoluna »

Wo wir grade beim drawen von Komponenten sind:
Hat schon wer OpenGL unter Android zum laufen gekriegt?

TOpenGLControl unterstützt das nicht und ansonsten weiß ich nicht, wo ich SwapBuffers herbekomme(in der Unit Windows ist eins, aber das geht ja unter Android nicht).

MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

HHick123
Beiträge: 21
Registriert: Mo 10. Nov 2014, 00:28

Re: Customdrawn Android

Beitrag von HHick123 »

Hi, lazdeviceapi werd' ich mir mal ansehen, momentan mache ich es so: Mit einem TTimer polle ich, ob sich Screen.Height oder Screen.Width geändert hat. Wenn ja setze ich Form1.Clientwidth:= Screen.Width; Form1.Clientheight:=Screen.Height
und positioniere die Controls mit Top Left Width und Height.

Ich kämpfe allerdings kämpfe ich noch ein bischen: Ich glaube, wenn ich die Paintbox-Position oder Größe setze beendet sich dieApp, muss das aber noch genauer debuggen...

Das mit OpenGL würde mich auch interessieren (für ein anderes Projekt) GLScene auf Android fände ich z.B. super...

Schönen Abend, Helmut

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Customdrawn Android

Beitrag von Komoluna »

Ich wäre schonmal froh, wenn man dglOpenGL zum laufen bekommt, leider fehlen darin auch die Methoden um den Renderkontext zu erstellen.

Was haltet ihr davon mal ein Unterforum für Android bei Api und Plattformspezifisches einzurichten?
In letzter Zeit hat sich das Interesse an Lazarus + Android scheinbar sehr gesteigert.
Wenn sogar Windows mobile eine Kategorie hat sollte Android meiner Meinung nach auch eine bekommen, oder?


MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

HHick123
Beiträge: 21
Registriert: Mo 10. Nov 2014, 00:28

Re: Customdrawn Android

Beitrag von HHick123 »

Hi, so sieht's aktuell übrigens aus (Screenshot anbei).
Würde mich freuen, wenn Android Custumdrawn weiterentwickelt würde. Android ist strategisch sicher eine interessante Zielplattform...
Dateianhänge
2014-11-16-11-48-03.png

Mathias
Beiträge: 5084
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Customdrawn Android

Beitrag von Mathias »

Ich wäre schonmal froh, wenn man dglOpenGL zum laufen bekommt, leider fehlen darin auch die Methoden um den Renderkontext zu erstellen.

Das würde ich auch super finden, somit könnte man Java ins jenseits befördern.
OpenGL auf Android ist der einzige Grund, das ich Java programmiere.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Antworten