Delphi-PRAXiS

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.

skoschke 1. Mär 2021 10:05

AW: Probleme TEdit Android Delphi 10.4.1
 
So, nach gefühlt unendlichem Aufwand, alle Controls auf neuer Form gezeichnet, Events neu angelegt usw. bin ich wieder so weit wie am Anfang!

Beim Debuggen sehe ich jetzt zwar den Inhalt der Edits, aber die Laufzeitfehler treten weiterhin auf (die Exception-Klasse Trace/breakpoint trap (5) ).

Nun bin ich mit meinem Latein am Ende!
Brauche dringend neue Denkanstöße!

Ciao
Stefan

skoschke 1. Mär 2021 15:31

AW: Probleme TEdit Android Delphi 10.4.1
 
Ich hatte die Hoffnung, dass es mit Delphi 10.4.2 besser wird...

aber schon der Zugriff auf das TEdit
Delphi-Quellcode:
 m := Menge.Text

bringt jetzt schon Laufzeitfehler!

Verdammt, was ist denn da nur los?

Ciao
Stefan

MEissing 1. Mär 2021 16:02

AW: Probleme TEdit Android Delphi 10.4.1
 
Passiert das auch mit einer neuen, leeren Anwendung (wo dann ein Zugriff auf die TEdit-Properties erfolgt innerhalb einer Debug-Session)?

skoschke 2. Mär 2021 05:42

AW: Probleme TEdit Android Delphi 10.4.1
 
Nein, das hatte ich schon mit einem neuen Miniprojekt getestet, dort tritt der Fehler nicht auf...

Ciao
Stefan

skoschke 2. Mär 2021 07:10

AW: Probleme TEdit Android Delphi 10.4.1
 
Mir ist da noch weiter was aufgefallen:

hier beschrieben beim Debuggen:
https://www.delphipraxis.net/207179-...i-android.html

Dieser Effekt beim Debuggen tritt nur in dem kaputten (was aber ist da kaputt?) Formular auf, gleicher Code in einem anderen Formular wird wie erwartet schrittweise mit F8 abgearbeitet!

Ciao
Stefan

MEissing 2. Mär 2021 07:11

AW: Probleme TEdit Android Delphi 10.4.1
 
Dann mal (testweise) ein neues Projekt anlegen und die vorhandenen Units einbinden.

skoschke 3. Mär 2021 07:04

AW: Probleme TEdit Android Delphi 10.4.1
 
So, Testprojekt erstellt, das kaputte Formular eingebunden, da funktioniert überhaupt nichts!
Selbst beim Zuweisen eines Textes zu einem TEdit hängt das Programm.

Füge ich hier nun ein weiteres neues Formular mit ein paar TEdits hinzu, verhalten sich diese wie gewünscht!

Irgendwas ist an dem Formular kaputt, ich wüsste gern was da los ist und wie das repariert werden kann!

Ciao
Stefan

haentschman 3. Mär 2021 07:16

AW: Probleme TEdit Android Delphi 10.4.1
 
Moin...8-)
Zitat:

Irgendwas ist an dem Formular kaputt, ich wüsste gern was da los ist und wie das repariert werden kann!
...dazu mußt du es mal komplett anhängen. pas/dfm :zwinker:

skoschke 18. Mär 2021 06:31

AW: Probleme TEdit Android Delphi 10.4.1
 
So, es läuft wieder:

Das Projekt ist in Jahren entstanden und über zig Delphiversionen gewachsen.

Mir war irgendwann aufgefallen, dass ich Massen an Uses in den Units stehen hatte und habe die erst mal alle auskommentiert und nur noch die wieder eingefügt, die der Compiler als fehlend bemeckert hatte.
Dabei ist zum Teil mehr als die Hälfte der vorhandenen uses rausgeflogen.
Das habe ich in allen Units des Projekts (nicht nur dem betreffenden Formular) gemacht, war viel Fleißarbeit, aber jetzt funktioniert alles wieder :-)))

Ist es denkbar, das das wirklich die Ursache war, und warum (nicht benötigte Initialisierungs-Abschnitte durchlaufen?)

Ciao
Stefan

Incocnito 18. Mär 2021 07:17

AW: Probleme TEdit Android Delphi 10.4.1
 
Nur für den Fall:
Schonmal in der Windows-Umgebung alle Haken ala "Überlaufprüfung" zu aktivieren,
ob das (wie bereits erwähnt) an anderer Stelle alles zuerlegt!?

LG Incocnito


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:00 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