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/)
-   -   Delphi messageDLG oder Messagebox mit andersfarbigen hintergrund (https://www.delphipraxis.net/55221-messagedlg-oder-messagebox-mit-andersfarbigen-hintergrund.html)

richard_boderich 18. Okt 2005 09:49


messageDLG oder Messagebox mit andersfarbigen hintergrund
 
moin,

ich wuerd gern einen kleinen abfrage dialog (ja/nein/abbrechen) erzeugen , aber mit einer benutzerdefinierten hintergrundfarbe. geht das und wenn ja wie?

was ich nehm ist doch egal oder ? weil mesagebox und messagedlg sind zwei sachen die das selbe tun oder?


Richard

Robert Marquardt 18. Okt 2005 09:59

Re: messageDLG oder Messagebox mit andersfarbigen hintergru
 
Die Dialoge sind beide nicht zur Veraenderung vorgesehen. Es sind schliesslich Standarddialoge.
Es gibt aber massive Unterschiede.
MessageDlg ist ein VCL-Dialog und unterliegt daher den VCL-Beschraenkungen wie mangelnde Threadfestigkeit und mangelnde Lokalisierung.
MessageBox ist ein windows-Dialog und ist daher threadfest und lokalisiert. Zusaetzlich bietet MessageBox noch mehr Optionen als MessageDlg.
Es laesst sich z. B. der Default-Button konfigurieren.

RavenIV 18. Okt 2005 10:17

Re: messageDLG oder Messagebox mit andersfarbigen hintergru
 
prinzipiell kannst du von jedem Fenster (und ein Dialog ist ein Fenster) die Informationen abfragen und auch verändern.
Musst dazu halt die Windows-API-Funktionen verwenden.
mehr zu diesem Thema kannst du mit der Suche finden.

oder einfacher:
Du machst den Dialog halt selber, dann kannst Du ihn gestalten, wie du willst.

gruessle

richard_boderich 18. Okt 2005 10:23

Re: messageDLG oder Messagebox mit andersfarbigen hintergru
 
@all,

erstma danke fuer eure antworten. aber ich komme mit selbsterstellten dialogen nich zurecht.
mit dialog.create. kannst du vielleicht mal ein kleines einfaches beispiel bringen? das waere sehr nett von dir. hatte das naehmlich schonmal probiert und bin gescheitert. es soll aber kein anderes form werden. ich hoffe das es das mit create dialog auch nich wird.

Gruß Richard

jfheins 18. Okt 2005 10:26

Re: messageDLG oder Messagebox mit andersfarbigen hintergru
 
Da: http://www.delphipraxis.net/internal...=335248#335248

Einfach suchen :mrgreen: (hier nach dialog in Tutorials ;))

richard_boderich 18. Okt 2005 11:24

Re: messageDLG oder Messagebox mit andersfarbigen hintergru
 
thx heinsi, werd mir das gleich ma reinziehn.
auf die einfachstens sachen kommt man eben oft nich ;)

Gruß Richard

jbg 18. Okt 2005 11:57

Re: messageDLG oder Messagebox mit andersfarbigen hintergru
 
Zitat:

Zitat von Robert Marquardt
MessageDlg ist ein VCL-Dialog und unterliegt daher den VCL-Beschraenkungen wie mangelnde Threadfestigkeit und mangelnde Lokalisierung.

Wieso mangelnde Lokalisierung? Mit der ITE lässt sich die MessageDlg einfach übersetzen.

Zitat:

Es laesst sich z. B. der Default-Button konfigurieren.
Das geht auch mit MessageDlg. Man muss dazu halt statt MessageDlg() die CreateMessageDialog aufrufen und kann dann alles umgestalten.

richard_boderich 18. Okt 2005 12:09

Re: messageDLG oder Messagebox mit andersfarbigen hintergru
 
@jbg

kannst du das naeher ausfuehren? ich hab es jetz mit CreateMessageDialog gemacht.
scheitere aber wieder an meinem problem, wie ich die einzelnen buttons abfragen kann.

:(

Gruß Richard

jfheins 18. Okt 2005 19:43

Re: messageDLG oder Messagebox mit andersfarbigen hintergru
 
[quote="jbg"]
Zitat:

Zitat von Robert Marquardt
Mit der ITE lässt sich die MessageDlg einfach übersetzen.

.. und mit MessageBox kommen die Standardelemente garantiert in der Sprache, die der User spricht, da von Windows in der Systemsprache angezeigt ;) Also brauch man gar keine ITE :mrgreen:

jbg 18. Okt 2005 20:28

Re: messageDLG oder Messagebox mit andersfarbigen hintergru
 
Zitat:

Zitat von jfheins
da von Windows in der Systemsprache angezeigt

Ja, aber vielleicht will der Benutzer auf seinem englischen Windows einen Französichen Dialog. Dann steht man mit MessageBox im Regen :mrgreen:



Zitat:

kannst du das naeher ausfuehren? ich hab es jetz mit CreateMessageDialog gemacht.
scheitere aber wieder an meinem problem, wie ich die einzelnen buttons abfragen kan
Delphi-Quellcode:
uses
  Dialogs;
function ShowRedDefNoDlg(const Msg: string): TModalResult;
var
  Dlg: TForm;
begin
  Dlg := CreateMessageDialog(Msg, mtConfirmation, [mbYes, mbNo, mbCancel]);
  try
    Dlg.Color := clRed; // damit der Dialog auf alle Fälle auffällt.
    (Dlg.FindComponent('Message') as TLabel).Font.Color := clWhite;
    Dlg.ActiveControl := Dlg.FindComponent('No') as TButton;
    Result := Dlg.ShowModal;
  finally
    Dlg.Free;
  end;
end;

richard_boderich 18. Okt 2005 22:58

Re: messageDLG oder Messagebox mit andersfarbigen hintergru
 
jbg ich versteh das nich ich erhalte tmodalresult und kann das mit ispositive-, isnegativresult auswerten damit hab ich 3 moeglichkeiten, aber was mach ich wenn ich acht buttons im dialog haben will beispielsweise?
wie kann ich die einzelnen onclick ereichnisse abfragen und auswerten?


Gruß Richard.

jbg 18. Okt 2005 23:29

Re: messageDLG oder Messagebox mit andersfarbigen hintergru
 
Zitat:

Zitat von richard_boderich
jbg ich versteh das nich ich erhalte tmodalresult und kann das mit ispositive-, isnegativresult auswerten damit hab ich 3 moeglichkeiten

Mit was prüfst du das ab? :shock:
Dafür gibt es mrYes, mrNo, mrCancel, mrOk, mrAbort, mrIgnore, mrRetry, ...

Zitat:

wie kann ich die einzelnen onclick ereichnisse abfragen und auswerten?
OnClick Ereignis zuweisen.

Zitat:

aber was mach ich wenn ich acht buttons im dialog haben will beispielsweise?
Dafür solltest du dann wohl besser ein eigenes Formular aufmachen. Mit CreateMessageDialog geht das zwar auch, aber (ohne dir jetzt zu nahe treten zu wollen) dürfte bei dir noch mindestens 1 Monat Lernaufwand dazwischen liegen. Und wenn ich dir jetzt alles vorkauen würde, ...

richard_boderich 19. Okt 2005 10:20

Re: messageDLG oder Messagebox mit andersfarbigen hintergru
 
ich versteh nich wie ich mit ispositive result unterscheiden soll, ob mrok oder mryes
gedrueckt wurde, wenn ispositivresult nur ein boolean liefert?

Gruß Richard

jbg 19. Okt 2005 13:32

Re: messageDLG oder Messagebox mit andersfarbigen hintergru
 
Zitat:

Zitat von richard_boderich
ich versteh nich wie ich mit ispositive result unterscheiden soll

Ich auch nicht. Was willst du denn mit IsPositiveResult überhaupt bei MessageDlg? Das passt nicht zusammen. Schnapp dir besser ein Delphi für Einsteiger Buch, oder durchwühle das Internet nach "Wie lerne ich Programmieren (in Delphi)" Tutorien.

richard_boderich 19. Okt 2005 15:00

Re: messageDLG oder Messagebox mit andersfarbigen hintergru
 
ja ich hab's kapiert jbg. lass mal gut sein. ich will dich nicht weiter stressen . ;)
ich bin autodidakt, was bedeutet das es mir immer mal wieder wissenluecken ueber das eine oder andere thema gibt.


PS:

ispositiv result wird uebringens in einem code verwendet den ich hier in der DP gefunden habe. um den ruckgabewert eines ok bzw. cancel buttons von einem dialog
auszuwerten.


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