Einzelnen Beitrag anzeigen

norwegen60

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

AW: Quickreport nach Neustart wieder an gleicher Position öffnen

  Alt 1. Feb 2020, 19:41
Da TQRStandardPreview von TForm abgeleitet ist, wäre auch TForm(Sender).Left korrekt. Das erspart eventuell den einen Eintrag in der Uses-Anweisung.

Ich persönlich würde auch das Setzen der Position im selben Event vorziehen. Dann hat man beide Teile des Codes an einer Stelle.
Danke für den Tip.

Habe zwar noch mal grübeln müssen was du meinst aber das hat das Handling tatsächlich stark vereinfacht.

Aus
Delphi-Quellcode:
procedure TrptStdCalibration.FormCreate(Sender: TObject);
begin
  u_Registry.RestoreFormPos(self);
  qrStdCal.PreviewLeft := self.Left;
  qrStdCal.PreviewTop := self.Top;
  qrStdCal.PreviewWidth := self.Width;
  qrStdCal.PreviewHeight := self.Height;
end;

procedure TrptStdCalibration.qrStdCalStandPrevEvent(Sender: TObject; eventType: TStandPrevEventType; contName: string;
  var Handled: Boolean);
begin
  if eventType = spClose then
  begin
    // Zugriff auf Self.Left, qrStdCal.Left und qrStdCal.PreviewLeft liefert falsche Werte => Zugriff über Sender
    self.Left := TQRStandardPreview(Sender).Left;
    self.Top := TQRStandardPreview(Sender).Top;
    self.Width := TQRStandardPreview(Sender).Width;
    self.Height := TQRStandardPreview(Sender).Height;

    u_Registry.SaveFormPos(self);
  end;
end;
wurde
Delphi-Quellcode:
  case eventType of
    spClose: u_Registry.SaveFormPos(TForm(Sender));
    spOpen: u_Registry.RestoreFormPos(TForm(Sender));
  end;

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