![]() |
FastReport in Projekt verwenden wenn Ziel auch Android ist
Hallo Leute,
ich stehe vor einem kleinen Problem. Mein aktuelles Projekt hat als Ziel Windows und Android. Unter Windows möchte ich dem User ermöglichen einen Ausdruck mit FastReportFMX zu erstellen. Unter Windows funktioniert das auch recht gut. Wenn ich nun als Ziel Android auswähle erhalte ich "[DCC Fataler Fehler] AppMain.pas(14): F2613 Unit 'FMX.frxClass' nicht gefunden." ALso habe ich in der Uses Anweisung das Ganze erweitert:
Code:
Die anderen Reportfunktionen habe ich ebenfalls mit dieser Compileranweisung ausgeklammert.
{$ifdef MSWINDOWS} ,FMX.frxClass {$endif MSWINDOWS} // Nur bei Windows, nicht bei Android
In der TForm Class ebenfalls:
Code:
Aber beim übersetzen wird die "uses" immer wieder um diesen Text erweitert: "FMX.frxClass" und führt
...
{$ifdef MSWINDOWS} FR: TfrxReport; {$endif MSWINDOWS} ... beim übersetzen natürlich zum Fehler. Ein Versuch diese Compileranweisung in dem Formular über die Report-Komp. (TfrxReport) einzubinden, mit "Ansicht Formular als Text". Hat bei meinen Versuchen zur Zerstörung des Formulars geführt. Angeblich konnte das Formular nicht gespeichert werden wegen ungültiger Zeichen. Selbst das löschen der Einträge konnte diesen Defekt nicht mehr Rückgängig machen. Ich musste das Formular aus einen SCCS-System zurücksichern. Wie bekomme ich das sauber hin, dass diese Komponente bei Android als Ziel für den Editor/Compiler nicht mehr vorhanden ist? Gibt es da irgendwo einen Trick? Thorsten |
AW: FastReport in Projekt verwenden wenn Ziel auch Android ist
Zitat:
Sherlock |
AW: FastReport in Projekt verwenden wenn Ziel auch Android ist
Zitat:
ok, das schaue ich mir mal an. Das erstellen der Komponente kann ich ja dann im FormCreate machen. Problem ist hier wahrscheinlich nur, das ich nicht mehr in den Fast-Report Designer komme. In der Embarcadero-Version funktioniert der Designer-Aufruf wohl nicht aus dem Programm, sondern nur auf der Komponente im Kontextmenü. Die Vollversion möchte ich mir noch nicht kaufen, solange ich nicht sicher sagen kann das alles gut funktioniert. Aber dafür kann ich mir erstmal ein kleines Programm erstellen um den Designer mit dem Formular getrennt zu starten. Thorsten |
AW: FastReport in Projekt verwenden wenn Ziel auch Android ist
Ja, im Prinzip musst Du das Design des Formulars in einer anderen App erledigen, und das Formular dann zur Laufzeit in der eigentlichen App laden. Das sollte eigentlich gehen, mit Reports habe ich seit Ewigkeiten nichts mehr gemacht.
Sherlock |
AW: FastReport in Projekt verwenden wenn Ziel auch Android ist
Hallo Sherlock,
ich habe mich vor langer Zeit mal mit dem generieren von Komponenten zur Laufzeit beschäftigt. Ich muss doch eigentlich die erstellte Fastreport-Komponente beim Parent TForm1 eintragen oder?
Code:
Die Zeile "FR.Parent := Self;" führt zum Fehler "[dcc32 Fehler] AppMain.pas(604): E2010 Inkompatible Typen: 'TfrxComponent' und 'TForm1'"
procedure TForm1.FormCreate(Sender: TObject);
begin {$ifdef MSWINDOWS} Form1.Width:=Round(Screen.WorkAreaWidth); Form1.Height:=Round(Screen.WorkAreaHeight); AppFilePath := ExtractFilePath(ParamStr(0)); FR := TfrxReport.Create(Self); FR.Parent := Self; {$endif MSWINDOWS} end; ... ... ... procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin {$ifdef MSWINDOWS} Fr.Free; {$endif MSWINDOWS} end; ... Lass ich das FR.Parent weg, scheint es zwar zu funktionieren, bin mir aber nicht sicher ob das auf Dauer ok ist. Thorsten |
AW: FastReport in Projekt verwenden wenn Ziel auch Android ist
Ja, der Parent sollte eigentlich das sein, wo der Report drauf liegt. Auch beim Create solltest Du den Owner mit angeben, also wieder die Form.
Sherlock |
AW: FastReport in Projekt verwenden wenn Ziel auch Android ist
TfrxReport.Create(Self);
Free nicht nötig :angle2: Zitat:
Wird die Form direkt mit Free/Destroy freigeben, dann wird OnClose garnicht mehr aufgerufen. Zitat:
Width:= oder Self.Width:= |
AW: FastReport in Projekt verwenden wenn Ziel auch Android ist
Hallo Sherlock,
danke für die Idee mit der Laufzeitgenerierung :thumb: Zitat:
danke für die Info :-) Zitat:
Thorsten |
AW: FastReport in Projekt verwenden wenn Ziel auch Android ist
Zitat:
Delphi-Quellcode:
.
TWinControl
Delphi-Quellcode:
ist aber keins: TfrxReport -> TfrxComponent -> TComponent
TfrxReport
|
AW: FastReport in Projekt verwenden wenn Ziel auch Android ist
Zitat:
Sherlock |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 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