首页  ç¼–辑  

MDI�窗�的显示和关闭问题

MDI×Ó´°¿ÚµÄÏÔʾºÍ¹Ø±ÕÎÊÌâ

ÎÒÃÇÔÚ±à³Ìʱ£¬³£³£Ê¹ÓÃMDI´°¿Ú£¬ÒòΪËüÔÚÐí¶à³¡ºÏʹÎÒÃǵÄ

³ÌÐò·ç¸ñ¸üͳһ¡£µ«Ê¹ÓÃMDI´°¿ÚÒ²ÓÐһЩ²»·½±ãµÄµØ·½£¬Èç¹û

²»×¢ÒâÒ²»á¸øÎÒÃǵıà³Ì´øÀ´Âé·³¡£ÒÔÏÂÊÇһЩҪעÒâµÄµØ·½¡£

(Ò»)ÒªÊÇÄã²»°ÑMDI×Ó´°¿Ú´Ó×Ô¶¯½¨Á¢µÄ´°¿ÚÁбíÖÐÒÆÈ¥£¬³ÌÐò

Ò»ÔËÐУ¬×Ó´°¿Ú¾Í»á×Ô¶¯³öÏÖ¡£¶øµ±Äã°ÑMDI×Ó´°¿Ú´Ó×Ô¶¯½¨Á¢µÄ

´°¿ÚÁбíÖÐÒÆÈ¥ºó£¬ÈçºÎÅжÏMDI×Ó´°¿ÚÒѽ¨Á¢¶ø²»ÖÁÓÚÏÔʾÁ½¸ö

Ò»ÑùµÄ´°¿ÚÓÖ³ÉÁËÒ»¸öÎÊÌâ¡£

µ±¹Ø±ÕMDI×Ó´°¿Úºó£¬²»Äܼòµ¥µÄÓÃif FormChild1=nil then ...

À´ÅжÏËüÊÇ·ñÒѽ¨Á¢£¬ÒòΪ´°¿ÚÔÚFreeºó²¢²»ÊÇnil¶ø¿ÉÄÜÊǸö

ÎÞЧµÄµØÖ·Öµ¡£ÎÒÃÇ¿ÉÒÔÓÃÏÂÃæµÄº¯ÊýÀ´Åжϣº

function TfrmMain.IsForm(formClass : string) : boolean;

{Åжϴ°¿ÚÊÇ·ñÒѽ¨Á¢¡£fromClassÊÇ´°¿ÚµÄÀàÃû×Ö·û´®Èç'TForm2'}

var

 i : integer;

begin

 result := False;

 for i := 0 to Application.ComponentCount -1 do

 begin

   if (Application.Components[i].ClassName = formClass) then

   begin

     result := True;

     Break;

   end;

 end;

end;

µ±È»£¬Õâ¸öº¯ÊýÒ²¿ÉÒÔÅжϷÇMDI´°¿Ú¡£

(¶þ)Ò»°ãµÄ´°¿ÚÔÚCloseʱ£¬Ä¬È϶¯×÷ÊÇHide£¬¶øMDI×Ó´°¿ÚÔÚCloseʱ

ĬÈÏÊÇMinimize¡£ÎªÁËÄÜÏóÒ»°ã´°¿ÚÒ»Ñù¹Ø±ÕËü£¬ÎÒÃÇÓ¦ÔÚMDI×Ó

´°¿ÚµÄOnCloseʼþ´úÂëÖÐÉèÖÃAction=caFree;ʹËü´ÓÄÚ´æÖÐÊÍ·Å

µô£¬×¢Ò⣺Äã²»ÄÜÓÃAction:=caHide¡£¹Ø±ÕºóÒªÔÙÏÔʾ¾Í±ØÐëÔÙ

CreateÒ»´Î²ÅÐС£Äã¿ÉÒÔÓÃÉÏÃæµÄ·½·¨Åжϴ°¿ÚÊÇ·ñÒѽ¨Á¢£¬Ã»ÓоÍ

ÏȽ¨Á¢£¬Òѽ¨Á¢¾ÍÖ±½Óshow¡£

(Èý)Äã¿ÉÒÔÔÚÖ÷´°¿ÚµÄÖ÷²Ëµ¥ÉϼÓÒ»¸ö¡°´°¿Ú¡±²Ëµ¥ÏÔÙΪËü¼ÓÈë

¼¸¸ö³£Óô°¿Ú²Ù×÷ÃüÁî×Ӳ˵¥¡£½«Ö÷´°¿ÚµÄWindowMenuÉèÖÃΪ¡°´°¿Ú¡±

²Ëµ¥Ïî¡£µ±Äã´ò¿ªÒ»¸öMDI×Ó´°¿Úʱ£¬¡°´°¿Ú¡±²Ëµ¥ÏîÏÂÃæ»á¶àÒ»¸öÒÔ

×Ó´°¿Ú±êÌâÃüÃûµÄ×Ӳ˵¥£¬²¢ÇÒµ±Ç°´°¿Ú¶ÔÓ¦µÄ²Ëµ¥Ç°ÓÐÒ»¸ö±ê¼Ç¡£

Ñ¡Ôñ²Ëµ¥¿ÉÒÔ½«¶ÔÓ¦µÄ´°¿Úµ÷µ½×îÇ°ÃæÀ´¡£ºÜ·½±ã°É£¿²»¹ýÒ»¶¨Òª×¢Òâ

¡°´°¿Ú¡±²Ëµ¥ÏîÔÚÉè¼ÆÊ±ÖÁÉÙÒªÓÐÒ»¸ö×Ӳ˵¥Ï·ñÔò¾Í²»ÄÜÕý³£¹¤×÷¡£