AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[FMX] UITextView zur Laufzeit erstellen

Ein Thema von Darlo · begonnen am 13. Okt 2011 · letzter Beitrag vom 14. Okt 2011
Antwort Antwort
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

[FMX] UITextView zur Laufzeit erstellen

  Alt 13. Okt 2011, 15:31
Hallo,

ich bin schon den ganzen Tag am versuchen ein UITextfield zur Laufzeit zu erstellen.

Die einzigen Zeilen die in meinen Augen richtig sind hänge ich mal an (viel ist es nicht gerade...)

Code:
unit Unit1
{$modeswitch objectivec1}
Code:
var
  textfield1: UITextfield;
begin
   textfield1 := UITextfield.alloc.init;
   textfield1.setDelegate(?);
   //hier fehlt jetzt alles

   textfield1.release;
end;
Vielleicht kann ja einer von Euch mir weiterhelfen.

Gruß
Darlo
Philip
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: [FMX] UITextView zur Laufzeit erstellen

  Alt 13. Okt 2011, 15:37
Warum benutzt Du dafür nicht FMX (wie im Titel) Das ist ja jetzt reines Objective-C.

Das init braucht ein Rectangle, und delegate sollte schon mal self sein.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: [FMX] UITextView zur Laufzeit erstellen

  Alt 13. Okt 2011, 15:45
weil edit.keyboardtype nicht funktioniert.
Also dachte ich mir schreibe ich mir doch was, dass alle meine TEdits unter iOS durch entsprechende UITextfields ersetzt.
Philip
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: [FMX] UITextView zur Laufzeit erstellen

  Alt 13. Okt 2011, 15:47
Liegen die nicht darunter? So dass Du dann z.b. keyBoardType := UIKeyboardTypeEmailAddress zuweisen kannst?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: [FMX] UITextView zur Laufzeit erstellen

  Alt 13. Okt 2011, 15:50
genau textfield.keyboardType := UIKeyboardTypeEmailAddress;

Nur dafür muss es halt ein UITextField sein und kein TEdit. Bekomme es aber nicht hin ein UITextField zur Laufzeit zu erstellen
Philip
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: [FMX] UITextView zur Laufzeit erstellen

  Alt 13. Okt 2011, 16:04
Ich denke der richtige Weg wäre herauszufinden, wie man sich in der FMX Klassenhierarchie an das Cocoaobjekt ranhangelt. Denn es muss ja da sein. Mit dem XCode-Debugger komme ich da auch nicht wirklich weiter
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: [FMX] UITextView zur Laufzeit erstellen

  Alt 14. Okt 2011, 18:23
So nach 24 Stunden habe ich doch einige Erkenntnisse gewonnen.

Die internen Objekte der jewiligen OS werden von FMI (unvollständig) emuliert. Es gibt also kein UITextView dessen keyboardtype man setzen könnte.

Durch das Abarbeiten der internen Viewstruktur kann man Zugriff auf das Keyboard-Fenster erhalten. Das wird ja im DoOnEnter angezeigt. Leider nach dem Aufruf des OnEnter-Events. Bedeutet, wenn man es im Event finden will, dann schlägt das fehl weil noch nicht aktiviert.

Toll, dann eben mit einem Timer oder Thread der auf das Keyboardfenster wartet. Das geht, man erhält dann einen View "UIKeyboardAutomatic". Aber was mache ich dann damit? Und wenn es überhaupt möglich sein sollte dieses zur Laufzeit zu verändern, sieht das dann nicht häßlich aus und flimmert?

Ich stelle mir eher vor, dass theoretisch beim Start alle benötigten Keyboardtypfenster erzeugt und dann bei Bedarf aktiviert werden. Nur eben leider nicht im FMI Framework. Es wird immer nur genau eines aktiviert - wo das erzeugt wird konnte ich bisher nicht ermitteln.

Passendes, frustrierendes Zitat
Zitat von Phil Hess:
While cross-platform UI frameworks can provide a way to use Cocoa indirectly, they often bury Cocoa beneath thick layers of intermediate code where bugs, odd behavior, performance problems, code bloat, and non-standard look and feel can be introduced. When you use Cocoa directly with Objective C or Objective Pascal, nothing comes between your code and the Cocoa framework. Typically this results in smaller, better-looking programs that are easier to maintain and more pleasing to your users.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

AW: [FMX] UITextView zur Laufzeit erstellen

  Alt 14. Okt 2011, 23:18
Wäre es denn dann nicht das einfachste sich einen Code zu schreiben der unter iOS alle tedits in uitextviews umwandelt. Dann hätte man einmal Arbeit und die wichtigen Funktionen unter iOS. Oder verstehe ich das falsch?
Philip
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: [FMX] UITextView zur Laufzeit erstellen

  Alt 14. Okt 2011, 23:58
Klar, das würde gehen - aber dann braucht man keinen FM mehr. Meine FM Programme lassen sich unter Windows zwar kompilieren, aber da die eigentliche iOS Funktionalität zwischen {$ifdef} versteckt werden muss, kann ich sie nicht mal mehr ansatzweise mit der IDE testen. Dazu noch die Macken des Designers... Dann verkommt die Delphi-IDE zum Resource-Workshop. Keine Syntaxhilfe, keine Codevervollständigung ausser bei den Dingen die man sowieso aus dem ff kennt.

Ich (als bekennender Mac-Hasser) arbeite inwzischen lieber mit XCode (und FP, wenn ich nicht hunderte eckiger Klammern tippen will). Was sind dann noch die Vorteile von FM? Aja, die "Plattformunabhängigkeit" und das 3D. Also wenn ich ein Projekt explizit für Ixxx erstelle, was nützt mir Multiplatform - es sei denn, Android wird mal unterstützt. D.h. dann noch mehr {$ifdef}. Der einzige Vorteil der wirklich übrig bleibt ist dann 3D. Das allerdings ist auf den momentanen Zielgeräten (ausser dem 4S) nicht wirklich angenehm schnell, Antialiasing wird nicht unterstützt, die Fonts werden schrecklich gerendert.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  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 07:56 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