Delphi-PRAXiS

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/)
-   -   MessageDlg (https://www.delphipraxis.net/45806-messagedlg.html)

ColdFire 12. Mai 2005 16:17


MessageDlg
 
Hy Leute eine frage..
und zwar kann ich den Focus auf Nein bei einer Message setzen
denn bei dem bsp wird immer automatisch JA als focus

wie kann ich das ändern ?

Delphi-Quellcode:
MessageDlg('MEINE ABFRAGE',
    mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  begin
  {..}
  end;

Matze 12. Mai 2005 16:30

Re: MessageDlg
 
Schau dir mal dieses Tutorial an. ;)

TeronG 12. Mai 2005 16:32

Re: MessageDlg
 
oder mit n bissl schummeln ^^
Delphi-Quellcode:
if (MessageDlg('', mtWarning, [mbNo, mbOK], 0) = mrOk) then beep;
:mrgreen:

alcaeus 12. Mai 2005 16:32

Re: MessageDlg
 
Zitat:

Zitat von Matze
Schau dir mal dieses Tutorial an. ;)

Was er damit sagen will: bei MessageDlg kannst du keinen Default-Button angeben. Dazu musst du Windows.MessageBox verwenden.

Greetz
alcaeus

DP-Maintenance 12. Mai 2005 17:09

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.
Schwupp... ist ne Delphi-Frage

ColdFire 13. Mai 2005 07:10

Re: MessageDlg
 
Toll das tut bringt mich auch nicht weiter...

So blöd bin ich nun auch wieder nicht ...
Delphi-Quellcode:
MessageDlg('BlaBla'',
         mtConfirmation, [mbYes, mbNo], 0,mbNo) = mrYes;
das mit 3ten parameter mbNo hat gefruchtet aber nur wenn die Unit QDialogs dabei ist dass problem dass ich dennoch habe dann sind alle messages in English *gg* tja ich werde wohl selbt ne lösung finden müssen

lg CF

SubData 13. Mai 2005 07:24

Re: MessageDlg
 
Theoretisch kann man auch die Fragestellung des Dialogs so anpassen, dass die Antwort im Prinzip umgedreht werden muss.

Anstatt "Soll die Datei überschrieben werden?" also "Wollen Sie die Datei behalten?" :)

Im Falle eines Falles, ist Schummeln wirklich alles :mrgreen:

MathiasSimmack 13. Mai 2005 08:26

Re: MessageDlg
 
Zitat:

Zitat von ColdFire
Toll das tut bringt mich auch nicht weiter...

MessageBox aus dem API bringt dich nicht weiter? :gruebel:

ColdFire 13. Mai 2005 08:34

Re: MessageDlg
 
ich brauche genau diese funktion:
dies funktion funktioniert nur mit der unit QDialogs nicht DIALOGS

Delphi-Quellcode:
function MessageDlg(const Caption: WideString; const Msg: WideString; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; DefaultBtn: TMsgDlgBtn = mbNone; Bitmap: TBitmap = nil): Integer; overload;
wie man sehen kann ist hier DefaultBtn: TMsgDlgBtn = mbNone (mbNo) währe richtig funktioniert auch soweit nur der Sh*t daran ist dass dann meine message anders aussieht (icon dabei) und die Buttons YES und NO heißen nicht Ja und Nein :D

soweit klar ?
funktionieren tut es mit dieser funktion nur english halt :D

danke für eure hife werde mir ne eigene funktion coden müssen

lg CF

MathiasSimmack 13. Mai 2005 08:39

Re: MessageDlg
 
Ich möchte dich, zum letzten Mal, auf die API-Funktion "MessageBox" (Windows-Unit) hinweisen:
Delphi-Quellcode:
MessageBox(self.Handle,
  'Meine Frage, die man mit Ja beantworten soll, auch wenn Nein vorausgewählt ist.',
  'Ein Titel',
  MB_YESNO or MB_ICONQUESTION or { --> } MB_DEFBUTTON2 { <-- }
);

TStringlist 13. Mai 2005 08:55

Re: MessageDlg
 
Das Stichwort heißt hier: CreateMessageDialog


Delphi-Quellcode:
...
  if OwnMessageDlg('kleiner Test !', mtWarning, [mbYes, mbNo, mbCancel], 'No') = mrNo then
  begin
    ...
  end;
...


function TForm1.OwnMessageDlg(const AMsg: string; ADlgType: TMsgDlgType; AButtons: TMsgDlgButtons; FocusTo : String) : TModalResult;
var DlgForm : TForm;
begin
  DlgForm := CreateMessageDialog(AMsg,ADlgType,AButtons);
  DlgForm.ActiveControl := TButton(DlgForm.FindComponent(FocusTo));
  Result := DlgForm.ShowModal;
  DlgForm.Release;
end;

Vor dem ShowModal dieses DlgFormulars sind hier nämlich alle seine Properties schön manipulierbar, also auch dessen ActiveControl.

(Edit: Nur die Formulierung (edit2: im Abschlusskommentar *g*) war noch nicht ganz optimal; ...edit3: und es gab doch noch 'ne Codezeile rauszuhauen *gg*)

alcaeus 13. Mai 2005 09:26

Re: MessageDlg
 
Zitat:

Zitat von ColdFire
dies funktion funktioniert nur mit der unit QDialogs nicht DIALOGS

Wenn ich mich recht erinnere dann ist QDialogs eine CLX-Unit, und wenn du mit der VCL arbeitest, solltest du diese nach Moeglichkeit weglassen, sonst musst du eine zusaetzliche DLL mit deinem Programm ausliefern ;)

Greetz
alcaeus

MathiasSimmack 13. Mai 2005 09:29

Re: MessageDlg
 
Zitat:

Zitat von alcaeus
Wenn ich mich nicht ganz erinnere

Was will uns der Meister damit sagen? :gruebel:

alcaeus 13. Mai 2005 09:32

Re: MessageDlg
 
Zitat:

Zitat von MathiasSimmack
Zitat:

Zitat von alcaeus
Wenn ich mich nicht ganz erinnere

Was will uns der Meister damit sagen? :gruebel:

Was denn? (siehe oben) :stupid:
:wall: ist wohl noch zu frueh :wall:

Greetz
alcaeus

ColdFire 13. Mai 2005 09:36

Re: MessageDlg
 
danke @ alcaeus ich arbeite mit VCL

schade dass das nicht so funktioniert wie ich will *gg*

lg @ all und schönes WE

leddl 13. Mai 2005 09:46

Re: MessageDlg
 
Zitat:

Zitat von ColdFire
schade dass das nicht so funktioniert wie ich will *gg*

Eigentlich sollte man gar nicht mehr antworten. Du bist ja anscheinend blind, was die richtigen Antworten angeht. Oder du liest nicht alle Posts. MathiasSimmack hat dich jetzt bereits mehrmals auf die Funktion MessageBox aus der Unit Windows hingewiesen... Nur scheinst du darauf keine Antwort geben zu wollen.. :roll:

Matze 13. Mai 2005 09:58

Re: MessageDlg
 
Und in meinem Tutorial ist das auch nicht so schlecht erklärt. :?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 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