![]() |
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:
und wie ich schon mal geschrieben hab, will ich folgende MessageDlg-Funktion benutzen:
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;
Code:
vielleicht kann mir jemand sagen, was ich falsch mach...
function MessageDlg(const Msg: WideString; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; DefaultBtn: TMsgDlgBtn = mbNone; Bitmap: TBitmap = nil): Integer; overload;
:wall: |
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 |
Re: MessageDlg mit eigenen Icons
Delphi-Quellcode:
alles von hand umgecastet: und siehe da: [Fehler] Unit1.pas(37): Undefinierter Bezeichner: 'mbYesNo'
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; ^^ was soll das denn jetzt? |
Re: MessageDlg mit eigenen Icons
mbYes, mbNo sollte das heissen oder nicht? esgibt ja keinen YesNo-Button ;-)
|
Re: MessageDlg mit eigenen Icons
geht trotzdem nicht
|
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 |
Re: MessageDlg mit eigenen Icons
ok, die schreibweise war mir unbekannt! :stupid:
|
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 |
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; {...} |
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! ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:19 Uhr. |
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