Messagedlg avec choix du bouton qui a le focus

Soyez le premier à donner votre avis sur cette source.

Vue 6 170 fois - Téléchargée 397 fois

Description

tout est dans le titre, il suffit de remplacer messagedlg() par msgdlg()
le parametre DefaultBtn est 'No' pour le bouton mbNo par exemple.

Source / Exemple :


unit Dialogs2;

{$R-,T-,H+,X+}

interface

{$IFDEF LINUX}
uses WinUtils, Windows, Messages, SysUtils, CommDlg,   Dialogs,
  Printers, Classes, Graphics, Controls, Forms, StdCtrls;
{$ENDIF}
{$IFDEF MSWINDOWS}
uses Windows, Messages, SysUtils, CommDlg,  Dialogs,
  Printers, Classes, Graphics, Controls, Forms, StdCtrls;
{$ENDIF}

{ Msgdialog }

function MsgDlg(const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint;DefaultBtn: string): Integer;
function MsgDlgPos(const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer;DefaultBtn: string): Integer;
function MsgDlgPosHelp(const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer;
  const HelpFileName: string;DefaultBtn: string): Integer;

implementation

uses
  ExtCtrls, Consts, Dlgs, Math;

{ Message dialog }

function MsgDlg(const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint;DefaultBtn: string): Integer;
begin
  Result := MsgDlgPosHelp(Msg, DlgType, Buttons, HelpCtx, -1, -1, '',DefaultBtn);
end;

function MsgDlgPos(const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer;DefaultBtn: string): Integer;
begin
  Result := MsgDlgPosHelp(Msg, DlgType, Buttons, HelpCtx, X, Y, '',DefaultBtn);
end;

function MsgDlgPosHelp(const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer;
  const HelpFileName: string;DefaultBtn: string): Integer;
begin
  with CreateMessageDialog(Msg, DlgType, Buttons) do
    try
      HelpContext := HelpCtx;
      HelpFile := HelpFileName;
      if X >= 0 then Left := X;
      if Y >= 0 then Top := Y;
      if (Y < 0) and (X < 0) then Position := poScreenCenter;
      TButton(FindComponent(DefaultBtn)).TabOrder := 0;
      Result := ShowModal;
      
    finally
      Free;
    end;
end;

end.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.