HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Rendszer menü elemeinek láthatóságát szabályzó komponens


Példaprogram letöltése

4120 bájt

Ha a Form rendszermenüjének meglévő elemei közül (bezárás, teljes méret, kis méret, stb.) néhány pontot szeretnénk eltávolítani, akkor nagy segítségünkre lesz a példában elkészített TRemoveSystemMenu komponens, mely képes bármely rendszermenü elemét eltüntetni, vagy láthatóvá tenni.

A mellékelt példaprogram megnyitása előtt a RemoveSystemMenu.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
Első lépésként létre kell hoznunk egy felsorolt típust, melyből halmaz típust is készítünk. Ezt használjuk fel a komponens SystemMenuItems property létrehozásakor. A komponens használatakor csak annyi a teendő, hogy e property-ben kiválasszuk, hogy melyik rendszermenü legyen látható és melyik ne. A komponens a program futásakor automatikusan állítja a menüpontok láthatóságát, így más teendőnk nincs.
TSystemMenuItem = (smClose, smMaximize, smMinimize, smMove, smNextWindow, smRestore, smSize);
TSystemMenuItems = set of TSystemMenuItem;
A komponens konstruktorában eltároljuk egy belső változóba a Form rendszermenüjének azonosítóját, melyet a GetSystemMenu függvény szolgáltat.
constructor TRemoveSystemMenu.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FSystemMenu:=GetSystemMenu((AOwner as TForm).Handle, false);
end;
Amikor a komponens Loaded eljárása fut és a program futási időben van, akkor ellenőrizzük sorban, hogy melyik menüpontot kell eltávolítanunk a rendszermenüből.
procedure TRemoveSystemMenu.Loaded;
begin
  if not (csDesigning in ComponentState) then begin
Az egyes menüpontokat szükség esetén a DeleteMenu függvény hívásával tudjuk letörölni.
    if (smClose in FSystemMenuItems) then begin
      DeleteMenu(FSystemMenu, SC_CLOSE, MF_BYCOMMAND);
    end;
    if (smMaximize in FSystemMenuItems) then begin
      DeleteMenu(FSystemMenu, SC_MAXIMIZE, MF_BYCOMMAND);
    end;
    ...
  end;
end;

Cikksorozat

#IDKategóriaCikk címeSorozat
3643DelphiFormEditor1. rész
3689DelphiProject és modul információk2. rész
3719DelphiMegnyitás, mentés3. rész
3749DelphiKódszerkesztő4. rész
3778DelphiForráskód írása, olvasása5. rész
3809DelphiInterfész a kódszerkesztő ablakhoz6. rész
3839DelphiKijelölt blokkok7. rész
3869DelphiA buffer beállításai8. rész
3899DelphiKörnyezeti és Project opciók9. rész
3929DelphiKurzor a kódszerkesztőben10. rész
3959DelphiKeresés és csere beállításai11. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2003 évkönyv 647. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |