Hallo,
mich würde interessieren, wie man es hinbekommt, dass z.B. am oberen Bildschirmrand ein kleines Programm eingeblendet wird, dass von anderen Programmen nicht überlagert werden kann.
In meiner Anwendung sollen dort bestimmte Statusanzeigen laufen, die permanent sichtbar sein sollen. Andere Programme sollen also auch nach dem Maximieren diesen Bereich nicht überlagern.
Ich habe bereits folgenden Ansatz versucht:
var aRect, OrgRect:TRect;
procedure TForm1.FormCreate(Sender: TObject);
begin
SystemParametersInfo(SPI_GetWorkArea,0,@OrgRect,0) ;
Form1.Borderstyle := bsNone;
Form1.top := 0;
aRect := OrgRect;
aRect.Top := 50;
SystemParametersInfo(SPI_SETWORKAREA, 0, @aRect, SPIF_SendWinIniChange);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
SystemParametersInfo(SPI_SETWORKAREA, 0, @OrgRect, SPIF_SendWinIniChange);
end;
Leider klappt diese Lösung nicht richtig:
1. Die Desktop-Symbole rutschen nicht nach unten. Die Software überlagert also z.B. den Arbeitsplatz
2. Das Formular wird nicht am oberen Rand sondern 50 Pixel tiefer angezeigt.
Wer kennt die Lösung?
Gerd
mich würde interessieren, wie man es hinbekommt, dass z.B. am oberen Bildschirmrand ein kleines Programm eingeblendet wird, dass von anderen Programmen nicht überlagert werden kann.
In meiner Anwendung sollen dort bestimmte Statusanzeigen laufen, die permanent sichtbar sein sollen. Andere Programme sollen also auch nach dem Maximieren diesen Bereich nicht überlagern.
Ich habe bereits folgenden Ansatz versucht:
var aRect, OrgRect:TRect;
procedure TForm1.FormCreate(Sender: TObject);
begin
SystemParametersInfo(SPI_GetWorkArea,0,@OrgRect,0) ;
Form1.Borderstyle := bsNone;
Form1.top := 0;
aRect := OrgRect;
aRect.Top := 50;
SystemParametersInfo(SPI_SETWORKAREA, 0, @aRect, SPIF_SendWinIniChange);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
SystemParametersInfo(SPI_SETWORKAREA, 0, @OrgRect, SPIF_SendWinIniChange);
end;
Leider klappt diese Lösung nicht richtig:
1. Die Desktop-Symbole rutschen nicht nach unten. Die Software überlagert also z.B. den Arbeitsplatz
2. Das Formular wird nicht am oberen Rand sondern 50 Pixel tiefer angezeigt.
Wer kennt die Lösung?
Gerd
Comment