Einzelnen Beitrag anzeigen

norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
504 Beiträge
 
Delphi 12 Athens
 
#5

AW: Quickreport nach Neustart wieder an gleicher Position öffnen

  Alt 1. Feb 2020, 15:04
Funktioniert. Allerdings immer noch nicht ganz nachvollziehbar, was genau passiert
Mein Code
Delphi-Quellcode:
procedure TrptStdCalibration.qrStdCalStandPrevEvent(Sender: TObject; eventType: TStandPrevEventType; contName: string;
  var Handled: Boolean);
var
  s :String;

begin
  if eventType = spClose then
  begin
    Self.Left := Self.Left; // = 175
    Self.Left := qrStdCal.Left; // = 16
    Self.Left := qrStdCal.PreviewLeft; // = 25
    Self.Left := TForm(Sender).Left; // = 1526
    Self.Left := TQuickRep(Sender).Left; // = 1526
    Self.Left := TQuickRep(Sender).PreviewLeft; // = 2555888800
    s := Sender.ClassName; // = 'TQRStandardPreview'

    // d.h. Korrekt ist
    Self.Left := TQRStandardPreview(Sender).Left; // = 1526
    

  u_Registry.SaveFormPos(Self);
  end;
TrptStdCalibration = TForm
qrStdCal = TQuickReport

d.h. die Komponenten selber liefern falsche Werte. Greife ich aber über Sender zu passt es.

Nach etwas probieren habe ich herausbekommen, dass Sender vom Typ TQRStandardPreview ist und der wird in QRPrev definiert
Korrekt ist also
Left := TQRStandardPreview(Sender).Left; Die Left-Zuweisungen haben nur dazu gedient, um nach Haltepunkt alle Werte anzuzeigen

Im Anhang ein Screenshot mit der Lage des Reports
Miniaturansicht angehängter Grafiken
quickreport.jpg  

Geändert von norwegen60 ( 1. Feb 2020 um 15:39 Uhr)
  Mit Zitat antworten Zitat