![]() // Hiermit
kann man ein TMessageDlg mit Vintage-Icons erstellen.
Hinweis: unit UnitDLG; interface {$R 'DLGBitmaps.res' 'DLGBitmaps.rc'} uses Winapi.Windows, Vcl.Dialogs, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.StdCtrls, Vcl.ExtCtrls; function MyDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; DefaultButton: TMsgDlgBtn = mbOk; X: Integer = -1; Y: Integer = -1; Cl: TColor = clBtnface; Ico: TBitmap = nil; Transparency: Boolean = True) : TModalResult; implementation function MyDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; DefaultButton: TMsgDlgBtn = mbOk; X: Integer = -1; Y: Integer = -1; Cl: TColor = clBtnface; Ico: TBitmap = nil; Transparency: Boolean = True) : TModalResult; var Dlg: TForm; MsgIcon: TImage; begin Dlg := CreateMessageDialog(Msg, DlgType, Buttons, DefaultButton); MsgIcon := TImage(Dlg.FindComponent('Image')); Dlg.Color := Cl; if MsgIcon <> nil then begin MsgIcon.Transparent := Transparency; if Ico <> nil then MsgIcon.Picture.Bitmap := Ico else case DlgType of mtWarning: MsgIcon.Picture.Bitmap.Handle := LoadBitmap(Hinstance, 'Warning'); mtError: MsgIcon.Picture.Bitmap.Handle := LoadBitmap(Hinstance, 'Error'); mtInformation: MsgIcon.Picture.Bitmap.Handle := LoadBitmap(Hinstance, 'Information'); mtConfirmation: MsgIcon.Picture.Bitmap.Handle := LoadBitmap(Hinstance, 'Confirmation'); end; end; Dlg.Formstyle := fsStayOnTop; if (X >= 0) then Dlg.Left := X; if (Y >= 0) then Dlg.Top := Y; Result := Dlg.showmodal; Dlg.Free; end; end. //------------------------------------------------------------ // Beispielaufrufe in Form1 uses UnitDLG; procedure TForm1.Button1Click(Sender: TObject); begin MyDLG('Vorsicht! Das ist ein Versuch!', mtWarning, [mbOk]); end; procedure TForm1.Button2Click(Sender: TObject); var DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; DefaultButton: TMsgDlgBtn; X, Y: Integer; begin DlgType := mtConfirmation; Buttons := [mbYes, mbNo]; DefaultButton := mbNo; X := 300; Y := 200; MyDLG('Wollen Sie Viel Geld?', DlgType, Buttons, DefaultButton, X, Y); end; procedure TForm1.Button3Click(Sender: TObject); begin MyDLG('Irgendetwas ist immer falsch.', mtError, [mbCancel]); end; procedure TForm1.Button4Click(Sender: TObject); begin MyDLG('Nur mal so', mtCustom, [mbOk], mbOk, 200, 200); end; procedure TForm1.Button5Click(Sender: TObject); var bm: TBitmap; begin bm := TBitmap.Create; bm.LoadFromFile('D:\Bilder\Totenkopf.bmp'); // 32x32 empfohlen MyDLG('ALARM', mtWarning, [mbOk], mbOk, -1, -1, clFuchsia, bm, False); bm.Free; end; |
||||||
![]()
Zugriffe seit
6.9.2001 auf Delphi-Ecke |