[Delphi] Przycisk X (Zamknij)

0

Używam takiego kodu w OnCreate formy:

var hMenuHandle: Integer;
begin
 hMenuHandle := GetSystemMenu(Handle, False);
  if (hMenuHandle <> 0) then
    DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);

aby mieć przycisk X zamykający formę nieaktywny (enabled=false)

Teraz pytanie:
Jak go teraz z powrotem włączyć z poziomu kodu, aby miał enabled=true ??

0

Spróbuj z AppendMenu() i podaj SC_CLOSE jako Id.

0

Już próbowałem i nie działa

0

Moze sprobuj tak (przy usuwaniu):

var i:integer;
begin
 i:=GetClassLong(handle,GCL_STYLE);
 i:=i or CS_NOCLOSE;
 SetClassLong(handle,GCL_STYLE,i);
 ...

A przy odtwarzaniu:

var i:integer;
begin
 i:=GetClassLong(handle,GCL_STYLE);
 i:=i and not CS_NOCLOSE;
 SetClassLong(handle,GCL_STYLE,i);
 ...

Tylko efekt dopiero widac, gdy np. klikniesz na caption. Musisz jakos zrobic update okna.

0

moze tak...
[Form1 properties] -> borderIcons -> BiSystemMenu := false! to bedzie niewidoczny, true= widoczny:P

0

Musisz jakos zrobic update okna.

Nie wiem jak odświerzyć pasek tytułowy z przyciskami :(

0

Np:

showwindow(handle,SW_HIDE);
showwindow(handle,SW_SHOWDEFAULT);

Oczywiscie po SetClassLong()

0

ShowWindows() does'n work ;(

0

A ja napisalem ShowWindows()? Nie, chodzi o ShowWindow(), bez s na koncu.

0
Twardy napisał(a)

A ja napisalem ShowWindows()? Nie, chodzi o ShowWindow(), bez s na koncu.

Miałem na myśli wersje bez "s" na końcu; nie działa to ;(

1 użytkowników online, w tym zalogowanych: 0, gości: 1