Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi MessageDlg mit eigenen Icons (https://www.delphipraxis.net/23932-messagedlg-mit-eigenen-icons.html)

Helmi 12. Jun 2004 11:57

Re: MessageDlg mit eigenen Icons
 
mmh

ich versteh das nicht :wall:

ich poste jetzt einfach mal meinen Code - ist zwar nur ein Test aber egal:

Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  Bitmap: TBitmap;
begin

  Bitmap := TBitmap.Create;

  Bitmap.LoadFromFile('e:\delphi\Icons, Bitmaps, Avi\bmp\alarm.bmp');

  MessageDlg('hallo', mtCustom, [mbYes, mbNo], 0, [mbnone], Bitmap);

  Bitmap.Free;
end;
und wie ich schon mal geschrieben hab, will ich folgende MessageDlg-Funktion benutzen:

Code:
function MessageDlg(const Msg: WideString; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; DefaultBtn: TMsgDlgBtn = mbNone; Bitmap: TBitmap = nil): Integer; overload;
vielleicht kann mir jemand sagen, was ich falsch mach...

:wall:

Sebastian Nintemann 12. Jun 2004 12:45

Re: MessageDlg mit eigenen Icons
 
Hmm...
Ich seh auch nicht warum der Code nicht funktioniert. Die eckigen Klammern bei mbNone müssen da nicht hin. Aber wenn man die wegmacht funktionierts immernoch nicht.
Hat jemand das mal versucht? Bei mir klapps jedenfalls nicht (D6 und D7, wobei die D6-OH sowieso nur eine MessageDlg Funktion kennt).
Hab auch eine von den anderen überladenen MessageDlg-Funktionen versucht, ging auch nicht. Delphi will immer nur die Parameter, die in der Standard-MessageDlg erwartet werden (Die mein D6 in der OH hat).

Viele Grüße, Sebastian

nailor 12. Jun 2004 12:56

Re: MessageDlg mit eigenen Icons
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Bitmap: TBitmap;
begin

  Bitmap := TBitmap.Create;

  Bitmap.LoadFromFile('e:\delphi\Icons, Bitmaps, Avi\bmp\alarm.bmp');

  MessageDlg(WideString('hallo'), TMsgDlgType(mtCustom),

   TMsgDlgButtons(mbYesNo), Longint(0), TMsgDlgBtn(mbnone), TBitmap(Bitmap));

  Bitmap.Free;
end;
alles von hand umgecastet: und siehe da: [Fehler] Unit1.pas(37): Undefinierter Bezeichner: 'mbYesNo'

^^ was soll das denn jetzt?

Meflin 12. Jun 2004 13:10

Re: MessageDlg mit eigenen Icons
 
mbYes, mbNo sollte das heissen oder nicht? esgibt ja keinen YesNo-Button ;-)

Helmi 12. Jun 2004 13:12

Re: MessageDlg mit eigenen Icons
 
geht trotzdem nicht

nailor 12. Jun 2004 13:25

Re: MessageDlg mit eigenen Icons
 
ja. muss es heißen. allerdings hat die dumme delphi-hilfe mir gesagt, dass es auch mbYesNo gibt (allerdings nur in QDialogs) ind Dialogs allein gibt es nur mbYesNoCancel

aber auch mit Korrektur klappt es nicht

Meflin 12. Jun 2004 13:27

Re: MessageDlg mit eigenen Icons
 
ok, die schreibweise war mir unbekannt! :stupid:

nailor 12. Jun 2004 13:30

Re: MessageDlg mit eigenen Icons
 
PS: hab mich vertan, siehe post oben

PS2: schaut euch mal die API-Funktion "MessageBoxIndirect" an, damit sollte es gehen

Dani 12. Jun 2004 14:10

Re: MessageDlg mit eigenen Icons
 
In Delphi 6 scheint es keine solche Funktion zu geben (MessageDlg mit BMP Parameter ist gemeint) und MessageBoxIndirect gibts nur für NT :gruebel:

Delphi-Quellcode:
{...}

 Uses
  Dialogs,
  ExtCtrls;

{...}

function MessageDlgImg(const Msg: String; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; BMP32x32: TBitmap=nil; CustomTitle: String=''; HelpCtx: Integer=0): Integer; overload;

function MessageDlgImg(const Msg: String; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; ImagePath: String=''; CustomTitle: String=''; HelpCtx: Integer=0): Integer; overload;

implementation

{...}

function MessageDlgImg(const Msg: String; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; BMP32x32: TBitmap=nil; CustomTitle: String=''; HelpCtx: Integer=0): Integer; overload;
var Img: TImage;
begin
 if DlgType = mtCustom then DlgType := mtInformation;
 Img := nil;
  with CreateMessageDialog(Msg, DlgType, Buttons) do
    try
      HelpContext := HelpCtx;
      HelpFile := Application.HelpFile;
      Position := poScreenCenter;
      if CustomTitle <> '' then Caption := CustomTitle;
      if BMP32x32 <> nil then
       begin
        Img := FindComponent('Image') as TImage;
        if Img <> nil then
         begin
          Img.Picture.Bitmap.Assign(BMP32x32);
          Img.Transparent := true;
         end;
       end;
      Result := ShowModal;
    finally
      Free;
      Img := nil;
    end;
end;


function MessageDlgImg(const Msg: String; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; ImagePath: String=''; CustomTitle: String=''; HelpCtx: Integer=0): Integer; overload;
var Img: TImage;
begin
 if DlgType = mtCustom then DlgType := mtInformation;
 Img := nil;
  with CreateMessageDialog(Msg, DlgType, Buttons) do
    try
      HelpContext := HelpCtx;
      HelpFile := Application.HelpFile;
      Position := poScreenCenter;
      if CustomTitle <> '' then Caption := CustomTitle;
      if ImagePath <> '' then
       begin
        Img := FindComponent('Image') as TImage;
        if Img <> nil then
         try
          Img.Picture.LoadFromFile(ImagePath);
          Img.Transparent := true;
         except
          {tue nichts}
         end;
       end;
      Result := ShowModal;
    finally
      Free;
      Img := nil;
    end;
end;

{ Beispiel }

procedure TForm1.Button1Click(Sender: TObject);
var BMP: TBitmap;
begin
  MessageDlgImg('Test', mtWarning, [mbYes, mbNo],
                'H:\ProjectPics\LAN.bmp', 'Guten Tag');

  BMP := TBitmap.Create;
  try
   BMP.LoadFromFile('H:\ProjectPics\LAN.bmp');
   MessageDlgImg('Test', mtWarning, [mbYes, mbNo],
                 'H:\ProjectPics\LAN.bmp', 'Guten Tag');
  finally
   BMP.Free;
  end;
end;

{...}

Robert_G 12. Jun 2004 15:51

Re: MessageDlg mit eigenen Icons
 
Da war wohl wieder jemand zu faul für die Suche.
Genau dieses Thema hatten wir hier erst vor 2 oder 3 Wochen!
Das Bildchen in einem Message-Dialog ändern


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:19 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz