AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene Buttons in MessageBox

Ein Thema von ChrisF · begonnen am 31. Jan 2003 · letzter Beitrag vom 28. Jun 2021
Antwort Antwort
ChrisF

Registriert seit: 22. Nov 2002
Ort: Bonn
14 Beiträge
 
Delphi 5 Enterprise
 
#1

Eigene Buttons in MessageBox

  Alt 31. Jan 2003, 12:53
Tach zusammen,

ich möchte in einer MessageBox nicht die Vordefinierten Buttons (OK, Abbrechen etc.) verwenden, sondern eigene Beschriftungen vergeben (in meinem Fall 'Kopieren' und 'Verschieben' meinetwegen mit den Rückgabewerden IDCOPY und IDMOVE.
Die API-Hilfe gibt mir irgendwie das vernichtende Urteil, es gäbe nur die Vordefinierten Buttons...

Gibt es eine elegante Möglichkeit das Prob zu lösen?
Auf eine separate Form möchte ich nur ungern zurückgreifen müssen.

Bin für jede Hilfe dankbar die nicht gerade damit zu tun hat, eine eigene User32.dll zu schreiben

Gruß
Christoph
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2
  Alt 31. Jan 2003, 12:58
Um ein eigenes Formular wirst du nicht drumrum kommen. das was du wilklst, bietet die Messagebox von Windows einfach nicht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ChrisF

Registriert seit: 22. Nov 2002
Ort: Bonn
14 Beiträge
 
Delphi 5 Enterprise
 
#3
  Alt 31. Jan 2003, 13:07
Zitat von Luckie:
Um ein eigenes Formular wirst du nicht drumrum kommen. das was du wilklst, bietet die Messagebox von Windows einfach nicht.
Danke für die Aufmunternden Worte
Bin ich eigentlich der Einzige, der sowas will?
Naja, nichtsdestotrotz habe ich es gerade geschafft.

Zwar nicht mit MessageBox, sondern mit MessageDlg resp. CreateMessageDialog.

Danke trotzdem

Chris
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4
  Alt 31. Jan 2003, 13:16
Wie hast du das jetzt gemacht? Die Funktionen, die du angesproochen hast, kenn doch auch nur die Buttons von der Messagebox.

Zeig mal bitte Code, das interessiert mich jetzt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ChrisF

Registriert seit: 22. Nov 2002
Ort: Bonn
14 Beiträge
 
Delphi 5 Enterprise
 
#5
  Alt 31. Jan 2003, 14:32
Habe nach TButton Componenten gesucht und gefunden

Sieht dann so aus:

Delphi-Quellcode:
function ExtMessageDialog(const Msg: string; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; Captions: array of string): Integer;
var
  aMsgDlg: TForm;
  i: Integer;
  dlgButton: TButton;
  CaptionIndex: Integer;
  Left : Integer;
begin
  aMsgDlg := CreateMessageDialog(Msg, DlgType, Buttons);
  Left := Trunc(aMsgDlg.Width / 2) -80;
  captionIndex := 0;
  for i := 0 to aMsgDlg.ComponentCount - 1 do
  begin
    if (aMsgDlg.Components[i] is TButton) then
    begin
      dlgButton := TButton(aMsgDlg.Components[i]);
      if CaptionIndex > High(Captions) then Break;
      dlgButton.Width := 75;
      dlgButton.Left := Left;
      Left := Left + 80;
      dlgButton.Caption := Captions[CaptionIndex];
      Inc(CaptionIndex);
    end;
  end;
  Result := aMsgDlg.ShowModal;
end;
habe die Anregung gefunden auf www.swissdelphicenter.ch

Chris
  Mit Zitat antworten Zitat
DLX

Registriert seit: 17. Apr 2018
20 Beiträge
 
#6

AW: Eigene Buttons in MessageBox

  Alt 17. Jul 2018, 14:23
wie genau ruft man diese function auf ?
Gelöst:
ExtMessageDialog('Es fehlt die Berechtigung für die Bearbeitung!',mtError , [mbYes ,mbNo, mbAbort],['Ja', 'Nein', 'Anmelden']);

Geändert von DLX (17. Jul 2018 um 14:34 Uhr)
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#7

AW: Eigene Buttons in MessageBox

  Alt 17. Jul 2018, 17:38
Der Thread ist über 15 Jahre alt.

Heutzutage nimmt man für so etwas einen TTaskDialog.
  Mit Zitat antworten Zitat
Linusdere42069

Registriert seit: 27. Jun 2021
1 Beiträge
 
#8

AW: Eigene Buttons in MessageBox

  Alt 27. Jun 2021, 22:52
Und so was wird uns heute immer noch in der Schule gelehrt, dass man da nicht auf eine andere Programmiersprache zurückgreifen kann.

(PS: BITTE NICHT FRAU TRENSCH)

mfg Linus
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

AW: Eigene Buttons in MessageBox

  Alt 28. Jun 2021, 13:12
Und die aktuelleren GUI-Richtlinien für MSWindows besagen auch, dass man das auf die Buttons draufschreibt, was gemacht wird.

z.B. in einem Anmeldendialg steht dann nicht OK/Abbrechen sondern Login/Abbrechen oder /Schließen drauf.


Das Umbenennen, was mit CreateMessageDialog/TMessageDialog ging, das kann man auch mit dem TaskDialog machen.
Und das der TaskDialog unter Windows XP nicht funktioniert, das kann man fast ignorrieren.
XE und Win7 sind tot und auch die ersten Versionen/Updates von Win10 sind bereits abgekündigt.


Der TMessageDialog war ja ursprünglich auch nur ein Bugfix, für uralte Windowse, wo dessen DialogAPIs nicht existierten.
$2B or not $2B

Geändert von himitsu (28. Jun 2021 um 13:15 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz