Folgende Aufgabenstellung: Erstelle eine Auswahlmöglichkeit von Papierformaten zum Speichern in eine DB-Tabelle. Benutze die Einträge eines Datenbankrecords danach mit Lazreport (genauer: TlrCodeReport) um ein Seitenformat mit SetPaper() anzugeben.
Aus Neugierde hab ich das mal dem Codepilot vorgelegt. Ich bekam nix was ich nicht schon vorher wusste und der Code war auch falsch - egal, anderer Thread.
Q1: LR_Prntr.TfrPrinter stellt eine Funktion FillPapers zur Verfügung.
Das passt an sich, aber es werden nur die Namen der vom Drucker unterstützten Papierformate gesucht. Nachdem man bei SetPaper() die Typnummer des Seitenformats braucht, muss man die Namen in Typnummern auflösen.
Code: Alles auswählen
TlrCodeReport.SetPaper(ASize: integer; AOr: TPrinterOrientation = poPortrait;
AWidth: integer = 0; AHeight: integer = 0);
Q2: Um die Größe des ausgewählten Seitenformats anzuzeigen, muss ich ich irgendwie an die Definitionen aus dem Array Paperinfo heran ??? Oder bekommt man die aus dem Objekt heraus, das in der übergebenen Stringliste hängt?
Q3: Da es ja nicht nur die vom Drucker unterstützten Seitenformate gibt, für die man einen Report erstellen kann, müsste man, um eine sinnvolle Auswahl ALLER Seitenformate (118 !!) zu ermöglichen wohl eine andere Strategie als eine Combobox wählen. Auch dazu müsste ich an ALLE Informationen zu den Seitenformaten heran kommen.
Zudem scheint es für Windows und Nicht-Windows andere Namen für die Seitenformate zu geben ????
Im Projektbeispiel habe ich (erstmal) dazu eine Lookuptabelle (in Kombination mit einer DBLookupCombobox) verwendet, die ich aber nicht befüllen kann
Als ungefäre Designhilfe habe ich hinter dem Button "Show Page Format Window" das Einstellfenster aus LazReport eingebaut.
Das kann ich anzeigen, nur funktioniert es nicht richtig. Aber indem ich es bei einem anderen Report (im Designmodus) getestet habe, bekomme ich dort auch nur die vom Drucker unterstützen Seitenformate zur Auswahl angezeigt.
Ich weiß, ich kämpfe hier auch mit syntaktischen und Programmierfragen --Hilfe ist trotzdem erwünscht, wenn nötig nehme ich auch leichte Schläge auf den Hinterkopf, wenns hilft.

THX