亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? winskindlg.pas

?? 超級(jí)報(bào)表系統(tǒng)軟件VclSkin.v2.60.4.29.完整源代碼版.rar
?? PAS
?? 第 1 頁 / 共 2 頁
字號(hào):
   if atform<>nil then begin
      aform:=Twinskinform.create(atform);
      aform.hwnd:=ahwnd;
      aform.InitTform(adata,atform)
   end else begin
      aform:=Twinskinform.create(nil);
      aform.hwnd:=ahwnd;
      aform.initskin(adata);
   end;

   flist.add(aform);
   postMessage(ahwnd, CN_NewForm, 0, 1000);
   result:=true;
end;

function TSkinManage.DeleteForm(aHwnd:THandle):boolean;
var i: integer;
    sf :TWinSkinform;
begin
   result:=false;
   for i:=0 to flist.count-1 do begin
      sf:=TWinSkinform(flist[i]);
      if sf.hwnd=ahwnd then begin
         if sf.FForm = nil then exit;
         sf.Skinstate:=skin_Destory;
         sf.unsubclass;
         flist.delete(i);
         sf.free;
         sf:=nil;
         result:=true;
         break;
      end;
   end;
end;

procedure TSkinManage.DeleteForm2(aHwnd:THandle);
var i: integer;
    sf :TWinSkinform;
begin
   for i:=0 to flist.count-1 do begin
      sf:=TWinSkinform(flist[i]);
      if sf.hwnd=ahwnd then begin
         flist.delete(i);
         break;
      end;
   end;
end;

procedure TSkinManage.DeleteDeleted;
var i: integer;
    sf :TWinSkinform;
begin
   for i:=flist.count-1 downto 0 do begin
      sf:=TWinSkinform(flist[i]);
      if sf.skinstate=skin_Deleted then begin
         flist.delete(i);
         sf.free;
      end;
   end;
end;

procedure TSkinManage.DeleteAllForms;
var i: integer;
    sf :TWinSkinform;
begin
   for i:=flist.count-1  downto 0 do begin
      sf:=TWinSkinform(flist[i]);
      sf.Skinstate:=skin_Destory;
      sf.unsubclass3;
      flist.delete(i);
      sf.free;
   end;
   flist.free;
end;

procedure TSkinManage.DeleteForm3;
var i: integer;
    sf :TWinSkinform;
begin
   for i:=flist.count-1 downto 0 do begin
      sf:=TWinSkinform(flist[i]);
      if sf.skinstate=skin_deleted then begin
         flist.delete(i);
         sf.free;
      end;
   end;
end;

procedure TSkinManage.AddSkinData(adata: Pointer);
begin
   dlist.add(adata);
end;

procedure TSkinManage.RemoveSkinData(adata: Pointer);
var i:integer;
begin
   i:= dlist.indexof(adata);
   if i<>-1 then begin
     dlist[i]:=nil;
     dlist.delete(i);
   end;
end;

procedure TSkinManage.DeleteAllMenus;
var i: integer;
    sm :TWinSkinPopMenu;
begin
   for i:=0 to mlist.count-1 do begin
      sm:=TWinSkinPopMenu(mlist[i]);
      sm.free;
   end;
   mlist.clear;
   mlist.free;
end;

procedure TSkinManage.SetMenu;
var i: integer;
    sm :TWinSkinPopMenu;
begin
//   i:= mlist.count;
//   if i=0 then exit;
   for i:=0 to mlist.count-1 do begin
      sm:=TWinSkinPopMenu(mlist[i]);
      sm.ownerdraw:=true;
   end;
end;

function  TSkinManage.FindSkinForm(aHwnd:THandle):dword;
var i: integer;
    sf :TWinSkinform;
begin
   result:=0;
   for i:=0 to flist.count-1 do begin
      sf:=TWinSkinform(flist[i]);
      if sf.hwnd=ahwnd then begin
         result:=dword(sf);
         break;
      end;
   end;
end;

function TSkinManage.AddMenu(aHwnd:THandle):boolean;
var amenu:TWinSkinPopMenu;
    s:string;
    adata:Tskindata;
    aptr:pointer;
    isskin:integer;
begin
   result:=false;
   if not active then exit;
   isskin:=sendmessage(ahwnd,CN_IsSkined,0,0);
   if isskin=1 then exit;

   if findskinMenu(ahwnd) then exit;

   FindSkindata(aptr,ahwnd);
   if aptr=nil then exit;

   adata:=Tskindata(aptr);
   if (adata.empty) or (not(xcMainmenu in adata.SkinControls)) then exit;

   amenu:=TWinSkinPopMenu.create;
   amenu.InitSkin(ahwnd,adata,0);
   Mlist.add(amenu);
   if menuactive then amenu.ownerdraw:=true;
end;

function TSkinManage.DeleteMenu(aHwnd:THandle):boolean;
var i: integer;
    sm :TWinSkinPopMenu;
begin
   result:=false;
   for i:=0 to mlist.count-1 do begin
      sm:=TWinSkinPopMenu(mlist[i]);
      if sm.hwnd=ahwnd then begin
         sm.unsubclass;
         mlist.delete(i);
         sm.free;
         result:=true;
         break;
      end;
   end;
   if mlist.count=0 then menuactive:=false;
end;

function  TSkinManage.FindSkinMenu(aHwnd:THandle):boolean;
var i: integer;
    sm :TWinSkinPopMenu;
begin
   result:=false;
   for i:=0 to mlist.count-1 do begin
      sm:=TWinSkinPopMenu(mlist[i]);
      if sm.hwnd=ahwnd then begin
         result:=true;
         break;
      end;
   end;
end;

procedure TSkinManage.UpdateSkinMenu(amenu:Hmenu);
var i: integer;
    mh:Thandle;
begin
{   mh:=FindWindowex(0,0,'#32768',nil);
   if (mh<>0) and (mh<>smenu.hwnd) then begin
      smenu.InitSkin(mh,GSkinData,amenu);
   end;}
end;

function  TSkinManage.GetMenuBg(amenu:Hmenu):Tbitmap;
var i: integer;
begin
   result:=nil;
   for I:= 0 to mlist.count-1 do
      if TWinSkinPopMenu(mlist[i]).hmenu=amenu then begin
         result:=TWinSkinPopMenu(mlist[i]).menubg;
         break;
      end;
end;

procedure  TSkinManage.FindPopupMenu(amenu:Hmenu);
var i: integer;
begin
   for I:= 0 to PopupList.count-1 do
      if TPopupMenu(PopupList[i]).handle=amenu then begin
         menuactive:=true;
         break;
      end;
end;

procedure  TSkinManage.SetMDIMax(b:boolean);
var i: integer;
    sf:Twinskinform;
begin
   if mdimax=b then exit;
   mdimax:=b;
   for I:= 0 to flist.count-1 do begin
      sf:=TWinSkinform(flist[i]);
      if sf.formstyle=sfsmdichild then  begin
        if b then begin
           if sf.crop then sf.Uncropwindow;
           sf.EnableSysbtn(b);
        end else begin
          if sf.windowstate<>swsmin then begin
            sf.windowstate:=swsnormal;
            sf.cropwindow;
            sf.EnableSysbtn(b);
            if not sf.crop then sf.refresh;
          end else sf.EnableSysbtn(true);
        end;
      end;
   end;
   if b then skinaddlog('***** SetMdiMax True')
   else skinaddlog('***** SetMdiMax Flase');
end;

procedure  TSkinManage.SetCaption(b:boolean);
var i: integer;
    sf:Twinskinform;
    dwstyle:Dword;
begin
   for I:= 0 to flist.count-1 do begin
      sf:=TWinSkinform(flist[i]);
      if sf.formstyle=sfsmdichild then  begin
        dwstyle := GetWindowLong( sf.hwnd, GWL_STYLE );
        dwstyle := dwstyle or WS_CAPTION;
        SetWindowLong( sf.hwnd, GWL_STYLE, dwstyle );
      end;
   end;
end;

function  TSkinManage.GetMDIChildNum:integer;
var i: integer;
    sf:Twinskinform;
begin
   result:=0;
   for I:= 0 to flist.count-1 do begin
      sf:=TWinSkinform(flist[i]);
      if sf.formstyle=sfsmdichild then
        inc(result);
   end;
end;

function TSkinManage.FindTForm(ahwnd:Thandle):Tform;
var i:integer;
begin
  result:=nil;
  for I := 0 to Screen.FormCount - 1 do  begin
    if Screen.Forms[I].handle=ahwnd then  begin
      Result := Screen.Forms[I];
      exit;
    end;
  end;
end;

procedure TSkinManage.SetAction(acode:integer;Interval:integer=250);
begin
   action:=acode;
   timer.Interval:=interval;
   if (state=skin_creating) then begin
     if acode=skin_Active then active:=true
     else if acode=skin_uninstall then active:=false;
   end else
      timer.enabled:=true;
end;

function EnumWindow(ahwnd :HWND;lParam: LPARAM):boolean;stdcall;
var s:string;
    r:Trect;
begin
   result:=false;
//   if (GetParent(ahwnd)= lparam) then begin
      s:=getwindowclassname(ahwnd);
      getwindowrect(ahwnd,r);
      skinaddlog(format('***enumWindow %1x,%s (%1d,%1d,%1d,%1d)',
             [ahwnd,s,r.left,r.top,r.right,r.bottom]));
      result:=true;
//   end;
end;

function EnumAddWindow(ahwnd :HWND;lParam: LPARAM):boolean;stdcall;
var s:string;
    r:Trect;
begin
   result:=true;
   Skinmanager.addform(ahwnd);
end;

procedure TSkinManage.DeleteSysbtn;
var i: integer;
    sf :TWinSkinform;
begin
   for i:= 0 to flist.count-1 do begin
      sf:=TWinSkinform(flist[i]);
      sf.DeleteSysbtn;
   end;
end;

function TSkinManage.initsb(ahwnd:Thandle):boolean;
begin
   result:=false;
   if SBinstall and (@pinitsb<>nil) then
       result := boolean(pinitsb(ahwnd));
end;

function TSkinManage.Uninitsb(ahwnd:Thandle):boolean;
begin
   result:=false;
   if SBinstall and (@pUninitsb<>nil) then
       result := boolean(pUninitsb(ahwnd));
end;

procedure TSkinManage.OnTimer(Sender: TObject);
var i: integer;
    sf :TWinSkinform;
    sd: TSkindata;
begin
   if UpdateData=nil then exit;
   sd := TSkindata(updateData);
   timer.enabled:=false;
   if sd.SkinFormtype = sfOnlyThisForm then begin
      case action of
        skin_uninstall:begin
          active:=false;
          DeleteDeleted;
          for i:= flist.count-1 downto 0 do begin
             sf:=TWinSkinform(flist[i]);
             if sf.fsd = sd then begin
                 sf.unsubclass;
                 sf.repaint(sf.hwnd);
                 flist.delete(i);
                 sf.free;
                 break;
             end;
          end;
        end;
       skin_change:begin
          DeleteDeleted;
          for i:= 0 to flist.count-1 do begin
             sf:=TWinSkinform(flist[i]);
             if sf.fsd = sd then begin
                sf.DeleteSysbtn;
                sf.InitSkinData;
                sf.skinchange;
                break;
             end;
          end;
        end;
       skin_Active: begin
         active:=true;
         skinchildform:=true;
//         EnumThreadWindows(GetCurrentThreadId,@EnumAddWindow,0);
         for I := Screen.FormCount - 1 downto 0 do  begin

              if Screen.Forms[I]=sd.Owner then begin
                activeform(Screen.Forms[I]);
                break;
              end;
         end;
         skinchildform:=false;
        end;
       skin_deleted : deleteform3;
      end;//endcase
      sd.doskinchanged;
      UpdateData:=nil;
   end else begin
   case action of
     skin_Active: begin
         active:=true;
         skinchildform:=true;
//         EnumThreadWindows(GetCurrentThreadId,@EnumAddWindow,0);
         DeleteDeleted;
         for I := Screen.FormCount - 1 downto 0 do  begin
              ActiveForm(Screen.Forms[I]);
         end;
         skinchildform:=false;
      end;
      skin_uninstall:begin
          active:=false;
          DeleteDeleted;
          for i:= flist.count-1 downto 0 do begin
             sf:=TWinSkinform(flist[i]);
             sf.unsubclass;
             sf.repaint(sf.hwnd);
             flist.delete(i);
             sf.free;
          end;
      end;
      skin_change:begin
          DeleteDeleted;
          for i:= 0 to flist.count-1 do begin
             sf:=TWinSkinform(flist[i]);
             if sf.fsd = sd then begin
               sf.DeleteSysbtn;
               sf.InitSkinData;
             end;
          end;
          {for i:= 0 to flist.count-1 do begin
             sf:=TWinSkinform(flist[i]);
             sf.Uncropwindow;
          end;}
          for i:= 0 to  flist.count-1 do begin
             sf:=TWinSkinform(flist[i]);
             if sf.fsd = sd then
               sf.skinchange;
          end;
      end;
      skin_deleted : deleteform3;
   end;//endcase
   sd.doskinchanged;
   UpdateData:=nil;
   end;
end;

initialization
finalization
  if skinmanager<>nil then
      SkinManager.free;
  SkinManager:=nil;
end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丝袜诱惑亚洲看片| 日韩成人一级大片| 制服丝袜中文字幕亚洲| 国产福利一区二区三区视频在线| 一区二区三区不卡视频在线观看| 日韩欧美视频一区| 欧美午夜理伦三级在线观看| 国产黄色91视频| 免费国产亚洲视频| 一区二区三区四区在线免费观看 | 久久久久国产精品厨房| 欧美在线你懂得| 成人免费毛片a| 久久er精品视频| 天天色 色综合| 亚洲欧美激情一区二区| 日本一区二区不卡视频| 精品欧美黑人一区二区三区| 欧美午夜影院一区| 色丁香久综合在线久综合在线观看| 国产成人一区在线| 久久99国内精品| 日韩精品乱码av一区二区| 亚洲美女视频在线观看| 国产精品视频观看| 久久久五月婷婷| 精品成人一区二区三区| 欧美一区二区成人6969| 欧美精品日韩精品| 欧美人妇做爰xxxⅹ性高电影| 91日韩一区二区三区| 99视频一区二区| 成人黄色免费短视频| 国产成人在线视频免费播放| 激情综合网av| 国产一区二区三区日韩| 国产美女精品一区二区三区| 麻豆精品久久精品色综合| 日本麻豆一区二区三区视频| 三级亚洲高清视频| 青青草原综合久久大伊人精品优势 | 97aⅴ精品视频一二三区| 成人夜色视频网站在线观看| 成人免费视频免费观看| 成av人片一区二区| 99久久综合精品| 成人app在线观看| av在线不卡观看免费观看| 99精品视频在线观看免费| av男人天堂一区| 色噜噜久久综合| 欧美日韩免费观看一区二区三区 | 亚洲精品在线免费观看视频| 久久亚洲私人国产精品va媚药| 欧美成人免费网站| 国产婷婷精品av在线| 欧美国产日韩精品免费观看| 成人免费在线视频| 亚洲自拍偷拍图区| 日本不卡视频一二三区| 国内精品伊人久久久久av影院| 国产**成人网毛片九色| 99re热这里只有精品免费视频| 国产亚洲一本大道中文在线| 欧美国产欧美亚州国产日韩mv天天看完整 | 亚洲综合丁香婷婷六月香| 午夜精品一区二区三区电影天堂| 日本成人在线电影网| 国产毛片精品一区| 色综合天天狠狠| 91精品在线一区二区| 国产亚洲欧洲一区高清在线观看| 国产精品毛片久久久久久久| 亚洲午夜激情网页| 国产资源在线一区| fc2成人免费人成在线观看播放| 欧美中文字幕一区| 精品国产乱码久久久久久1区2区| 国产午夜亚洲精品午夜鲁丝片 | 国产精品丝袜一区| 亚洲动漫第一页| 国产一区二区在线电影| 色老汉一区二区三区| 日韩欧美自拍偷拍| 亚洲特黄一级片| 久久99热这里只有精品| 99国产精品久久久久久久久久久| 91麻豆精品国产91久久久久久| 久久久91精品国产一区二区精品| 一区二区免费看| 国产又黄又大久久| 欧美日韩中文精品| 国产亚洲综合在线| 午夜精彩视频在线观看不卡| 成人伦理片在线| 欧美一区二区免费观在线| 综合电影一区二区三区 | 国内精品伊人久久久久av影院| 色天使色偷偷av一区二区| 精品国产91洋老外米糕| 樱花草国产18久久久久| 国产精品99久| 日韩视频中午一区| 亚洲午夜精品久久久久久久久| 成人晚上爱看视频| 日韩精品中文字幕一区二区三区| 亚洲卡通动漫在线| 国产一区二区美女| 欧美精品 日韩| 一区二区三区欧美日韩| 国产成人精品一区二| 日韩午夜激情电影| 亚洲成a天堂v人片| 色综合天天天天做夜夜夜夜做| av不卡一区二区三区| 欧美一区二区视频免费观看| 一区二区三区日本| jlzzjlzz亚洲女人18| 国产色一区二区| 国产最新精品免费| 精品国产一区二区精华| 日韩国产欧美在线观看| 欧美三级在线视频| 亚洲综合在线免费观看| 99久久精品久久久久久清纯| 欧美激情在线一区二区三区| 国产一区不卡视频| 精品欧美黑人一区二区三区| 免费视频最近日韩| 欧美一级艳片视频免费观看| 日韩精品视频网| 6080国产精品一区二区| 婷婷久久综合九色综合伊人色| 欧美日韩一区二区三区在线| 亚洲一区在线观看免费观看电影高清| 91亚洲大成网污www| 亚洲欧美一区二区三区极速播放| 成人污污视频在线观看| 国产精品成人在线观看| 成人久久视频在线观看| 国产精品久久久久久福利一牛影视| 国产精品亚洲第一| 中国色在线观看另类| 不卡区在线中文字幕| 综合在线观看色| 欧美性猛片xxxx免费看久爱| 亚洲电影欧美电影有声小说| 欧美久久久久中文字幕| 美女在线一区二区| 欧美精品一区二区三区蜜臀| 国产美女视频91| 国产精品久久久久久久岛一牛影视| fc2成人免费人成在线观看播放 | 欧美在线不卡一区| 五月天欧美精品| 欧美电视剧免费全集观看| 黄页视频在线91| 国产精品国产三级国产a| 91丨九色丨蝌蚪丨老版| 亚洲综合网站在线观看| 69成人精品免费视频| 精品一二三四在线| 国产精品伦一区二区三级视频| 99亚偷拍自图区亚洲| 亚洲成年人影院| 亚洲精品一区二区三区精华液 | 色一区在线观看| 亚洲成人中文在线| 欧美va亚洲va国产综合| 国产成人日日夜夜| 亚洲狼人国产精品| 日韩欧美在线影院| 成人中文字幕在线| 香港成人在线视频| 久久精品亚洲乱码伦伦中文| 91啦中文在线观看| 久久99热这里只有精品| 亚洲欧美在线另类| 欧美一区二区福利视频| 99久久99久久精品免费观看| 天堂在线一区二区| 国产精品乱人伦| 91精品久久久久久蜜臀| 波多野结衣中文字幕一区二区三区| 亚洲成人1区2区| 国产精品萝li| 日韩精品自拍偷拍| 欧美主播一区二区三区美女| 国产精品综合一区二区三区| 亚洲国产精品尤物yw在线观看| 久久欧美一区二区| 欧美日韩电影在线| av亚洲精华国产精华精| 捆绑紧缚一区二区三区视频| 日韩理论片在线| 久久久久久久久久久久久女国产乱| 欧美影院一区二区三区| 波多野结衣一区二区三区| 精品视频在线看| 成人综合在线观看|