Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Probleme TEdit Android Delphi 10.4.1 (https://www.delphipraxis.net/207082-probleme-tedit-android-delphi-10-4-1-a.html)

skoschke 23. Feb 2021 07:55

Probleme TEdit Android Delphi 10.4.1
 
Hallo,

bisher funktionierte folgendes mit 10.3.3:

Delphi-Quellcode:
  Menge.Text := stringreplace(Menge.Text, '.', ',', [rfReplaceAll]);
wobei Menge ein TEdit ist.

Jetzt bekomme ich eine Fehlermeldung "Type Fmx.Platform.Text is not a structure or union type."
wenn ich mir Menge.Text im Überwachungsfenster anzeigen lassen möchte.

Beim Debuggen als Windows-Anwendung wird da korrekt der enthalteneText im Überwachungsfenster angezeigt.

Was ist da in 10.4.1 anders?

Ciao
Stefan

skoschke 23. Feb 2021 08:26

AW: Probleme TEdit Android Delphi 10.4.1
 
Geänderter Code mit Umweg über Strings:

Delphi-Quellcode:
var
  m, p: string;
begin
  m := Menge.Text;
  m := stringreplace(m, '.', ',', [rfReplaceAll]);
  p := Preis.Text;
  p := stringreplace(p, '.', ',', [rfReplaceAll]);
  Menge.Text := m; <----- hier knallt es
  Preis.Text := p;
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Projekt xxxxxxxxx.apk hat die Exception-Klasse Trace/breakpoint trap (5) ausgelöst.

Wie komme ich weiter?

Ciao
Stefan

skoschke 23. Feb 2021 08:42

AW: Probleme TEdit Android Delphi 10.4.1
 
Noch ein Versuch, ein Miniprojekt mit einem Button und einem TEdit

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:= stringreplace(edit1.Text,'a','b',[rfReplaceAll]);
end;
ergibt keinen Fehler!

Nun weiß ich endgültig nicht weiter!

Ciao
Stefan

himitsu 23. Feb 2021 10:42

AW: Probleme TEdit Android Delphi 10.4.1
 
Zitat:

Was ist da in 10.4.1 anders?
Gerade eben in 10.4.1 sind Strings nun überall standardmäßig mit 1-Index. (auch/vorallem in den mobilen Platformen)
{$ZeroBasedStrings} ist nun standardmäßig OFF. (nur die StringsHelper sind dagegen weiterhin überall mit 0)

Und vor 'ner Weile wurde ARC entfernt. (was in den Mobilen aktiv war)
.Free funktioniert nun endlich wieder und Objekte in Variablen werden nun nicht mehr automatisch über eine Referenzzählung freigegeben (ähnlich wie bei Interfaces).

himitsu 23. Feb 2021 10:45

AW: Probleme TEdit Android Delphi 10.4.1
 
Es könnte sein, dass Referenz in "Menge" bereits zu Beginn defekt/ungültig ist und der Lesezugriff rein zufällig funktioniert.

Kompilierst du mit 32 oder 64 Bit?
Nur nachgefragt, weil grade jemand Anderes in Win64 scheinbar auch Problemchen hat. https://www.delphipraxis.net/207084-...ml#post1483576


Hast du mal ein komplettes Clean gemacht?
"Bereinigen" in der Projektverwaltung und Build statt Compile,
bzw. vorher alle deine DCU gelöscht.

skoschke 24. Feb 2021 06:02

AW: Probleme TEdit Android Delphi 10.4.1
 
Ich compiliere Android 32Bit.

Komplettes Clean hat nichts gebracht, auch ein neu auf dem Formular platziertes TEdit macht diese Fehler!

Andere (ähnlich aufgebaute) Formulare funktionieren problemlos!

Was kann da noch kaputtgegangen sein?
Das hat ja alles schon mal funktioniert!

Danke für jegliche Tips!

Ciao
Stefan

Ich habe dem Projekt ein neues Formular mit TEdit hinzugefügt, da tritt das Problem nicht auf.
Es muss also irgendwas an dem betreffenden Formular kaputtgegangen sein, nur was?
Ich kann das mit viel Aufwand natürlich komplett neu bauen, aber das erklärt nicht das Problem und verhindert nicht dass das wieder passiert!

himitsu 24. Feb 2021 08:27

AW: Probleme TEdit Android Delphi 10.4.1
 
Es kann auch das Formular defekt sein, bzw. die Variable vom Formular auf was Falsches zeigen,

oder ein Buffer-Overflow, wo du mit irgendwas deinen Speicher zerballerst.

skoschke 24. Feb 2021 09:56

AW: Probleme TEdit Android Delphi 10.4.1
 
Ja genau das ist die Frage:

was am Formular kann falsch sein?

Ich habe ein neues leeres Formular mit einem TEdit zusätzlich in des Projekt eingebaut, dort macht es keine Probleme.

Dann habe ich per copy/paste alle Controls des kaputten Formulars auf das neue kopiert, den Code (außerhalb der IDE) in die pas kopiert und dann in der IDE die Events neu zugewiesen.

Der Fehler ist wieder da!

Ciao
Stefan

mensch72 24. Feb 2021 13:36

AW: Probleme TEdit Android Delphi 10.4.1
 
..."den Code (außerhalb der IDE) in die pas kopiert"... -> keine gute Idee


1. besser erstmal nur die Controls per Copy&Paste OHNE jeglichen EventCode aufs Formular und sehen das dies geht,
2. dann manuell StepByStep wirklich jedes einzelne Event per Designer wieder neu anlegen(so sind also alle Methoden dann neu definiert und haben eventuell auch eine andere Degleration von Parametertypen, wenn sich da was zwischen den Delphiversionen geändert hat,
3. nun manuell den eigentlichen PAS Code der Eventfunktionen aus dem "kaputten Form" in die neuen Eventfunktionen des neuen Forms einsetzen

=> ich wette, es hat sich irgendwo ganz leicht "irgendwo" was an den Übergabeparametertypen einer Eventfunktion was geändert... viel Spass bei der StepByStep Suche&Test:)

himitsu 24. Feb 2021 13:39

AW: Probleme TEdit Android Delphi 10.4.1
 
Was auch gern man schief läuft, wenn sich die Signatur von Event-Methoden geändert hat und man noch welche mit den alten/falchen Parametern arbeitet.

Komplette Prozedur kopieren und nicht nur den Inhalt behebt den Fehler nicht.
Ich weiß grade nicht ob Delphi selber bei Unterschieden eine "Warnung" anzeigt, oder ob es von den DDevExtension kommt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:42 Uhr.
Seite 1 von 2  1 2      

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