⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 utilswin.pas

📁 这是一个有关文本编辑器的源程序,支持彩色语法,你可以任意修改,修改后发给我一份
💻 PAS
字号:
unit UtilsWin;

interface

uses
	Windows;

type
	TMessageButtons = (mbOK, mbOKCancel, mbYesNo, mbYesNoCancel, mbRetryCancel, mbAbortRetryIgnore);
	TMessageIcon = (miNone, miAsterisk, miInformation, miQuestion, miExclamation, miWarning, miHand, miStop, miError);
	TMessageModalState = (msDefault, msApplModal, msSystemModal, msTaskModal);
	TDefaultMessageType = (mtDefault, mtInformation, mtQuestion, mtWarning, mtProgramError, mtDeviceError);

function ShowMessageBox(const Content, Title: string; Buttons: TMessageButtons = mbOK; Icon: TMessageIcon = miNone; ModalState: TMessageModalState = msDefault; DisplayHelp: Boolean = False; DefaultButton: Integer = 0; Flags: Integer = 0): Integer;
function ShowDefaultMessageBox(const Content, Title: string; MessageType: TDefaultMessageType = mtDefault; Critical: Boolean = False; DisplayHelp: Boolean = False; DefaultButton: Integer = 0): Integer;

function CompressMessageFlags(Buttons: TMessageButtons; Icon: TMessageIcon; ModalState: TMessageModalState; DisplayHelp: Boolean; DefaultButton: Integer): Integer;

implementation

function ShowMessageBox;
begin
	Result := MessageBox (GetActiveWindow, PChar (Content), PChar (Title), Flags or CompressMessageFlags (Buttons, Icon, ModalState, DisplayHelp, DefaultButton));
end;

function ShowDefaultMessageBox;
var
	Buttons: TMessageButtons;
	Icon:    TMessageIcon;
begin
	case MessageType of
		mtInformation: begin
			if Critical then
				Buttons := mbOKCancel
			else
				Buttons := mbOK;
			Icon := miInformation;
		end;
		mtQuestion: begin
			if Critical then
				Buttons := mbYesNoCancel
			else
				Buttons := mbYesNo;
			Icon := miQuestion;
		end;
		mtWarning: begin
			if Critical then
				Buttons := mbOKCancel
			else
				Buttons := mbOK;
			Icon := miWarning;
		end;
		mtProgramError: begin
			if Critical then
				Buttons := mbOKCancel
			else
				Buttons := mbOK;
			Icon := miError;
		end;
		mtDeviceError: begin
			if Critical then
				Buttons := mbRetryCancel
			else
				Buttons := mbAbortRetryIgnore;
			Icon := miError;
		end;
		else begin
			if Critical then
				Buttons := mbOKCancel
			else
				Buttons := mbOK;
			Icon := miNone;
		end;
	end;
	Result := ShowMessageBox (Content, Title, Buttons, Icon, msDefault, DisplayHelp, DefaultButton, 0);
end;

function CompressMessageFlags;
begin
	case Buttons of
		mbOK:               Result := mb_OK;
		mbOKCancel:         Result := mb_OKCancel;
		mbYesNo:            Result := mb_YesNo;
		mbYesNoCancel:      Result := mb_YesNoCancel;
		mbRetryCancel:      Result := mb_RetryCancel;
		mbAbortRetryIgnore: Result := mb_AbortRetryIgnore;
		else                Result := 0;
	end;
	case Icon of
		miAsterisk:    Result := Result or mb_IconAsterisk;
		miInformation: Result := Result or mb_IconInformation;
		miQuestion:    Result := Result or mb_IconQuestion;
		miExclamation: Result := Result or mb_IconExclamation;
		miWarning:     Result := Result or mb_IconWarning;
		miHand:        Result := Result or mb_IconHand;
		miStop:        Result := Result or mb_IconStop;
		miError:       Result := Result or mb_IconError;
	end;
	case ModalState of
		msApplModal:   Result := Result or mb_ApplModal;
		msSystemModal: Result := Result or mb_SystemModal;
		msTaskModal:   Result := Result or mb_TaskModal;
	end;
	if DisplayHelp then
		Result := Result or mb_Help;
	case DefaultButton of
		1: Result := Result or mb_DefButton1;
		2: Result := Result or mb_DefButton2;
		3: Result := Result or mb_DefButton3;
		4: Result := Result or mb_DefButton4;
	end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -