ihr wisst ja das ich Anfänger bin. Ihr habt mir schon so oft geholfen und nun habe ich ein Unit Fensterpositionen geschrieben das ich hier posten möchte für die, die auch am Anfang stehen und sich fragen wie man denn schnell die Fensterposition umsetzen kann.( ich weiß für die Profis ist das Pipifaz aber für mich nicht)
Code: Alles auswählen
procedure TForm1.ImageButtonTestClick(Sender: TObject);
begin
// Formular erstellen, falls es noch nicht existiert !!!SEHR WICHTIG!!!
if not Assigned(FAuswertungen) then
FAuswertungen:= TFAuswertungen.Create(Self);
FensterPositionieren(FAuswertungen, Mitte);
FAuswertungen.show;
end; Die Unit einbinden in die Hauptunit. Und hier die Unit für die Fensterpositionen:
Code: Alles auswählen
unit Fensterposition;
{$mode ObjFPC}{$H+}
interface
uses
Classes, Forms, Windows, SysUtils;
type
TPosition = (LinksOben, RechtsOben, LinksUnten, RechtsUnten, Mitte);
procedure FensterPositionieren(Form: TForm; Position: TPosition);
implementation
procedure FensterPositionieren(Form: TForm; Position: TPosition);
const
RandAbstand = 5; // ca. 1 cm Abstand
var
WorkArea: TRect;
X, Y: Integer;
begin
WorkArea := Screen.WorkAreaRect; // Arbeitsbereich ohne Taskleiste
case Position of
LinksOben:
begin
X := WorkArea.Left + RandAbstand;
Y := WorkArea.Top + RandAbstand;
end;
RechtsOben:
begin
X := WorkArea.Right - Form.Width - RandAbstand;
Y := WorkArea.Top + RandAbstand;
end;
LinksUnten:
begin
X := WorkArea.Left + RandAbstand;
Y := WorkArea.Bottom - Form.Height - RandAbstand;
end;
RechtsUnten:
begin
X := WorkArea.Right - Form.Width - RandAbstand;
Y := WorkArea.Bottom - Form.Height - RandAbstand;
end;
Mitte:
begin
X := WorkArea.Left + (WorkArea.Width - Form.Width) div 2;
Y := WorkArea.Top + (WorkArea.Height - Form.Height) div 2;
end;
end;
Form.Left := X;
Form.Top := Y;
end;
end.