![]() |
Geräteübergreifende Anwendung funktioniert nicht wirklich
Geräteübergreifende Anwendung funktioniert nicht wirklich
ich habe Probleme eine geräteübergreifende Anwendung unter Windows und Android ans laufen zu bekommen. Scheint, als ob die ganzen Komponenten nicht wirklich geräteübergreifend funktioniere, Windows 64Bit lässt sich erst gar nicht compilieren: "[dcc64 Fehler] E1026 Datei nicht gefunden: 'FMX.Filter.res'" TListBox: Ein einfaches
Code:
funktioniert unter Android nicht: "Project xy hat die Exception-Klasse Segmentation fault(11) ausgelöst.". Unter Windows funktioniert es.
ListBox1.Items.AddObject('STATIC1', TObject(2));
Datenbank: Viele DB-Komponenten getestet. Am "lauffähigsten" war die TSQLConnection + TSQLQuery Komponenten. Unter Windows gibt es einen Fehler bei "sqlQuery.Open;": "Exception EExternalException in Modul KERNELBASE.dll......" Kleine Test-Procedure:
Code:
procedure TForm20.TestDB();
var sqlConnection: TSQLConnection; sqlQuery: TSQLQuery; dbPath: string; sqlString, debugText : string; begin sqlConnection := TSQLConnection.Create(nil); sqlConnection.Params.AddPair('DriverName', 'Sqlite'); sqlConnection.DriverName := 'Sqlite'; sqlConnection.LoginPrompt := false; dbPath := System.IOUtils.TPath.GetDocumentsPath + PathDelim + 'sqlite_DB.db'; sqlConnection.Params.AddPair('Database', dbPath); sqlConnection.Connected := true; // Query sqlString := 'Select 1 as id, ''test123'' as test'; sqlQuery := TSQLQuery.Create(nil); sqlQuery.sqlConnection := sqlConnection; sqlQuery.sql.Clear; sqlQuery.sql.Add(sqlString); sqlQuery.Open; while Not sqlQuery.EOF do begin debugText := sqlQuery['test']; lst_wohnungen.Items.AddObject(sqlQuery['test'], TObject(Integer(sqlQuery['id']))); sqlQuery.next; end; sqlQuery.Free; sqlConnection.Free; end; Ist es normal, dass die geräteübergreifenden Anwendungen nicht wirklich funktionieren und öfter Probleme bereiten? Oder ist evtl. mein Rechner/RAD falsch konfiguriert? |
AW: Geräteübergreifende Anwendung funktioniert nicht wirklich
Zitat:
Für den Datenbankzugriff würde ich mit dem alten dbExpress erst gar nicht mehr anfangen. Dort die Treiber usw. richtig einzurichten ist ein Graus und daran dürfte auch das Problem liegen. Nimm besser gleich FireDAC. |
AW: Geräteübergreifende Anwendung funktioniert nicht wirklich
Firedac lässt sich aber nicht unter Android compilieren. Sobald ich eine TFDConnection benutze, bekomme ich den Fehler "[DCC Fataler Fehler] UMain.pas(10): F2613 Unit 'FireDAC.UI.Intf' nicht gefunden.
UMain.pas(10): Unit 'FireDAC.UI.Intf' wird von 'FireDAC.Stan.Option' verwendet" Bekomme den Fehler auch nicht behoben. Nur deswegen bin ich auf die TSQLConnection etc umgestiegen. Was brauche ich denn für ein Object für die Listbox? Wenn ich ein String nehme, bekomme ich den selben Fehler:
Code:
var s:string;
begin s := '10'; ListBox1.Items.AddObject('TEST STATC', TObject(s)); |
AW: Geräteübergreifende Anwendung funktioniert nicht wirklich
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Anhang 53014 Zitat:
|
AW: Geräteübergreifende Anwendung funktioniert nicht wirklich
Hast Du das für FD den passenden
![]() Und es könnte sein das auch Uses FireDAC.Phys.SQLiteWrapper.Stat fehlt. |
AW: Geräteübergreifende Anwendung funktioniert nicht wirklich
Im NextGen (Android/iOS) sind Objekte Referenzgezählt, also reagieren wie IInterface und .Free macht dort garnichts.
Derartige Casts sind dort somit verboten und wenn du sowas brauchst, dann mußt du ein Data-Objekt drumrum bauen.
Delphi-Quellcode:
type
TDataObject = class Value: string; constructor Create(Value: string); end; var s: string; begin s := '10'; ListBox1.Items.AddObject('TEST STATC', TDataObject.Create(s)); Und ja, unter anderem wegen sowas ist plattformübergreifender Code oft fast unmöglich nicht einfach, denn hier darfst du nicht casten und brauchst Objekte drumrum, aber drüben fehlt an vielen Stellen eine automatische Speicherverwaltung, oder sowas wie OwnsObjects, und mit Objekten bist'e angearscht, wenn du versuchst die Speicherlecks zu vermeiden. |
AW: Geräteübergreifende Anwendung funktioniert nicht wirklich
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
AW: Geräteübergreifende Anwendung funktioniert nicht wirklich
Zitat:
|
AW: Geräteübergreifende Anwendung funktioniert nicht wirklich
Danke euch. Habe zu Testzwecken nun mal die 10.4 Community Edition runtergeladen.
Funktioniert einwandfrei. Werd ich wohl eine neue VM aufsetzen müssen. |
AW: Geräteübergreifende Anwendung funktioniert nicht wirklich
Zitat:
Sherlock |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz