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

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

?? tntdialogs.pas

?? TNT Components Source
?? PAS
?? 第 1 頁 / 共 3 頁
字號:

{*****************************************************************************}
{                                                                             }
{    Tnt Delphi Unicode Controls                                              }
{      http://www.tntware.com/delphicontrols/unicode/                         }
{        Version: 2.3.0                                                       }
{                                                                             }
{    Copyright (c) 2002-2007, Troy Wolbrink (troy.wolbrink@tntware.com)       }
{                                                                             }
{*****************************************************************************}

unit TntDialogs;

{$INCLUDE TntCompilers.inc}

interface

{ TODO: TFindDialog and TReplaceDialog. }
{ TODO: Property editor for TTntOpenDialog.Filter }

uses
  Classes, Messages, CommDlg, Windows, Dialogs,
  TntClasses, TntForms, TntSysUtils;

type
{TNT-WARN TIncludeItemEvent}
  TIncludeItemEventW = procedure (const OFN: TOFNotifyExW; var Include: Boolean) of object;

{TNT-WARN TOpenDialog}
  TTntOpenDialog = class(TOpenDialog{TNT-ALLOW TOpenDialog})
  private
    FDefaultExt: WideString;
    FFileName: TWideFileName;
    FFilter: WideString;
    FInitialDir: WideString;
    FTitle: WideString;
    FFiles: TTntStrings;
    FOnIncludeItem: TIncludeItemEventW;
    function GetDefaultExt: WideString;
    procedure SetInheritedDefaultExt(const Value: AnsiString);
    procedure SetDefaultExt(const Value: WideString);
    function GetFileName: TWideFileName;
    procedure SetFileName(const Value: TWideFileName);
    function GetFilter: WideString;
    procedure SetInheritedFilter(const Value: AnsiString);
    procedure SetFilter(const Value: WideString);
    function GetInitialDir: WideString;
    procedure SetInheritedInitialDir(const Value: AnsiString);
    procedure SetInitialDir(const Value: WideString);
    function GetTitle: WideString;
    procedure SetInheritedTitle(const Value: AnsiString);
    procedure SetTitle(const Value: WideString);
    function GetFiles: TTntStrings;
  private
    FProxiedOpenFilenameA: TOpenFilenameA;
  protected
    FAllowDoCanClose: Boolean;
    procedure DefineProperties(Filer: TFiler); override;
    function CanCloseW(var OpenFileName: TOpenFileNameW): Boolean;
    function DoCanClose: Boolean; override;
    procedure GetFileNamesW(var OpenFileName: TOpenFileNameW);
    procedure DoIncludeItem(const OFN: TOFNotifyEx; var Include: Boolean); override;
    procedure WndProc(var Message: TMessage); override;
    function DoExecuteW(Func: Pointer; ParentWnd: HWND): Bool; overload;
    function DoExecuteW(Func: Pointer): Bool; overload;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    function Execute: Boolean; override;
    {$IFDEF COMPILER_9_UP}
    function Execute(ParentWnd: HWND): Boolean; override;
    {$ENDIF}
    property Files: TTntStrings read GetFiles;
  published
    property DefaultExt: WideString read GetDefaultExt write SetDefaultExt;
    property FileName: TWideFileName read GetFileName write SetFileName;
    property Filter: WideString read GetFilter write SetFilter;
    property InitialDir: WideString read GetInitialDir write SetInitialDir;
    property Title: WideString read GetTitle write SetTitle;
    property OnIncludeItem: TIncludeItemEventW read FOnIncludeItem write FOnIncludeItem;
  end;

{TNT-WARN TSaveDialog}
  TTntSaveDialog = class(TTntOpenDialog)
  public
    function Execute: Boolean; override;
    {$IFDEF COMPILER_9_UP}
    function Execute(ParentWnd: HWND): Boolean; override;
    {$ENDIF}
  end;

{ Message dialog }

{TNT-WARN CreateMessageDialog}
function WideCreateMessageDialog(const Msg: WideString; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons): TTntForm;overload;
function WideCreateMessageDialog(const Msg: WideString; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; DefaultButton: TMsgDlgBtn): TTntForm; overload;

{TNT-WARN MessageDlg}
function WideMessageDlg(const Msg: WideString; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer; overload;
function WideMessageDlg(const Msg: WideString; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint; DefaultButton: TMsgDlgBtn): Integer; overload;

{TNT-WARN MessageDlgPos}
function WideMessageDlgPos(const Msg: WideString; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer): Integer; overload;
function WideMessageDlgPos(const Msg: WideString; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer; DefaultButton: TMsgDlgBtn): Integer; overload;

{TNT-WARN MessageDlgPosHelp}
function WideMessageDlgPosHelp(const Msg: WideString; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer;
  const HelpFileName: WideString): Integer; overload;
function WideMessageDlgPosHelp(const Msg: WideString; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer;
  const HelpFileName: WideString; DefaultButton: TMsgDlgBtn): Integer; overload;

{TNT-WARN ShowMessage}
procedure WideShowMessage(const Msg: WideString);
{TNT-WARN ShowMessageFmt}
procedure WideShowMessageFmt(const Msg: WideString; Params: array of const);
{TNT-WARN ShowMessagePos}
procedure WideShowMessagePos(const Msg: WideString; X, Y: Integer);

{ Input dialog }

{TNT-WARN InputQuery}
function WideInputQuery(const ACaption, APrompt: WideString;
   var Value: WideString): Boolean;
{TNT-WARN InputBox}
function WideInputBox(const ACaption, APrompt, ADefault: WideString): WideString;

{TNT-WARN PromptForFileName}
function WidePromptForFileName(var AFileName: WideString; const AFilter: WideString = '';
  const ADefaultExt: WideString = ''; const ATitle: WideString = '';
  const AInitialDir: WideString = ''; SaveDialog: Boolean = False): Boolean;

function GetModalParentWnd: HWND;

implementation

uses
  Controls, Forms, Types, SysUtils, Graphics, Consts, Math,
  TntWindows, TntStdCtrls, TntClipBrd, TntExtCtrls,
  {$IFDEF COMPILER_9_UP} WideStrUtils, {$ENDIF} TntWideStrUtils;

function GetModalParentWnd: HWND;
begin
  {$IFDEF COMPILER_9}
  Result := Application.ActiveFormHandle;
  {$ELSE}
  Result := 0;
  {$ENDIF}
  {$IFDEF COMPILER_10_UP}
  if Application.ModalPopupMode <> pmNone then
  begin
    Result := Application.ActiveFormHandle;
  end;
  {$ENDIF}
  if Result = 0 then begin
    Result := Application.Handle;
  end;
end;

var
  ProxyExecuteDialog: TTntOpenDialog;

function ProxyGetOpenFileNameA(var OpenFile: TOpenFilename): Bool; stdcall;
begin
  ProxyExecuteDialog.FProxiedOpenFilenameA := OpenFile;
  Result := False; { as if user hit "Cancel". }
end;

{ TTntOpenDialog }

constructor TTntOpenDialog.Create(AOwner: TComponent);
begin
  inherited;
  FFiles := TTntStringList.Create;
end;

destructor TTntOpenDialog.Destroy;
begin
  FreeAndNil(FFiles);
  inherited;
end;

procedure TTntOpenDialog.DefineProperties(Filer: TFiler);
begin
  inherited;
  TntPersistent_AfterInherited_DefineProperties(Filer, Self);
end;

function TTntOpenDialog.GetDefaultExt: WideString;
begin
  Result := GetSyncedWideString(FDefaultExt, inherited DefaultExt);
end;

procedure TTntOpenDialog.SetInheritedDefaultExt(const Value: AnsiString);
begin
  inherited DefaultExt := Value;
end;

procedure TTntOpenDialog.SetDefaultExt(const Value: WideString);
begin
  SetSyncedWideString(Value, FDefaultExt, inherited DefaultExt, SetInheritedDefaultExt);
end;

function TTntOpenDialog.GetFileName: TWideFileName;
var
  Path: array[0..MAX_PATH] of WideChar;
begin
  if Win32PlatformIsUnicode and NewStyleControls and (Handle <> 0) then begin
    // get filename from handle
    SendMessageW(GetParent(Handle), CDM_GETFILEPATH, SizeOf(Path), Integer(@Path));
    Result := Path;
  end else
    Result := GetSyncedWideString(WideString(FFileName), inherited FileName);
end;

procedure TTntOpenDialog.SetFileName(const Value: TWideFileName);
begin
  FFileName := Value;
  inherited FileName := Value;
end;

function TTntOpenDialog.GetFilter: WideString;
begin
  Result := GetSyncedWideString(FFilter, inherited Filter);
end;

procedure TTntOpenDialog.SetInheritedFilter(const Value: AnsiString);
begin
  inherited Filter := Value;
end;

procedure TTntOpenDialog.SetFilter(const Value: WideString);
begin
  SetSyncedWideString(Value, FFilter, inherited Filter, SetInheritedFilter);
end;

function TTntOpenDialog.GetInitialDir: WideString;
begin
  Result := GetSyncedWideString(FInitialDir, inherited InitialDir);
end;

procedure TTntOpenDialog.SetInheritedInitialDir(const Value: AnsiString);
begin
  inherited InitialDir := Value;
end;

procedure TTntOpenDialog.SetInitialDir(const Value: WideString);

  function RemoveTrailingPathDelimiter(const Value: WideString): WideString;
  var
    L: Integer;
  begin
    // remove trailing path delimiter (except 'C:\')
    L := Length(Value);
    if (L > 1) and WideIsPathDelimiter(Value, L) and not WideIsDelimiter(':', Value, L - 1) then
      Dec(L);
    Result := Copy(Value, 1, L);
  end;

begin
  SetSyncedWideString(RemoveTrailingPathDelimiter(Value), FInitialDir,
    inherited InitialDir, SetInheritedInitialDir);
end;

function TTntOpenDialog.GetTitle: WideString;
begin
  Result := GetSyncedWideString(FTitle, inherited Title)
end;

procedure TTntOpenDialog.SetInheritedTitle(const Value: AnsiString);
begin
  inherited Title := Value;
end;

procedure TTntOpenDialog.SetTitle(const Value: WideString);
begin
  SetSyncedWideString(Value, FTitle, inherited Title, SetInheritedTitle);
end;

function TTntOpenDialog.GetFiles: TTntStrings;
begin
  if (not Win32PlatformIsUnicode) then
    FFiles.Assign(inherited Files);
  Result := FFiles;
end;

function TTntOpenDialog.DoCanClose: Boolean;
begin
  if FAllowDoCanClose then
    Result := inherited DoCanClose
  else
    Result := True;
end;

function TTntOpenDialog.CanCloseW(var OpenFileName: TOpenFileNameW): Boolean;
begin
  GetFileNamesW(OpenFileName);
  FAllowDoCanClose := True;
  try
    Result := DoCanClose;
  finally
    FAllowDoCanClose := False;
  end;
  FFiles.Clear;
  inherited Files.Clear;
end;

procedure TTntOpenDialog.DoIncludeItem(const OFN: TOFNotifyEx; var Include: Boolean);
begin
  // CDN_INCLUDEITEM -> DoIncludeItem() is only be available on Windows 2000 +
  // Therefore, just cast OFN as a TOFNotifyExW, since that's what it really is.
  if Win32PlatformIsUnicode and Assigned(FOnIncludeItem) then
    FOnIncludeItem(TOFNotifyExW(OFN), Include)
end;

procedure TTntOpenDialog.WndProc(var Message: TMessage);
begin
  Message.Result := 0;
  if (Message.Msg = WM_INITDIALOG) and not (ofOldStyleDialog in Options) then begin
    { If not ofOldStyleDialog then DoShow on CDN_INITDONE, not WM_INITDIALOG }
    Exit;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品久久久久久久99蜜桃| 久久久国产午夜精品| 精品一区二区三区在线播放视频| 亚洲另类一区二区| 中文字幕一区二区在线观看 | 国产精品女主播在线观看| 日韩精品一区二区在线| 日韩美一区二区三区| 日韩欧美一级二级| www亚洲一区| 国产午夜精品理论片a级大结局 | 国产真实精品久久二三区| 久久精品国产久精国产| 精品一区二区三区不卡| 国产一区免费电影| 国产成人啪午夜精品网站男同| 精品一区二区av| 国产精品一区二区三区99| 国产999精品久久久久久| 国产suv一区二区三区88区| 成人免费观看av| 色婷婷精品大视频在线蜜桃视频| 欧美性猛交xxxxxx富婆| 在线播放一区二区三区| 日韩久久久精品| 中文字幕不卡的av| 一卡二卡三卡日韩欧美| 麻豆成人av在线| 成熟亚洲日本毛茸茸凸凹| 色丁香久综合在线久综合在线观看| 欧美性猛片xxxx免费看久爱| 精品少妇一区二区三区在线播放 | 亚洲日本中文字幕区| 亚洲已满18点击进入久久| 男男gaygay亚洲| 不卡电影一区二区三区| 欧美三电影在线| 久久精品一区四区| 亚洲亚洲精品在线观看| 激情综合一区二区三区| 色吧成人激情小说| 精品久久国产字幕高潮| 亚洲欧洲日产国产综合网| 全部av―极品视觉盛宴亚洲| 成人免费视频一区二区| 欧美老肥妇做.爰bbww视频| 国产三级精品在线| 天天色天天爱天天射综合| eeuss鲁片一区二区三区在线观看| 欧美酷刑日本凌虐凌虐| 亚洲精品免费在线| 国产91精品一区二区| 91麻豆精品国产91久久久更新时间| 国产农村妇女毛片精品久久麻豆| 偷拍一区二区三区| 一本大道综合伊人精品热热| 久久女同性恋中文字幕| 日韩电影在线一区二区| 91蜜桃在线免费视频| 久久久久久影视| 久久国产精品无码网站| 欧美日本韩国一区二区三区视频 | 91老师国产黑色丝袜在线| 日韩欧美成人一区二区| 亚洲一二三区不卡| 色视频成人在线观看免| 国产精品久久精品日日| 国产精品白丝av| 久久综合狠狠综合| 精品一区二区在线免费观看| 日韩视频一区二区| 奇米色777欧美一区二区| 欧美日韩国产系列| 午夜视频在线观看一区| 欧美午夜一区二区三区免费大片| 亚洲欧美日韩在线播放| 91丨九色丨黑人外教| 国产清纯美女被跳蛋高潮一区二区久久w| 婷婷国产在线综合| 欧美一区二区三区小说| 免费观看30秒视频久久| 日韩欧美成人一区| 国内精品伊人久久久久影院对白| 欧美大片日本大片免费观看| 色哦色哦哦色天天综合| 日韩欧美专区在线| 国产乱码精品一区二区三| 精品国产凹凸成av人导航| 国产精品99久久久久久似苏梦涵 | 99热这里都是精品| 亚洲人成精品久久久久久 | 亚洲永久免费av| 91精品国产欧美一区二区| 美女任你摸久久| 26uuu国产电影一区二区| 高清日韩电视剧大全免费| 18欧美乱大交hd1984| 91国产福利在线| 青青草原综合久久大伊人精品 | 99re在线精品| 一级中文字幕一区二区| 欧美一区二区三区在线视频| 久久激情五月婷婷| 亚洲国产成人在线| 欧亚洲嫩模精品一区三区| 人妖欧美一区二区| 国产亚洲人成网站| 色综合久久精品| 奇米精品一区二区三区在线观看一 | 国产白丝精品91爽爽久久| 亚洲欧美色图小说| 欧美成人一区二区三区片免费 | 欧美久久一区二区| 国产真实精品久久二三区| 国产精品久久久久久久久免费丝袜 | www.视频一区| 日韩中文字幕av电影| 亚洲国产激情av| 91精品国产一区二区三区香蕉| 黄色日韩网站视频| 亚洲一区二区三区视频在线播放 | 国产视频在线观看一区二区三区| 色婷婷综合激情| 国内精品伊人久久久久影院对白| 亚洲综合成人在线| 国产偷v国产偷v亚洲高清 | 蜜臀久久久99精品久久久久久| 国产精品色哟哟| 久久综合色鬼综合色| 色乱码一区二区三区88| 国产乱子伦一区二区三区国色天香| 一区二区三区日本| 国产精品久久久久久亚洲毛片| 欧美一级在线观看| 精品视频在线看| 99国产精品久久久| 国产suv精品一区二区883| 蜜臀va亚洲va欧美va天堂| 午夜久久久久久| 亚洲裸体xxx| 1区2区3区欧美| 国产欧美一二三区| 久久久久久亚洲综合影院红桃 | 九九**精品视频免费播放| 夜夜嗨av一区二区三区四季av | 91小视频在线| 国产丶欧美丶日本不卡视频| 日本中文在线一区| 天天影视色香欲综合网老头| 艳妇臀荡乳欲伦亚洲一区| 成人免费一区二区三区在线观看| 国产午夜精品福利| 国产日产欧美一区| 国产精品网站导航| 中文字幕高清不卡| 国产女同互慰高潮91漫画| 国产性天天综合网| 国产精品视频yy9299一区| 中文成人av在线| 中文字幕一区二区三区视频| 国产精品伦理一区二区| 中文字幕视频一区二区三区久| 国产精品国产三级国产普通话三级 | 日韩欧美一区二区免费| 欧美一区二区三区免费大片| 在线播放中文字幕一区| 日韩欧美国产小视频| 精品国产sm最大网站| 久久蜜臀中文字幕| 国产精品污污网站在线观看| 国产精品久久久久久久裸模| 亚洲激情六月丁香| 午夜成人免费视频| 日韩黄色免费网站| 久久国产尿小便嘘嘘| 成人黄色免费短视频| 色综合久久综合网欧美综合网| 在线观看91视频| 日韩限制级电影在线观看| 国产偷国产偷精品高清尤物 | 韩国成人在线视频| 爽好多水快深点欧美视频| 亚洲欧美偷拍另类a∨色屁股| 香蕉av福利精品导航| 国产一区二区在线免费观看| 国产不卡在线一区| 97se亚洲国产综合自在线观| 欧美久久久一区| 久久婷婷成人综合色| 亚洲视频中文字幕| 奇米亚洲午夜久久精品| 成人激情免费视频| 欧美精品日韩精品| 国产精品久久久久久久久动漫| 亚洲中国最大av网站| 看电影不卡的网站| 在线亚洲+欧美+日本专区| 精品日韩一区二区三区免费视频| 国产精品国产自产拍高清av王其 | 精品捆绑美女sm三区|