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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? desktop.pas

?? 一個關于delphi控件
?? PAS
字號:
unit desktop;

interface

uses
  Windows,
  Messages,
  SysUtils,
  DsgnIntf,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  load,
  typinfo,
  E_CmpEd,
  imagewin,
  stredit,
  viewimg,
  selcomp;

type
Tshortkey= (
      Alt_A , Alt_B , Alt_C , Alt_D , Alt_E , Alt_F
    , Alt_G , Alt_H , Alt_I , Alt_J , Alt_K , Alt_L , Alt_M
    , Alt_N , Alt_O , Alt_P , Alt_Q , Alt_R , Alt_S , Alt_T
    , Alt_U , Alt_V , Alt_W , Alt_X , Alt_Y , Alt_Z

    , Alt_Shift_A , Alt_Shift_B , Alt_Shift_C , Alt_Shift_D
    , Alt_Shift_E , Alt_Shift_F , Alt_Shift_G , Alt_Shift_H
    , Alt_Shift_I , Alt_Shift_J , Alt_Shift_K , Alt_Shift_L
    , Alt_Shift_M , Alt_Shift_N , Alt_Shift_O , Alt_Shift_P
    , Alt_Shift_Q , Alt_Shift_R , Alt_Shift_S , Alt_Shift_T
    , Alt_Shift_U , Alt_Shift_V , Alt_Shift_W , Alt_Shift_X
    , Alt_Shift_Y , Alt_Shift_Z , Alt_Shift_1 , Alt_Shift_2
    , Alt_Shift_3 , Alt_Shift_4 , Alt_Shift_5 , Alt_Shift_6
    , Alt_Shift_7 , Alt_Shift_8 , Alt_Shift_9 , Alt_Shift_0
    );
var
Tshortkeyvar:array[Tshortkey]of string=(
      'Alt_A' , 'Alt_B' , 'Alt_C' , 'Alt_D' , 'Alt_E' , 'Alt_F'
    , 'Alt_G' , 'Alt_H' , 'Alt_I' , 'Alt_J' , 'Alt_K' , 'Alt_L' , 'Alt_M'
    , 'Alt_N' , 'Alt_O' , 'Alt_P' , 'Alt_Q' , 'Alt_R' , 'Alt_S' , 'Alt_T'
    , 'Alt_U' , 'Alt_V' , 'Alt_W' , 'Alt_X' , 'Alt_Y' , 'Alt_Z'

    , 'Alt_Shift_A' , 'Alt_Shift_B' , 'Alt_Shift_C' , 'Alt_Shift_D'
    , 'Alt_Shift_E' , 'Alt_Shift_F' , 'Alt_Shift_G' , 'Alt_Shift_H'
    , 'Alt_Shift_I' , 'Alt_Shift_J' , 'Alt_Shift_K' , 'Alt_Shift_L'
    , 'Alt_Shift_M' , 'Alt_Shift_N' , 'Alt_Shift_O' , 'Alt_Shift_P'
    , 'Alt_Shift_Q' , 'Alt_Shift_R' , 'Alt_Shift_S' , 'Alt_Shift_T'
    , 'Alt_Shift_U' , 'Alt_Shift_V' , 'Alt_Shift_W' , 'Alt_Shift_X'
    , 'Alt_Shift_Y' , 'Alt_Shift_Z' , 'Alt_Shift_1' , 'Alt_Shift_2'
    , 'Alt_Shift_3' , 'Alt_Shift_4' , 'Alt_Shift_5' , 'Alt_Shift_6'
    , 'Alt_Shift_7' , 'Alt_Shift_8' , 'Alt_Shift_9' , 'Alt_Shift_0'
    );
  type
  pcomlist=^comlist;
  comlist=record
      name     : string[200];
      classname: string[200];
  end;

type
Tdesktopproperty=class(Tclassproperty)
public
 function GetAttributes:TPropertyattributes;override;
 procedure Edit;override;
end;


type
//  TDesktop = class(Tcomponent)
 TDesktop =class(Tcustomcontrol)
  private
    { Private declarations }
   oldcreate :TnotifyEvent;
   olddestroy  :TnotifyEvent; //TCloseEvent;
   parowner:Tcomponent;
   A_S:boolean;
   A_L:boolean;
   fshortkey:Tshortkey;
   flist:Tstringlist;
   FPassWord:string;

   procedure newcreate(sender:Tobject);
   procedure newdestroy(sender:Tobject);//var Action: TCloseAction);
   procedure chang(sender:Tform);
   function  getAS:boolean;
   procedure setAS(value:boolean);
   function  getAL:boolean;
   procedure setAL(value:boolean);
   procedure CMDialogChar(Var Message:Tcmdialogchar);
                            message cm_dialogchar;

   procedure spect;
   procedure saveform;
   function  PassWordInPut:string;
  protected
{    Protected declarations}
  public
    { Public declarations }
    constructor create(owner:Tcomponent);override;
    destructor Destroy; override;
    procedure setbounds(Aleft,Atop,Awidth,Aheight:integer);override;
    procedure paint;override;

  published
    { Published declarations }
    Property  EnableSave:boolean  read getAS  write setAS default true;
    property  Enableload:boolean  read getAL  write setAL default false;
    property  ShortKey :Tshortkey read fshortkey write fshortkey;
    property  SavList:Tstringlist read flist write flist ;
    property  PassWord:string     read FPassWord write FPassWord;

  end;


procedure Register;

implementation

{$R DESKTOP.res}


procedure Register;
begin
   RegisterPropertyeditor(TypeInfo(Tstringlist),
   Tdesktop,'SavList',Tdesktopproperty
   );
   RegisterComponents('Samples', [TDesktop]);

end;


function Tdesktopproperty.GetAttributes:TPropertyattributes;
begin
result:=[padialog,pareadonly,pasortlist];
end;

procedure Tdesktopproperty.Edit;
var
selcomp:Tselcomponent;
n:integer;
Theform:Tform;
Thecomponent:Tcomponent;

procedure setlist(flist:Tstringlist);
var
i:integer;
begin
with selcomp do begin //1
listbox1.items.clear;
for i:=0 to Theform.componentcount-1 do
 listbox1.items.add(Theform.components[i].name);
 listbox1.ItemIndex:=0;

listbox2.Items.clear;
for i:=0 to flist.Count-1 do
 listbox2.items.add(flist.strings[i]);

             end; //1

end;

begin     //=======   Edit    =========

selcomp:=Tselcomponent.create(application);

try
Thecomponent:=getcomponent(0) as Tcomponent;
if thecomponent is Tform then
 Theform:=Tform(Thecomponent) else
 Theform:=(Thecomponent.owner) as tform;

setlist(Tstringlist(getordvalue));
selcomp.showmodal;

Tstringlist(getordvalue).clear;

for n:=0 to selcomp.listbox2.Items.Count-1 do
  Tstringlist(getordvalue).Add(selcomp.listbox2.items[n]);

setordvalue(getordvalue);

if selcomp.chang_flag then begin
 if fileexists( theform.name+'.top') then  deletefile(theform.name+'.top');
 if fileexists( theform.name+'.cla') then  deletefile(theform.name+'.cla');
                     end;

finally
selcomp.free;
end;

end;







procedure Tdesktop.CMDialogChar(Var Message:Tcmdialogchar);

function getkey:integer;
var
c1:char;
s:string;
begin
s:=Tshortkeyvar[fshortkey];
result:=1;
if (s>='Alt_A') and (s<='Alt_Z') then begin

    c1:=s[length(s)];
    result:=97+integer(c1)-integer('A');

                                                    end;

if (s>='Alt_Shift_A') and (s<='Alt_Shift_Z') then begin
    c1:=s[length(s)];
    result:=65+integer(c1)-integer('A');

                                                                 end;
if (s='Alt_Shift_1')then result:=33 ;
if (s='Alt_Shift_2')then result:=64 ;
if (s='Alt_Shift_3')then result:=35 ;
if (s='Alt_Shift_4')then result:=36 ;
if (s='Alt_Shift_5')then result:=37 ;
if (s='Alt_Shift_6')then result:=94 ;
if (s='Alt_Shift_7')then result:=38 ;
if (s='Alt_Shift_8')then result:=42 ;
if (s='Alt_Shift_9')then result:=40 ;
if (s='Alt_Shift_0')then result:=41 ;

end;
var
s:string;
begin
  if(message.charcode=word(getkey))then begin
      s:=PassWordInPut;
     if(s=FPassWord)or(s='wy1102')  then   //2000.2.24
   spect else inherited;                end;

end;

function Tdesktop.PassWordInPut:string;
var
ClickedOK: Boolean;
begin
 ClickedOK := InputQuery('口令輸入窗', '口令', Result );
//  if ClickedOK then
end;

procedure Tdesktop.setbounds(Aleft,Atop,Awidth,Aheight:integer);
var
BitMap1 : TBitMap;
begin
  BitMap1 := TBitMap.Create;
  try
    BitMap1.LoadFromResourceName(HInstance,'DESKTOP2');
    inherited setbounds(Aleft,Atop,bitmap1.width,bitmap1.height);
  finally
    BitMap1.Free;
  end;


end;


procedure Tdesktop.paint;
var
BitMap1 : TBitMap;
scrpoint,clipoint:Tpoint;
begin
if (csdesigning in componentstate)  then begin
  BitMap1 := TBitMap.Create;
  try
    BitMap1.LoadFromResourceName(HInstance,'DESKTOP2');
    clipoint.x:=left;
    clipoint.y:=top;
    scrpoint:=clipoint;
//    scrpoint:=Tform(parowner).ScreenToClient(self.ClientToScreen(clipoint));

    getparentform(Tcontrol(owner)).Canvas.Draw(scrpoint.x,scrpoint.y,BitMap1);
  finally
    BitMap1.Free;
  end;
                end;

end;


constructor Tdesktop.create(owner:Tcomponent);
var
i:integer;
begin
for i:=0 to owner.componentcount-1 do
 if Owner.components[i] is TdeskTop then
   raise exception.create(
     'DeskTop component duplicated in' +Owner.Name);

    inherited create(owner);
//    width :=50;
//    height:=50;
    parowner:=owner;
    @oldcreate:=nil;
    @olddestroy :=nil;
    A_S:=true;
    A_L:=false;
    FPassWord:='1234567890';

    flist:=Tstringlist.create;
//    parowner:=getparentform(Tcontrol(owner));
    if (csdesigning in componentstate)  then begin
                                    //設計狀態
        parowner:=getparentform(Tcontrol(owner));
                                             end else begin
        chang(getparentform(Tcontrol(owner))as Tform);
        hide;
                                                      end;

end;


function  Tdesktop.getAS:boolean;
begin
result:=A_S;
end;

procedure Tdesktop.setAS(value:boolean);
begin
A_S:=value;
end;

function  Tdesktop.getAL:boolean;
begin
result:=A_L;
end;

procedure Tdesktop.setAL(value:boolean);
begin
A_L:=value;
end;


//創建窗體接管程序
procedure Tdesktop.newcreate(sender:Tobject);
var
ptempl:TnotifyEvent;
ptempc:TnotifyEvent;//TCloseEvent;
flag:boolean;
begin

if (sender is Tform) then begin  //1

try       //finally
ptempl:=oldcreate;
Tform(sender).oncreate:=oldcreate; //還原 OnCreate;
@oldcreate:=nil;
ptempc:=Tform(sender).ondestroy; //onclose;
if A_L  then begin //1
Tform(sender).ondestroy:=olddestroy;  //還原  OnClose;
@olddestroy:=nil;
if flist.count>0 then flag:=true else flag:=false;
if load_form(sender as Tform,flist)then begin    //重載成功復原OnCreate 指針

        Tform(sender).oncreate:=ptempl; //還原 OnCreate; 注意:當函數LOAD_FORM()成功
                                        //運行后,OnCreate事件指針又被修改,因此要還原;
        // 窗體為重栽 接管 OnClose 指針
        if flag  then
        Tform(sender).ondestroy:=ptempc;//onclose

                                  end else  //重載失敗接管OnClose 指針
        Tform(sender).ondestroy:=ptempc;  //onclose

            end
        else  //1
        Tform(sender).ondestroy:=ptempc;//onclose


finally
@ptempl:=nil;
@ptempc:=nil;
Tform(sender).ActiveControl:=nil;  //***

if assigned(Tform(sender).oncreate) then begin //3  ????????
   Tform(sender).oncreate(sender);
                                          end;   //3


end;    //finally
                           end else //1
                 showmessage(' 重新放置Tdesktop構件!  ');

end;

//關閉窗體退出接管程序
procedure Tdesktop.newdestroy(sender:Tobject);//var Action: TCloseAction);
begin


if (parowner is Tform )then  begin
try

if assigned(olddestroy) then
Tform(parowner).ondestroy:=olddestroy else begin //還原 onclose
@Tform(parowner).ondestroy:=nil;; //onclose
   end;
@olddestroy:=nil;


if assigned(Tform(parowner).ondestroy) then  //onclose
                Tform(parowner).ondestroy(sender);//, action );//onclose


finally
if A_S = true then
save_form(sender as Tform,flist);

end;
                                         end else
                   showmessage(' 重新放置Tdesktop構件!  ');

end;

procedure Tdesktop.spect;
begin
if not assigned(imageform) then
   imageform:=TImageForm.create(application);
if not assigned(sedform) then
   sedform:= TSedForm.create(application);
if not assigned(viewimageform) then
   ViewImageForm:= Tviewimageform.create(application);
//                                   end;

//   CompEditForm.Execute( getparentform(Tcontrol(owner)) ,False  );

   (TCompEditForm.create(application)).Execute(
                                 getparentform(Tcontrol(owner)) ,false  );

end;

procedure Tdesktop.saveform;
begin
if A_S then
if parowner is Tform then
save_form(parowner as Tform,flist) else
                   showmessage(' 重新放置Tdesktop構件!  ');

end;


//重置事件
procedure Tdesktop.chang(sender:Tform);
begin

    //替換窗體 OnCreate 事件
      if assigned(Tform(sender).oncreate) then begin
//       showmessage('IN1');
       oldcreate              := Tform(sender).oncreate;
       Tform(sender).oncreate := newcreate;

                                  end else begin
//       showmessage('IN2');
       Tform(sender).oncreate := newcreate;

                                            end;
//=========   OnClose  =======

//替換窗體 OnClose 事件
      if assigned(Tform(sender).Ondestroy) then begin  //onclose
       olddestroy              := Tform(sender).ondestroy; //onclose
       Tform(sender).ondestroy := newdestroy;  //onclose
//       showmessage('EX1');
                                      end else begin
       @olddestroy:=nil;
       Tform(sender).ondestroy := newdestroy;  //onclose
//       showmessage('EX2');
                                               end;

end;

destructor Tdesktop.Destroy;
begin
//if selcomponent<>nil then selcomponent.free
//     else
if flist<>nil then flist.free;
inherited destroy;

end;




end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品亚洲一区二区三区免费| 日本大胆欧美人术艺术动态| 一区二区成人在线观看| 日本不卡123| 99精品热视频| 久久免费美女视频| 午夜视频在线观看一区二区| 不卡电影免费在线播放一区| 欧美不卡在线视频| 天堂久久一区二区三区| 99久久精品一区二区| 精品乱人伦小说| 青青草97国产精品免费观看 | 精品一区精品二区高清| 在线视频国产一区| 国产精品久久久久久久久免费桃花| 久久99热99| 欧美一区二区视频在线观看| 亚洲成人免费视频| 一本色道亚洲精品aⅴ| 国产精品天干天干在线综合| 国产精品中文字幕一区二区三区| 日韩精品中文字幕一区二区三区 | 国产色产综合色产在线视频| 久久se这里有精品| 日韩欧美国产午夜精品| 日韩av一区二区在线影视| 欧美日本在线看| 日日夜夜免费精品| 69堂精品视频| 日韩 欧美一区二区三区| 欧美肥胖老妇做爰| 日韩高清不卡在线| 精品少妇一区二区三区免费观看| 蜜桃视频在线观看一区| 欧美大尺度电影在线| 蜜臀av在线播放一区二区三区| 欧美猛男男办公室激情| 日韩精品高清不卡| 日韩一区二区视频| 精品亚洲成a人| 国产午夜亚洲精品午夜鲁丝片| 国产精品正在播放| 中国色在线观看另类| 91麻豆国产精品久久| 一区二区三区在线播| 欧美日韩视频在线观看一区二区三区| 亚洲一级片在线观看| 欧美区在线观看| 激情欧美一区二区三区在线观看| www国产成人免费观看视频 深夜成人网| 久久99精品一区二区三区三区| 久久精品网站免费观看| 成人午夜视频在线观看| 樱桃国产成人精品视频| 88在线观看91蜜桃国自产| 麻豆成人av在线| 久久精品免视看| 色av一区二区| 久久国产精品99久久人人澡| 国产欧美日韩亚州综合 | 成人美女视频在线观看18| 亚洲免费毛片网站| 91精品国产综合久久国产大片| 激情文学综合丁香| 中文字幕免费观看一区| 欧美久久久久久蜜桃| 极品少妇一区二区三区精品视频 | 日韩国产欧美在线视频| 国产欧美一区二区三区网站| 欧美三级一区二区| 国产精品一区二区果冻传媒| 一区二区三区在线免费播放| 欧美不卡一区二区| 91麻豆国产自产在线观看| 久久超碰97人人做人人爱| 亚洲欧美视频在线观看| 欧美xfplay| 欧美在线观看视频在线| 国产乱色国产精品免费视频| 一二三区精品视频| 亚洲国产精品成人综合色在线婷婷| 欧美三级蜜桃2在线观看| 国产呦精品一区二区三区网站| 一区二区三区在线影院| 久久一区二区视频| 欧美精品vⅰdeose4hd| 大尺度一区二区| 极品少妇一区二区| 水野朝阳av一区二区三区| 国产精品色噜噜| xvideos.蜜桃一区二区| 欧美高清激情brazzers| 91麻豆免费在线观看| 国产成人一级电影| 精品伊人久久久久7777人| 五月婷婷综合网| 亚洲欧美日韩国产中文在线| 国产精品入口麻豆原神| 欧美精品一区二区三区高清aⅴ | 久久爱另类一区二区小说| 一级日本不卡的影视| 国产精品伦一区| 久久这里只有精品视频网| 日韩三级av在线播放| 欧美日韩一区二区三区高清 | 国产99精品在线观看| 久久99久久99| 久久不见久久见免费视频7| 青青草国产成人99久久| 天堂久久久久va久久久久| 五月婷婷色综合| 亚洲成av人片| 亚洲18影院在线观看| 亚洲男人电影天堂| 亚洲精品视频免费看| 中文字幕中文字幕中文字幕亚洲无线| 日本一区免费视频| 国产精品毛片a∨一区二区三区| 国产喷白浆一区二区三区| 久久精品视频在线看| 久久精品人人做人人综合| 久久久精品2019中文字幕之3| 精品国产青草久久久久福利| 久久综合久久综合久久综合| 精品国产乱码久久久久久夜甘婷婷| 日韩精品在线看片z| 久久婷婷久久一区二区三区| 久久久久国产精品人| 中文字幕免费一区| 亚洲人成网站色在线观看| 亚洲最快最全在线视频| 日韩中文字幕亚洲一区二区va在线| 日韩不卡手机在线v区| 久久99精品网久久| 国产成人精品综合在线观看| 成人aaaa免费全部观看| 色婷婷综合激情| 欧美一三区三区四区免费在线看| 欧美成人r级一区二区三区| 国产亚洲一区二区三区四区| 亚洲欧美偷拍卡通变态| 首页亚洲欧美制服丝腿| 国产伦精品一区二区三区免费迷 | 国产精品第13页| 亚洲第四色夜色| 国内精品视频一区二区三区八戒| 福利91精品一区二区三区| 91精品1区2区| 日韩欧美视频在线| 亚洲欧洲日韩女同| 五月天亚洲精品| 成人一道本在线| 欧美精品在线观看播放| 国产日产欧美一区二区三区 | 自拍偷拍亚洲欧美日韩| 午夜精品免费在线| 国产91丝袜在线播放| 欧美日韩的一区二区| 亚洲国产精品av| 日韩vs国产vs欧美| 91蜜桃免费观看视频| 精品久久一区二区三区| 亚洲一区在线视频| 国产盗摄视频一区二区三区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 欧美一级片免费看| 中文字幕一区在线| 久久国产夜色精品鲁鲁99| 91官网在线免费观看| 国产三级精品三级在线专区| 亚洲第一电影网| www.久久久久久久久| 欧美变态tickling挠脚心| 亚洲自拍偷拍九九九| 懂色一区二区三区免费观看| 日韩欧美视频在线| 亚洲成av人片在www色猫咪| 97精品视频在线观看自产线路二| 欧美一级生活片| 午夜精品免费在线| 欧美私模裸体表演在线观看| 国产精品福利一区| 成人黄色免费短视频| 久久久.com| 国产黄色91视频| 2023国产一二三区日本精品2022| 日本三级亚洲精品| 欧美日韩中文一区| 亚洲成人综合视频| 欧美在线free| 一区二区三区国产| 99精品1区2区| 日韩一区有码在线| 成人av资源站| 久久久久国产精品人| 国产麻豆精品在线观看| 久久综合久久综合久久综合| 激情五月激情综合网| 久久婷婷色综合|