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

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

?? bsmessages.pas

?? BusinessSkinForm Ver3.95 full source_漢化版_最新
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
{*******************************************************************}
{                                                                   }
{       Almediadev Visual Component Library                         }
{       BusinessSkinForm                                            }
{       Version 3.95                                                }
{                                                                   }
{       Copyright (c) 2000-2004 Almediadev                          }
{       ALL RIGHTS RESERVED                                         }
{                                                                   }
{       Home:  http://www.almdev.com                                }
{       Support: support@almdev.com                                 }
{                                                                   }
{*******************************************************************}

unit bsMessages;

{$WARNINGS OFF}
{$HINTS OFF}

interface

uses Windows, SysUtils, Messages, Classes, Graphics, Controls, Forms,
     BusinessSkinForm, bsSkinData, bsSkinCtrls, ExtCtrls,
     Dialogs, ImgList;

type

  TbsMessageForm = class(TForm)
  protected
    procedure HelpButtonClick(Sender: TObject);
  public
    BSF: TbsBusinessSkinForm;
    Message: TbsSkinStdLabel;
    constructor Create(AOwner: TComponent); override;
  end;

  TbsSkinMessage = class(TComponent)
  protected
    FSD: TbsSkinData;
    FCtrlFSD: TbsSkinData;
    FButtonSkinDataName: String;
    FMessageLabelSkinDataName: String;
    FDefaultFont: TFont;
    FDefaultButtonFont: TFont;
    FAlphaBlend: Boolean;
    FAlphaBlendAnimation: Boolean;
    FAlphaBlendValue: Byte;
    FUseSkinFont: Boolean;
    procedure SetDefaultFont(Value: TFont);
    procedure SetDefaultButtonFont(Value: TFont);
    procedure Notification(AComponent: TComponent;  Operation: TOperation); override;
  public
    function MessageDlg(const Msg: string; DlgType: TMsgDlgType;
      Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;

    function MessageDlgHelp(const Msg: string; DlgType: TMsgDlgType;
      Buttons: TMsgDlgButtons; HelpCtx: Longint; const HelpFileName: string): Integer;

    function CustomMessageDlg(const Msg: string;
      ACaption: String; AImages: TCustomImageList; AImageIndex: Integer;
      Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;

    function CustomMessageDlgHelp(const Msg: string;
      ACaption: String; AImages: TCustomImageList; AImageIndex: Integer;
      Buttons: TMsgDlgButtons; HelpCtx: Longint; const HelpFileName: string): Integer;

    function MessageDlg2(const Msg: string; ACaption: String; DlgType: TMsgDlgType;
      Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;

    function MessageDlgHelp2(const Msg: string; ACaption: String; DlgType: TMsgDlgType;
      Buttons: TMsgDlgButtons; HelpCtx: Longint; const HelpFileName: string): Integer;

    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property AlphaBlend: Boolean read FAlphaBlend write FAlphaBlend;
    property AlphaBlendAnimation: Boolean
      read FAlphaBlendAnimation write FAlphaBlendAnimation;
    property AlphaBlendValue: Byte read FAlphaBlendValue write FAlphaBlendValue;
    property SkinData: TbsSkinData read FSD write FSD;
    property CtrlSkinData: TbsSkinData read FCtrlFSD write FCtrlFSD;
    property ButtonSkinDataName: String
      read FButtonSkinDataName write FButtonSkinDataName;
    property MessageLabelSkinDataName: String
      read FMessageLabelSkinDataName write FMessageLabelSkinDataName;
    property DefaultFont: TFont read FDefaultFont write SetDefaultFont;
    property DefaultButtonFont: TFont read FDefaultButtonFont write SetDefaultButtonFont;
    property UseSkinFont: Boolean read FUseSkinFont write FUseSkinFont;
  end;

implementation

Uses bsUtils, bsConst;

var
  ButtonNames: array[TMsgDlgBtn] of string = (
    'Yes', 'No', 'OK', 'Cancel', 'Abort', 'Retry', 'Ignore', 'All', 'NoToAll',
    'YesToAll', 'Help');

  ButtonCaptions: array[TMsgDlgBtn] of string = (
    BS_MSG_BTN_YES, BS_MSG_BTN_NO, BS_MSG_BTN_OK, BS_MSG_BTN_CANCEL, BS_MSG_BTN_ABORT,
    BS_MSG_BTN_RETRY, BS_MSG_BTN_IGNORE, BS_MSG_BTN_ALL,
    BS_MSG_BTN_NOTOALL, BS_MSG_BTN_YESTOALL, BS_MSG_BTN_HELP);

  Captions: array[TMsgDlgType] of string = (BS_MSG_CAP_WARNING, BS_MSG_CAP_ERROR,
    BS_MSG_CAP_INFORMATION, BS_MSG_CAP_CONFIRM, '');

  ModalResults: array[TMsgDlgBtn] of Integer = (
    mrYes, mrNo, mrOk, mrCancel, mrAbort, mrRetry, mrIgnore, mrAll, mrNoToAll,
    mrYesToAll, 0);

  IconIDs: array[TMsgDlgType] of PChar = (IDI_EXCLAMATION, IDI_HAND,
    IDI_ASTERISK, IDI_QUESTION, nil);

const
   MSGFORMBUTTONWIDTH = 40;

function GetButtonCaption(B: TMsgDlgBtn; ASkinData: TbsSkinData): String;
begin
  if (ASkinData <> nil) and (ASkinData.ResourceStrData <> nil)
  then
    case B of
      mbYes: Result := ASkinData.ResourceStrData.GetResStr('MSG_BTN_YES');
      mbNo: Result := ASkinData.ResourceStrData.GetResStr('MSG_BTN_NO');
      mbOK: Result := ASkinData.ResourceStrData.GetResStr('MSG_BTN_OK');
      mbCancel: Result := ASkinData.ResourceStrData.GetResStr('MSG_BTN_CANCEL');
      mbAbort: Result := ASkinData.ResourceStrData.GetResStr('MSG_BTN_ABORT');
      mbRetry: Result := ASkinData.ResourceStrData.GetResStr('BS_MSG_BTN_RETRY');
      mbIgnore: Result := ASkinData.ResourceStrData.GetResStr('MSG_BTN_IGNORE');
      mbAll: Result := ASkinData.ResourceStrData.GetResStr('MSG_BTN_ALL');
      mbNoToAll: Result := ASkinData.ResourceStrData.GetResStr('MSG_BTN_NOTOALL');
      mbYesToAll: Result := ASkinData.ResourceStrData.GetResStr('MSG_BTN_YESTOALL');
      mbHelp: Result := ASkinData.ResourceStrData.GetResStr('MSG_BTN_HELP');
    end
  else
    Result := ButtonCaptions[B];
end;


function GetMsgCaption(DT: TMsgDlgType; ASkinData: TbsSkinData): String;
begin
  if (ASkinData <> nil) and (ASkinData.ResourceStrData <> nil)
  then
    case DT of
      mtWarning: Result := ASkinData.ResourceStrData.GetResStr('MSG_CAP_WARNING');
      mtError: Result := ASkinData.ResourceStrData.GetResStr('MSG_CAP_ERROR');
      mtInformation: Result := ASkinData.ResourceStrData.GetResStr('MSG_CAP_INFORMATION');
      mtConfirmation: Result := ASkinData.ResourceStrData.GetResStr('MSG_CAP_CONFIRM');
      mtCustom: Result := '';
    end
  else
    Result := Captions[DT];
end;

function CreateCustomMessageDialog(const Msg: string; ACaption: String;
  AImageList: TCustomImageList; AImageIndex: Integer;
  Buttons: TMsgDlgButtons; ASkinData, ACtrlSkinData: TbsSkinData;
  AButtonSkinDataName: String;  AMessageLabelSkinDataName: String;
  ADefaultFont: TFont; ADefaultButtonFont: TFont; AUseSkinFont: Boolean;
  AAlphaBlend, AAlphaBlendAnimation: Boolean; AAlphaBlendValue: Byte): TbsMessageForm;
var
  BI, ButtonWidth,
  ButtonHeight, ButtonSpacing, ButtonCount, ButtonGroupWidth, X, Y: Integer;
  B, DefaultButton, CancelButton: TMsgDlgBtn;
  IconID: PChar;
begin
  Result := TbsMessageForm.Create(Application);
  with Result do
  begin
    with BSF do
    begin
      SkinData := ASkinData;
      MenusSkinData := ACtrlSkinData;
      AlphaBlend := AAlphaBlend;
      AlphaBlendAnimation := AAlphaBlendAnimation;
      AlphaBlendValue := AAlphaBlendValue;
    end;

    ButtonWidth := 70;
    //
    if (ACtrlSkinData <> nil) and (not ACtrlSkinData.Empty)
    then
      begin
        BI := ACtrlSkinData.GetControlIndex(AButtonSkinDataName);
        if (BI <> -1) and
           (TbsDataSkinControl(ACtrlSkinData.CtrlList.Items[BI]) is TbsDataSkinButtonControl)
        then
          begin
            with TbsDataSkinButtonControl(ACtrlSkinData.CtrlList.Items[BI]) do
             ButtonHeight := SkinRect.Bottom - SkinRect.Top;
          end
        else
          ButtonHeight := 25;
      end
    else
      ButtonHeight := 25;
    //
    ButtonSpacing := 10;

    ButtonCount := 0;
    for B := Low(TMsgDlgBtn) to High(TMsgDlgBtn) do
      if B in Buttons then Inc(ButtonCount);

    ButtonGroupWidth := 0;
    if ButtonCount <> 0 then
      ButtonGroupWidth := ButtonWidth * ButtonCount +
        ButtonSpacing * (ButtonCount - 1);

    Left := (Screen.Width div 2) - (Width div 2);
    Top := (Screen.Height div 2) - (Height div 2);
    Caption := ACaption;

    // add label
    Result.Message := TbsSkinStdLabel.Create(Result);
    with Result.Message do
    begin
      Font := ADefaultFont;
      DefaultFont := ADefaultFont;
      UseSkinFont := AUseSkinFont;
      SkinDataName := AMessageLabelSkinDataName;
      SkinData := ACtrlSkinData;
      Name := 'Message';
      Parent := Result;
      AutoSize := True;
      Caption := Msg;
      Left := 50;
      Top := 15;
      X := Left + Width;
    end;

    if (AImageList <> nil) and (AImageIndex >= 0) and
       (AImageIndex <= AImageList.Count - 1)
    then
     with TImage.Create(Result) do
      begin
        Transparent := True;
        Width := AImageList.Width;
        Height := AImageList.Height;
        Name := 'Image';
        Parent := Result;
        AImageList.GetIcon(AImageIndex, Picture.Icon);
        Y := Result.Message.Top + Result.Message.Height div 2 - 16;
        Left := 5;
        Top := Y;
      end;

    ClientHeight := 50 + ButtonHeight + Result.Message.Height;

    if ButtonGroupWidth < X
    then
      ClientWidth := X + 40
    else
      ClientWidth := ButtonGroupWidth + 40;

    if Width > Result.BSF.GetMaxWidth
    then
      Width := Result.BSF.GetMaxWidth
    else
    if Width < Result.BSF.GetMinWidth
    then
      Width := Result.BSF.GetMinWidth;

    // add buttons
    if mbOk in Buttons then DefaultButton := mbOk else
      if mbYes in Buttons then DefaultButton := mbYes else
        DefaultButton := mbRetry;
    if mbCancel in Buttons then CancelButton := mbCancel else
      if mbNo in Buttons then CancelButton := mbNo else
        CancelButton := mbOk;
    X := (ClientWidth - ButtonGroupWidth) div 2;
    for B := Low(TMsgDlgBtn) to High(TMsgDlgBtn) do
      if B in Buttons then
        with TbsSkinButton.Create(Result) do
        begin
          Parent := Result;
          Name := ButtonNames[B];
          CanFocused := True;
          Caption := GetButtonCaption(B, ACtrlSkinData);
          ModalResult := ModalResults[B];
          if B = DefaultButton then Default := True;
          if B = CancelButton then Cancel := True;
          DefaultHeight := ButtonHeight;
          SetBounds(X, Result.ClientHeight - ButtonHeight - 10,
            ButtonWidth, ButtonHeight);
          DefaultFont := ADefaultButtonFont;
          UseSkinFont := AUseSkinFont;
          Inc(X, ButtonWidth + ButtonSpacing);
          if B = mbHelp then
            OnClick := Result.HelpButtonClick;
          SkinDataName := AButtonSkinDataName;
          SkinData := ACtrlSkinData;
        end;
  end;
end;


function CreateMessageDialog2(const Msg: string; ACaption: String;
  DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; ASkinData, ACtrlSkinData: TbsSkinData;
  AButtonSkinDataName: String;  AMessageLabelSkinDataName: String;
  ADefaultFont: TFont; ADefaultButtonFont: TFont; AUseSkinFont: Boolean;
  AAlphaBlend, AAlphaBlendAnimation: Boolean; AAlphaBlendValue: Byte): TbsMessageForm;
var
  BI, ButtonWidth,
  ButtonHeight, ButtonSpacing, ButtonCount, ButtonGroupWidth, X, Y: Integer;
  B, DefaultButton, CancelButton: TMsgDlgBtn;
  IconID: PChar;
begin
  Result := TbsMessageForm.Create(Application);
  with Result do
  begin
    with BSF do
    begin
      SkinData := ASkinData;
      MenusSkinData := ACtrlSkinData;
      AlphaBlend := AAlphaBlend;
      AlphaBlendAnimation := AAlphaBlendAnimation;
      AlphaBlendValue := AAlphaBlendValue;
    end;

    ButtonWidth := 70;
    //
    if (ACtrlSkinData <> nil) and (not ACtrlSkinData.Empty)
    then
      begin
        BI := ACtrlSkinData.GetControlIndex(AButtonSkinDataName);
        if (BI <> -1) and
           (TbsDataSkinControl(ACtrlSkinData.CtrlList.Items[BI]) is TbsDataSkinButtonControl)
        then
          begin
            with TbsDataSkinButtonControl(ACtrlSkinData.CtrlList.Items[BI]) do
             ButtonHeight := SkinRect.Bottom - SkinRect.Top;
          end
        else
          ButtonHeight := 25;
      end
    else
      ButtonHeight := 25;
    //
    ButtonSpacing := 10;

    ButtonCount := 0;
    for B := Low(TMsgDlgBtn) to High(TMsgDlgBtn) do
      if B in Buttons then Inc(ButtonCount);

    ButtonGroupWidth := 0;
    if ButtonCount <> 0 then
      ButtonGroupWidth := ButtonWidth * ButtonCount +
        ButtonSpacing * (ButtonCount - 1);

    Left := (Screen.Width div 2) - (Width div 2);
    Top := (Screen.Height div 2) - (Height div 2);

    Caption := ACaption;

    // add label
    Result.Message := TbsSkinStdLabel.Create(Result);
    with Result.Message do
    begin
      Font := ADefaultFont;
      DefaultFont := ADefaultFont;
      UseSkinFont := AUseSkinFont;
      SkinDataName := AMessageLabelSkinDataName;
      SkinData := ACtrlSkinData;
      Name := 'Message';
      Parent := Result;
      AutoSize := True;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区视频观看视频| proumb性欧美在线观看| 日韩欧美资源站| 麻豆免费看一区二区三区| 精品国产第一区二区三区观看体验| 秋霞国产午夜精品免费视频| 精品sm在线观看| 成人免费看视频| 亚洲自拍偷拍av| 日韩免费一区二区三区在线播放| 国产精品自拍在线| 成人欧美一区二区三区黑人麻豆| 色欧美乱欧美15图片| 奇米综合一区二区三区精品视频| xf在线a精品一区二区视频网站| 国产一区在线精品| 一区二区视频在线| 日韩亚洲欧美一区二区三区| 国产成人av影院| 亚洲一区在线视频| 久久久久亚洲蜜桃| 色婷婷综合视频在线观看| 蜜桃传媒麻豆第一区在线观看| 久久精品一区蜜桃臀影院| 91同城在线观看| 六月婷婷色综合| 自拍av一区二区三区| 日韩亚洲欧美成人一区| 成人一区二区三区在线观看 | jvid福利写真一区二区三区| 亚洲精品写真福利| 日韩欧美电影一区| 91福利视频久久久久| 国产尤物一区二区| 亚洲成va人在线观看| 国产欧美日韩中文久久| 欧美欧美午夜aⅴ在线观看| 成人午夜av电影| 麻豆高清免费国产一区| 一二三区精品福利视频| 国产丝袜在线精品| 日韩欧美一二三区| 欧美日韩一区二区在线观看视频| 成人午夜视频免费看| 蜜桃久久精品一区二区| 一区二区欧美在线观看| 欧美国产精品一区二区三区| 91精品国产91久久综合桃花| 色综合视频一区二区三区高清| 美日韩一级片在线观看| 亚洲成a人在线观看| 18成人在线视频| 日本一区二区综合亚洲| 精品伦理精品一区| 欧美日韩高清在线播放| 一本大道av一区二区在线播放 | 国产成人免费视频网站高清观看视频| 亚洲国产精品影院| 日韩毛片一二三区| 国产精品美女久久久久久久久| 欧美成人精品福利| 日韩一区二区三区视频在线| 欧美三级资源在线| 欧洲精品一区二区三区在线观看| 波多野结衣中文字幕一区 | 中文久久乱码一区二区| 精品国产乱码久久久久久影片| 制服丝袜中文字幕亚洲| 欧美日韩国产美女| 欧美日韩精品久久久| 欧美日韩亚洲综合| 欧美日本一道本| 69堂成人精品免费视频| 91精品婷婷国产综合久久竹菊| 欧美日韩中字一区| 欧美军同video69gay| 欧美区一区二区三区| 91精品国产综合久久精品麻豆| 欧美精品久久99| 欧美一区二区免费视频| 日韩精品一区二区三区视频在线观看| 欧美一级专区免费大片| 精品国偷自产国产一区| 国产午夜一区二区三区| 国产精品黄色在线观看| 日韩理论电影院| 亚洲大尺度视频在线观看| 日本在线不卡视频| 久久精品99国产精品| 国产成人精品三级| 色偷偷久久一区二区三区| 欧美网站一区二区| 日韩一区二区三区电影在线观看| 精品久久久三级丝袜| 国产三级一区二区| 亚洲美女屁股眼交| 日本成人在线看| 国产寡妇亲子伦一区二区| av在线不卡观看免费观看| 91黄色激情网站| 日韩欧美中文字幕精品| 国产精品视频在线看| 一区二区三区色| 麻豆91在线播放免费| 成人免费观看av| 欧美日韩成人综合天天影院 | 国产一区视频在线看| 不卡的电影网站| 欧美日韩国产综合草草| 亚洲精品在线电影| 亚洲黄色小说网站| 美国毛片一区二区| 99精品国产视频| 欧美一区二区三区在线观看视频| 国产三级一区二区三区| 亚洲电影在线免费观看| 精品一区二区av| 欧美性受xxxx| 久久久精品国产99久久精品芒果 | 亚洲成人精品一区| 国产成人精品亚洲日本在线桃色| 欧美亚洲另类激情小说| 久久久久久久久久久久久久久99| 亚洲黄色av一区| 国产成人午夜精品5599| 欧美日高清视频| 亚洲欧美影音先锋| 狠狠色综合播放一区二区| 欧洲生活片亚洲生活在线观看| 久久久亚洲精品石原莉奈| 亚洲综合免费观看高清完整版在线| 国产精品白丝jk黑袜喷水| 欧美群妇大交群中文字幕| 中文字幕中文字幕一区二区 | 久久久99免费| 日韩精品成人一区二区在线| 99久久婷婷国产综合精品电影| 精品久久久久久久久久久久久久久 | 亚洲精品一区二区在线观看| 一区二区三区久久| 成人动漫在线一区| 久久久精品欧美丰满| 麻豆久久一区二区| 欧美欧美欧美欧美| 亚洲一区二区在线免费观看视频 | 欧美sm美女调教| 亚洲国产欧美日韩另类综合| 99国产精品久久久久久久久久久| 久久婷婷国产综合国色天香| 日本一不卡视频| 欧美色网一区二区| 一区二区三区日韩| 91丝袜国产在线播放| 国产精品五月天| 高清久久久久久| 久久久91精品国产一区二区三区| 极品少妇一区二区三区精品视频| 欧美一区二区三区男人的天堂| 天堂一区二区在线| 欧美日本国产视频| 亚洲国产精品一区二区www在线| 色综合天天综合色综合av| 国产精品久久久久久久裸模| 国产91综合网| 中文字幕免费一区| www.色精品| 亚洲精品美腿丝袜| 欧美三级中文字幕| 水野朝阳av一区二区三区| 26uuu国产电影一区二区| 欧美96一区二区免费视频| 欧美一区二区三区四区视频| 日韩电影在线看| 日韩视频一区二区三区在线播放| 日韩精品国产精品| 精品电影一区二区| 国产精品一品二品| 亚洲欧洲av一区二区三区久久| 91在线播放网址| 亚洲国产日韩在线一区模特| 91精品婷婷国产综合久久竹菊| 美女一区二区三区在线观看| 精品国产91洋老外米糕| 国产超碰在线一区| 亚洲欧洲综合另类在线| 欧美午夜宅男影院| 另类欧美日韩国产在线| 国产亚洲精品超碰| 91麻豆免费观看| 天天综合色天天综合色h| 欧美v亚洲v综合ⅴ国产v| 国产999精品久久久久久绿帽| 亚洲男人的天堂在线观看| 欧美日本一区二区三区| 国产真实精品久久二三区| 日韩美女视频19| 日韩一级成人av| 成人国产精品免费网站| 亚洲成人三级小说| 久久免费看少妇高潮|