Ich habe folgendes Fenster:
Delphi-Quellcode:
type
TfrmPreview = class(TForm)
TntLabel1: TTntLabel;
btnPrevious: TTntButton;
btnNext: TTntButton;
TntLabel2: TTntLabel;
procedure FormPaint(Sender: TObject);
procedure btnNextClick(Sender: TObject);
procedure btnPreviousClick(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
private
{ Private declarations }
FFotoBook: TFotoBook;
PageID: Integer;
procedure Next;
procedure Previous;
public
{ Public declarations }
constructor Create(AOwner: TComponent; FotoBook: TFotoBook); reintroduce;
end;
var
frmPreview : TfrmPreview;
implementation
{$R *.dfm}
procedure TfrmPreview.btnNextClick(Sender: TObject);
begin
Next;
end;
procedure TfrmPreview.btnPreviousClick(Sender: TObject);
begin
Previous;
end;
constructor TfrmPreview.Create(AOwner: TComponent; FotoBook: TFotoBook);
begin
inherited Create(AOwner);
FFotoBook := FotoBook;
end;
procedure TfrmPreview.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
case Key of
VK_ESCAPE: Close;
VK_RIGHT, VK_DOWN, VK_SPACE, VK_NEXT: Next;
VK_LEFT, VK_UP, VK_PRIOR: Previous
end;
Key := 0;
end;
procedure TfrmPreview.FormPaint(Sender: TObject);
begin
FFotoBook.PageParent := Self;
PageID := 0;
FFotoBook.Display(PageID);
end;
procedure TfrmPreview.Next;
begin
TntLabel2.Caption := Format('%d / %d', [PageId, FFotoBook.PageCollection.Count]);
if PageID < FFotoBook.PageCollection.Count - 1 then
begin
Inc(PageID);
//FFotoBook.Display(PageID);
end;
btnNext.Enabled := PageID <> FFotoBook.PageCollection.Count - 1;
end;
procedure TfrmPreview.Previous;
begin
ShowMessage('Previous');
end;
Aufruf:
Delphi-Quellcode:
procedure TFotoBook.ShowPreview;
var
TempPageParent: TWinControl;
begin
// Seiten Parent sichern
TempPageParent := Self.PageParent;
Self.ZoomFactor := ZOOMFACTORPREVIEW;
with TfrmPreview.Create(nil, Self) do
ShowModal;
Self.ZoomFactor := ZOOMFACTORDESIGN;
Self.PageParent := TempPageParent;
Self.Display(0);
end;
So bald ich das Formular
frmPreview aufrufe, habe ich eibe CPU Last von 99%, da geht natürlich nix mehr, schließe ich es wieder, wird wieder alles normal. Das Formualr
frmPreview wird maximiert und mit einem schwarzen Hintergrund angezeigt.
Warum verhält sich das so und was mache ich falsch?