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

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

?? dsnunit.pas

?? 主要介紹超市管理系統的后臺系統,后臺程序是系統初始化和系統維護最常使用的一部分程序,主要任務是建產基本數據,進出貨盤點和打印報表.后臺程序主要負責的都是管理上的功能,當后臺建立完整的數據后,前臺才能順
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
  end;

  inherited ;

end;

function TDsnStage.GetCanCopy:Boolean;
begin
  Result:= False;
  if Assigned(FDsnRegister) then
    Result:= FDsnRegister.CanCopy;
end;

function TDsnStage.GetCanPaste:Boolean;
begin
  Result:= False;
  if Assigned(FDsnRegister) then
    Result:= FDsnRegister.CanPaste;
end;

procedure TDsnStage.Delete;
begin
  if Assigned(FDsnRegister) then
    FDsnRegister.Delete;
end;

procedure TDsnStage.Cut;
begin
  if Assigned(FDsnRegister) then
    FDsnRegister.Cut;
end;

procedure TDsnStage.Copy;
begin
  if Assigned(FDsnRegister) then
    FDsnRegister.Copy;
end;

procedure TDsnStage.Paste;
begin
  if Assigned(FDsnRegister) then
    FDsnRegister.Paste;
end;

procedure TDsnStage.Notification(AComponent: TComponent; Operation: TOperation);
begin
  inherited Notification(AComponent, Operation);
  if Operation = opRemove then
    if AComponent = FCoverMenu then
      FCoverMenu := nil;
end;

procedure TDsnStage.SaveToFile(FileName:String);
var
  FS:TStream;
  WR:TWriter;
  i:integer;
begin
  if Assigned(FDsnRegister) then
    FDsnRegister.ClearSelect;

  FS:=TFileStream.Create(FileName, fmCreate);
  try
    WR:=TWriter.Create(FS,4096);
    try
      for i:=0 to ControlCount-1 do
      begin
        WriteComponents(FS,Controls[i]);
        WR.WriteListEnd;
      end;
    finally
      WR.Free;
    end;
  finally
    FS.Free;
  end;
end;

procedure TDsnStage.SaveToStream(Stream:TStream);
var
  WR:TWriter;
  i:integer;
begin
  if Assigned(FDsnRegister) then
    FDsnRegister.ClearSelect;

  WR:=TWriter.Create(Stream,4096);
  try
    for i:=0 to ControlCount-1 do
      WriteComponents(Stream,Controls[i]);

    WR.WriteListEnd;

  finally
    WR.Free;
  end;
end;

procedure TDsnStage.LoadFromFile(FileName:String);
var
  FS:TStream;
  Flag: Boolean;
begin
  {if Designing then
    Raise Exception.Create(STG_ERRORREAD); }

  Flag:= False;
  if Assigned(FDsnRegister) then
  begin
    if FDsnRegister.Designing then
      Flag:= True;
    FDsnRegister.SetDesigning(False);
  end;

  try
    FS:=TFileStream.Create(FileName, fmOpenRead);
    try
      ReadComponents(FS);
    finally
      FS.Free;
    end;
  except
    Raise Exception.Create(FileName+ STG_ERRORREADFILE);
  end;

  if Flag then
    FDsnRegister.SetDesigning(True);
end;

procedure TDsnStage.LoadFromStream(Stream:TStream);
var
  Flag: Boolean;
begin
 { if Designing then
    Raise Exception.Create(STG_ERRORREAD);}

  Flag:= False;
  if Assigned(FDsnRegister) then
  begin
    if FDsnRegister.Designing then
      Flag:= True;
    FDsnRegister.SetDesigning(False);
  end;

  ReadComponents(Stream);

  if Flag then
    FDsnRegister.SetDesigning(True);
end;

procedure TDsnStage.ComponentsProc(Component:TComponent);
begin
end;

procedure TDsnStage.WriteComponents(Stream:TStream;Control:TControl);
var
  WR:TWriter;
begin
  WR:=TWriter.Create(Stream,4096);
  try
    WR.RootAncestor := nil;
    WR.Ancestor := nil;
    WR.Root := Owner;
    WR.WriteSignature;
    WR.WriteComponent(Control);
  finally
    WR.Free;
  end;
end;

procedure TDsnStage.ReadComponents(Stream:TStream);
var
  RD:TReader;
  i:integer;
begin
  for i:=ControlCount-1 downto 0 do begin
    Controls[i].Free;
  end;
  RD:=TReader.Create(Stream,4096);
  try
    RD.OnError:=ReadError;
    RD.OnFindMethod:=FindMethod;
    RD.OnSetName:=CheckName;
    RD.Position:=0;
    RD.ReadComponents(Owner,Self,ComponentsProc);
  finally
    RD.Free;
  end;
end;

procedure TDsnStage.CheckName(Reader:TReader; Component:TComponent; var Name:String);
begin
  DsnCheckName(Owner,Reader,Component,Name);
  if Assigned(FOnControlLoading) then
    FOnControlLoading(Self, Component);
  PostMessage(Handle, DS_LOADED, Integer(Component),0)
end;

procedure TDsnStage.ReadError(Reader: TReader; const Message: string; var Handled: Boolean);
begin
  Handled:=True;
end;

procedure TDsnStage.FindMethod(Reader: TReader; const MethodName: string;
               var Address: Pointer; var Error: Boolean);
begin
  if Error then
  begin
    Address:=nil;
    Error:=False;
  end;   
end;

procedure TDsnStage.ControlCreated(var Message: TMessage);
var
  Component:TComponent;
begin
  Component:= TComponent(Message.WParam);
  if Assigned(OnControlCreate) then
    OnControlCreate(Self, Component);
end;

procedure TDsnStage.ControlLoaded(var Message: TMessage);
var
  Component:TComponent;
begin
  Component:= TComponent(Message.WParam);
  if Assigned(OnControlLoaded) then
    OnControlLoaded(Self, Component);
end;

{TDsnCtrl}
constructor TDsnCtrl.CreateInstance(AClient: TWinControl);
begin
  inherited CreateInstance(AClient);
  ClientDeath:= False;
end;

procedure TDsnCtrl.TakeInstance;
begin
  if Assigned(Client) then
  begin
    Client.Cursor:= crArrow;
    Client.Invalidate;
  end;
end;

procedure TDsnCtrl.ReleaseInstance;
begin
  if (Assigned(Client)) and (not ClientDeath) then
  begin
    Client.Cursor:= crDefault;
    Client.Invalidate;
  end;
end;

procedure TDsnCtrl.ClientMouseDown(var Message: TWMMouse);
var
  Shift: TShiftState;
begin
  FMousePoint := Point(Message.XPos, Message.YPos);
  FTarget := nil;
  FTarget := Client.ControlAtPos(FMousePoint, TRUE);
  if FTarget = nil then
    FTarget := Client;

  if FTarget.Owner <> Client.Owner then
    FTarget := Client;  // For Like DBNavigator

  Shift:= KeysToShiftState(Message.Keys);

  SetCapture(Client.Handle);
  FDsnRegister.MouseDown(Client, FTarget, FMousePoint, Shift);
  FDsnRegister.FDsnStage.SetFocus;
end;

procedure TDsnCtrl.ClientMouseMove(var Message: TWMMouse);
var
  Shift: TShiftState;
begin
  FMousePoint := Point(Message.XPos, Message.YPos);
  Shift:= KeysToShiftState(Message.Keys);

  if Assigned(FTarget)then
    FDsnRegister.MoseMove(Client, FMousePoint, Shift);
end;

procedure TDsnCtrl.ClientMouseUp(var Message: TWMMouse);
var
  Shift: TShiftState;
begin
  FMousePoint := Point(Message.XPos, Message.YPos);
  Shift:= KeysToShiftState(Message.Keys);

  if Assigned(FTarget)then
    FDsnRegister.MoseUp(Client, FMousePoint, Shift);
  ReleaseCapture;
end;

procedure TDsnCtrl.ClientCaptureChanged(var Message: TMessage);
begin
  //FTarget := nil;
end;

procedure TDsnCtrl.ClientPaint(var Message: TWMPaint);
begin
  with TMessage(Message) do Client.Perform(Msg, wParam, lParam);
end;

procedure TDsnCtrl.ClientWndProc(var Message: TMessage);
var
  r:integer;
begin
  case(Message.Msg)of
    WM_LBUTTONDOWN: 
    begin 
     r:= SendMessage(Client.Handle,CM_DESIGNHITTEST,
              TMessage(Message).WParam,TMessage(Message).LParam);
     if r = 1 then
        with Message do  // for PageControl's Tab
          Result := CallWindowProc(DefClientProc, Client.Handle,
                                 Msg, WParam, LParam)
     else;
       ClientMouseDown(TWMMouse(Message));
    end;
    WM_LBUTTONUP: ClientMouseUp(TWMMouse(Message));
    WM_MOUSEMOVE: ClientMouseMove(TWMMouse(Message));
    WM_RBUTTONDOWN: ClientContextMenu(TWMMouse(Message));
    WM_CAPTURECHANGED: ClientCaptureChanged(Message);
    WM_PAINT: ClientPaint(TWMPaint(Message));
    RM_START: ClientPreResize(TMessage(Message));
    RM_FINISH: ClientResize(TResizeMessage(Message));
    MH_SELECT: ClientSelect(TMessage(Message));
    CI_SELECT: ClientSelectByInspect(TMessage(Message));
    WM_SETFOCUS:ClientSetFocus(TMessage(Message));
    WM_DESTROY:ClientHandleChange(TMessage(Message));
    WM_LBUTTONDBLCLK:ClientDbClick(TWMMouse(Message));
    WM_NCHITTEST:Message.Result:= HTCLIENT;
    else
      with Message do
        Result := CallWindowProc(DefClientProc, Client.Handle,
                                 Msg, WParam, LParam); 
  end;
end;

procedure TDsnCtrl.ClientDbClick(var Message: TWMMouse);
begin
  FDsnRegister.DbClick(FTarget,TWMMouse(Message));
end;

procedure TDsnCtrl.ClientContextMenu(var Message: TWMMouse);
begin
  TMessage(Message).WParam:= 0;
  FMousePoint := Point(Message.XPos, Message.YPos);
  FTarget := nil;
  FTarget := Client.ControlAtPos(FMousePoint, TRUE);
  if FTarget = nil then
    FTarget := Client;

  if FTarget.Owner <> Client.Owner then
    FTarget := Client;  // For Like DBNavigator

  SetCapture(Client.Handle);
  FDsnRegister.CallPopupMenu(Client, FTarget, Message.XPos, Message.YPos);
  FDsnRegister.FDsnStage.SetFocus;
end;

procedure TDsnCtrl.ClientHandleChange(var Message: TMessage);
begin
  EndSubClassing;

  with Message do
    Result := CallWindowProc(DefClientProc, Client.Handle,
                           Msg, WParam, LParam);
  PostMessage(FDsnRegister.FDsnStage.Handle, AG_DESTROY, Integer(Self),0);
end;

procedure TDsnCtrl.ClientPreResize(var Message: TMessage);
begin
  FTarget:= TControl(Message.WParam);
end;

procedure TDsnCtrl.ClientResize(var Message: TResizeMessage);
begin
  FDsnRegister.Resized(FTarget,Message);
end;

procedure TDsnCtrl.ClientSelect(var Message: TMessage);
begin
  FDsnRegister.Selected(FTarget,Message);
end;

procedure TDsnCtrl.ClientSelectByInspect(var Message: TMessage);
begin
  FDsnRegister.SelectByInspect(TControl(Message.WParam));
end;

procedure TDsnCtrl.ClientSetFocus(var Message: TMessage);
begin
  if not (Client is TDsnStage) then
    FDsnRegister.FDsnStage.SetFocus
  else
    with Message do
      Result := CallWindowProc(DefClientProc, Client.Handle,
                                 Msg, WParam, LParam);
end;

{TDsnSwitch}
procedure TDsnSwitch.SetDsnRegister(Value:TDsnRegister);
begin
  if Assigned(Value) then
    FDsnRegister:= Value
  else
    FDsnRegister:= nil;
end;

procedure TDsnSwitch.Notification(AComponent: TComponent; Operation: TOperation);
begin
  inherited Notification(AComponent, Operation);
  if Operation = opRemove then
    if AComponent = FDsnRegister then FDsnRegister := nil;
end;

constructor TDsnSwitch.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  DsnMessageFlg:=False;
  DsnMessage:= DSNMES_START;
end;

procedure TDsnSwitch.Loaded;
begin
  inherited;
  GroupIndex:=DsnSwc_GrpIdx;
  AllowAllUp:=True;
end;

procedure TDsnSwitch.Click;
begin
  if Down and DsnMessageFlg then
    ShowMessage(DsnMessage);

  if FDsnRegister <> nil then
    FDsnRegister.SetDesigning(Down);

  inherited;
end;

procedure TDsnSwitch.DesignOn;
begin
  if not Down then
  begin
    Down:= True;
    Click;
  end;

end;

procedure TDsnSwitch.DesignOff;
begin
  if Down then
  begin
    Down:= False;
    Click;
  end;

end;


{ TDsnPartner }

function TDsnPartner.CheckCanSelect(Control: TControl): Boolean;
begin
  if FDsnRegister <> nil then
    Result:= FDsnRegister.CheckCanSelect(Control)
  else
    Result:= False;
end;

constructor TDsnPartner.Create(AOwner: TComponent);
begin
  inherited;
  FDesigning:= False;
end;

procedure TDsnPartner.CreateMoveShape;
var
  i: integer;
begin
  if FDsnRegister <> nil then
  begin
    FDsnRegister.CreateMoveShape;
    FDsnRegister.FShape.Color:= FDsnRegister.Color;
    FDsnRegister.FShape.PenWidth:= FDsnRegister.PenWidth;
    for i:= 0 to FDsnRegister.FTargetList.Count -1 do
      FDsnRegister.FShape.Add(FDsnRegister.FTargetList[i]);
  end;
end;

procedure TDsnPartner.CreateTargetList;
begin
  if FDsnRegister <> nil then
    FDsnRegister.FTargetList:= FDsnRegister.CreateList;
end;

function TDsnPartner.GetDsnList: TDsnList;
begin
  if FDsnRegister <> nil then
    Result:= FDsnRegister.FDsnCtrlList
  else
    Result:= nil;
end;

function TDsnPartner.GetTargetList: TTargetList;
begin
  if FDsnRegister <> nil then
    Result:= FDsnRegister.FTargetList
  else
    Result:= nil;
end;

procedure TDsnPartner.SetDesigning(Value: Boolean);
begin
  if Value <> FDesigning then
    FDesigning:= Value;
end;

procedure TDsnPartner.SetDsnRegister(Value: TDsnRegister);
begin
  if Assigned(Value) then
  begin
    FDsnRegister:=Value;
    FDsnRegister.FreeNotification(Self);
    FDsnRegister.AddPartners(Self);
  end
  else
    FDsnRegister:=nil;
end;



procedure Register;
begin
  RegisterComponents('DsnSys', [TDsnSwitch]);
  RegisterComponents('DsnSys', [TDsnStage]);
  RegisterComponents('DsnSys', [TDsnPanel]);
  RegisterComponents('DsnSys', [TDsnInspector]);
  RegisterComponents('DsnSys', [TDsnRegister]);
  RegisterComponents('DsnSys', [TDsnDpRegister]);
  RegisterComponents('DsnSys', [TDsnRSRegister]);
  RegisterComponents('DsnSys', [TDsnClRegister]);
  RegisterComponents('DsnSys', [TDsnSelect]);
end;
initialization
  RegisterClass(TDsnButton);
  RegisterClass(TArrowButton);
 
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美一区二区三区综合 | 日韩欧美久久一区| 亚洲色图清纯唯美| 色综合亚洲欧洲| 亚洲自拍偷拍欧美| 欧美理论在线播放| 麻豆专区一区二区三区四区五区| 日韩小视频在线观看专区| 久久国产视频网| 日本一区二区在线不卡| 色婷婷亚洲综合| 午夜久久电影网| 精品国产伦一区二区三区观看体验| 国产一区二三区| 中文字幕巨乱亚洲| 在线观看日韩电影| 免费成人av在线播放| 久久综合一区二区| 色妹子一区二区| 免费视频一区二区| 国产精品国产三级国产三级人妇| 91小视频在线免费看| 奇米色一区二区| 中文字幕免费一区| 精品国产一区二区三区久久久蜜月 | 欧美日韩在线一区二区| 日韩av不卡一区二区| 国产视频一区二区在线| 日本高清无吗v一区| 精品亚洲成av人在线观看| **欧美大码日韩| 欧美大片一区二区| 91蜜桃网址入口| 久久电影网站中文字幕| 亚洲日本va午夜在线影院| 欧美成人精品高清在线播放| 97精品国产97久久久久久久久久久久 | 91精品国产综合久久香蕉麻豆 | 日韩欧美精品在线视频| 色综合天天在线| 国产精品亚洲一区二区三区在线| 一区二区在线观看视频| 欧美成人一区二区三区在线观看 | 欧美色图片你懂的| 国产精品一区久久久久| 亚洲成人综合在线| 国产精品系列在线| 日韩欧美高清dvd碟片| 色婷婷久久久久swag精品| 国产精品123区| 日本系列欧美系列| 亚洲精品国久久99热| 欧美经典一区二区三区| 日韩三级中文字幕| 欧美四级电影在线观看| av亚洲精华国产精华精华| 毛片av中文字幕一区二区| 亚洲综合自拍偷拍| 成人欧美一区二区三区白人 | www.一区二区| 国产一区二区日韩精品| 日本色综合中文字幕| 一区二区三区在线视频观看58 | 亚洲一区二区三区中文字幕在线 | 日韩一级高清毛片| 欧美日本在线播放| 欧美色图免费看| 欧美视频在线不卡| 色吧成人激情小说| 一本色道久久综合亚洲91| 成人黄动漫网站免费app| 国内精品久久久久影院薰衣草| 国产a视频精品免费观看| 久久精品国产亚洲一区二区三区| 亚洲一区二区精品久久av| 一区二区三区在线观看网站| 亚洲日本免费电影| 亚洲欧美日韩久久| 亚洲日本乱码在线观看| 亚洲色大成网站www久久九九| 亚洲欧洲av一区二区三区久久| 国产精品视频一二三| 国产亚洲一区字幕| 国产精品久久久久毛片软件| 国产精品素人一区二区| 国产精品电影一区二区三区| 亚洲欧美日韩国产手机在线| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲欧美国产77777| 亚洲精品中文字幕乱码三区| 一区二区免费看| 婷婷综合久久一区二区三区| 日韩国产精品大片| 久久99久久久久| 丁香婷婷综合激情五月色| 成人av资源站| 在线精品亚洲一区二区不卡| 欧美高清视频一二三区| 欧美sm极限捆绑bd| 久久精品亚洲乱码伦伦中文| 亚洲色图一区二区| 亚洲第一会所有码转帖| 久久精品免费观看| jlzzjlzz欧美大全| 欧美色图12p| www精品美女久久久tv| 国产精品免费观看视频| 亚洲影院免费观看| 日本欧美一区二区| 国产一区二区伦理片| 一本色道综合亚洲| 日韩欧美亚洲国产精品字幕久久久| 久久新电视剧免费观看| 国产精品久久久久毛片软件| 视频一区二区国产| 国产不卡视频在线播放| 欧美丝袜自拍制服另类| 久久免费看少妇高潮| 亚洲精品成人悠悠色影视| 日本在线不卡一区| 91亚洲资源网| 日韩精品影音先锋| 亚洲女同女同女同女同女同69| 日本大胆欧美人术艺术动态 | 久久精品av麻豆的观看方式| 成人污污视频在线观看| 在线电影欧美成精品| 国产人妖乱国产精品人妖| 亚洲一区二区三区在线| 国产电影一区二区三区| 欧美日韩一级视频| 亚洲国产岛国毛片在线| 麻豆国产一区二区| 亚洲男人天堂av| 99久久99久久精品免费观看| 婷婷久久综合九色综合伊人色| 美女国产一区二区三区| 91色在线porny| 久久久久久久综合日本| 亚洲第一会所有码转帖| 91日韩精品一区| 国产视频一区在线播放| 日韩不卡手机在线v区| 91麻豆成人久久精品二区三区| 久久影院午夜论| 日韩国产欧美在线播放| 成人免费视频一区| 亚洲欧洲综合另类| 久久精品国产一区二区三区免费看| 色老头久久综合| 国产精品久久毛片| 国产成人免费视| 欧美电影免费观看高清完整版在线 | 国产在线乱码一区二区三区| 欧美精品久久99| 亚洲综合无码一区二区| 色综合久久中文综合久久牛| 国产日韩欧美不卡| 国产精品99久久久久久有的能看| 69av一区二区三区| 亚洲一区二区欧美日韩| 色综合久久久久网| 亚洲女与黑人做爰| 色综合久久久久久久| 亚洲色图欧洲色图婷婷| 91精品福利在线一区二区三区| 亚洲免费观看高清完整版在线观看熊| 成人美女视频在线观看18| 国产精品免费观看视频| 成人的网站免费观看| 国产精品久久福利| av在线不卡观看免费观看| 综合av第一页| 欧美午夜一区二区| 丝袜美腿亚洲一区二区图片| 欧美精品乱码久久久久久| 五月综合激情婷婷六月色窝| 欧美日韩高清一区二区三区| 天天影视色香欲综合网老头| 91精品国产高清一区二区三区| 日本中文字幕一区二区视频| 日韩免费性生活视频播放| 日本不卡一区二区| 欧美成人a在线| 国产精品夜夜嗨| 国产精品国产三级国产普通话蜜臀| 99久久久久免费精品国产| 亚洲美女免费在线| 在线观看日韩高清av| 首页国产丝袜综合| 精品成人在线观看| 国产69精品久久99不卡| 亚洲日本青草视频在线怡红院| 欧美日韩国产天堂| 久久精品国产澳门| 亚洲图片你懂的| 制服.丝袜.亚洲.中文.综合| 国产一区二三区好的| 一区二区三区四区在线| 日韩一区二区免费高清|