Einzelnen Beitrag anzeigen

Mysterio08

Registriert seit: 11. Jan 2009
142 Beiträge
 
#9

AW: Form auf Form (nötig?)

  Alt 4. Jan 2011, 16:04
Ich hab es jetzt geschafft. Ich poste mal den ganzen dazugehörigen Code:
Delphi-Quellcode:
procedure TFormMain.ShowDarkLayer;
(*Create a new form that covers all components (except the status bar). Set black background but transparent*)
var
  Buffer: Integer; //Pseudo variable since the parameter list of "FormConstrainedResize" requires a variable
begin
  FormLayer := TForm.Create(FormMain);
  FormLayer.Name := 'FormLayer';
  FormLayer.BorderStyle := bsNone;
  FormLayer.AlphaBlend := True;
  FormLayer.AlphaBlendValue := 100;
  FormLayer.Color := clBlack;
  FormLayer.BringToFront;
  FormLayer.Cursor := crNo;
  FormLayer.Show;
  FormLayer.Hint := 'This form is closed since no connection is established';
  FormLayer.ShowHint := True;
  Application.HintPause := 0;
  FormConstrainedResize(Self, Buffer, Buffer, Buffer, Buffer);
end;

procedure TFormMain.FormConstrainedResize(Sender: TObject; var MinWidth, MinHeight, MaxWidth, MaxHeight: Integer);
(*This procedure is necessary if the dark layer is available and the form is resized or moved!*)
begin
  if FormLayer <> nil then begin
    FormLayer.Left := Left + 7;
    FormLayer.Top := Top + 28;
    FormLayer.Width := ClientWidth+2;
    FormLayer.Height := ClientHeight + 5
  end
end;
Die einzige noch bestehende "Schwachstelle": Wenn man unter Windows 7 mit dem Fenster wackelt, sodass sich alle vorher auf diese Weise minimierten Fenster wieder einblenden, bleibt die schwarze "Folie" über der Form in paar Pixel weiter weg. Aber damit kann ich leben. Bewegt oder verändern man die Größe ist alles wieder korrekt

Geändert von Mysterio08 ( 4. Jan 2011 um 16:07 Uhr)
  Mit Zitat antworten Zitat