2012-12-08 7 views

Odpowiedz

15

Najpierw ustaw BorderStyle do bsNone w czasie projektowania. Następnie zadeklarować procedurę CreateParams tak:

type 
    TForm1 = class(TForm) 
    private 
    protected 
    procedure CreateParams(var Params: TCreateParams); override; // ADD THIS LINE! 
    { Private declarations } 
    public 
    { Public declarations } 
    end; 

i wdrożyć go jak

procedure TForm1.CreateParams(var Params: TCreateParams); 
begin 
    inherited; 
    Params.Style := Params.Style or WS_THICKFRAME; 
end; 
+0

Czy wygląda i zachowuje się poprawnie również w systemie Windows XP? [+1] – TLama

+0

@ TLama: Nie pamiętam i nie mam XP do przetestowania, ale chyba nie powinno być żadnych problemów. (Czy nie ma niebieskiego grubego obramowania zamiast szklanego?) –

+0

Dzięki Andreas, czy istnieje sposób na modyfikację rozmiaru obramowania? –

2

Ustaw BorderStyle do bsNone w Object Inspector

+5

Samo to nie wystarcza. –

+0

@AndreasRejbrand Dlaczego nie? –

+0

Porównaj wyniki z obrazem dostarczonym przez OP. Cała szklana granica (i cień) zniknęła. –

1

Dla lepszego stylu granicznego, można dodać flagę WS_BORDER.

jak poniżej:

procedure TForm1.CreateParams(var Params: TCreateParams); 
 
begin 
 
    inherited; 
 
    Params.Style := Params.Style or WS_BORDER or WS_THICKFRAME; 
 
end;

Uwaga niż miękki linia jest narysowana w ramie granicznej.