![]() |
bezeichnungen bei standard-dialogen ändern, aber wie?
Hallo,
ich möchte gern die Bezeichnungen der Dialogelemente bei Standard-Dialogen ändern. ich weiß, daß es dazu mal was in der DP gab, ich kann's aber nicht mehr finden. Kann mich mal jemand auf die Spur setzen? Was ich will ist: beim TOpenDialog beispielsweise aus "Dateiname" "Filename" machen. Vielen dank und viele Grüße Marco |
Re: bezeichnungen bei standard-dialogen ändern, aber wie?
Halloele!
:wink: Moeglicherweise hilft das hier weiter - ist aber von der Konkurrenz :wink: ![]() ScotsMan |
Re: bezeichnungen bei standard-dialogen ändern, aber wie?
Delphi-Quellcode:
procedure TForm1.OpenDialog1Show(Sender: TObject);
var Dlg: TOpenDialog; DlgWnd: hWnd; begin Dlg := Sender as TOpenDialog; if ofOldStyleDialog in Dlg.Options then DlgWnd := Dlg.Handle else DlgWnd := GetParent(Dlg.Handle); if GetParent(DlgWnd) <> Application.Handle then exit; SetDlgItemText(DlgWnd, 1, 'Select'); // hier statt einer 1 für den Öffnen-Button die gewünschte Control-ID wählen, s.u. end;
Code:
Die Konstanten sind in Dlgs.pas definiert.
Control-ID Control description
chx1 The read-only check box cmb1 Drop-down combo box that displays the list of file type filters stc2 Label for the cmb1 combo box cmb2 Drop-down combo box that displays the current drive or folder, and that allows the user to select a drive or folder to open stc4 Label for the cmb2 combo box cmb13 Drop-down combo box that displays the name of the current file, allows the user to type the name of a file to open, and select a file that has been opened or saved recently. This is for earlier Explorer-compatible applications without hook or dialog template. Compare with edt1. edt1 Edit control that displays the name of the current file, or allows the user to type the name of the file to open. Compare with cmb13. stc3 Label for the cmb13 combo box and the edt1 edit control lst1 List box that displays the contents of the current drive or folder stc1 Label for the lst1 list box IDOK The OK command button (push button) IDCANCEL The Cancel command button (push button) pshHelp The Help command button (push button) |
Re: bezeichnungen bei standard-dialogen ändern, aber wie?
Hallo ScotsMan,
Zitat:
Kann mir jemand weiterhelfen? Vielen Dank und viele Grüße Marco |
Re: bezeichnungen bei standard-dialogen ändern, aber wie?
Hi Teebee,
Vielen herzlichen Dank! Genau das war's was ich suchte! Super! Viele Grüße Marco |
Re: bezeichnungen bei standard-dialogen ändern, aber wie?
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,
Der in #3 beschriebene Code von Teebee funktioniert, fast, einwandfrei. Es gibt nur ein kleines Problem, das ich ehrlichgesagt fast für einen Bug in Delphi halte. Wenn ich versuche, den Standardschalter in TSaveDialog zu ändern, interessiert das Delphi herzlich wenig. ;-) Folgender Code, sollte, ja eigentlich funktionieren, tut er aber nicht:
Delphi-Quellcode:
Alle anderen Konstanten funktionieren wunderbar, nur der Speichern-Schalter nicht. In TOpenDialog geht übrigens das ändern des Öffnen-Schalters ohne Probleme.
procedure TForm1.DialogSpeichernShow(Sender: TObject);
var Dlg: TSaveDialog; DlgWnd: hWnd; begin Dlg := Sender as TSaveDialog; if ofOldStyleDialog in Dlg.Options then DlgWnd := Dlg.Handle else DlgWnd := GetParent(Dlg.Handle); if GetParent(DlgWnd) <> Application.Handle then exit; SetDlgItemText(DlgWnd, idok, 'SpeicherTest!'); // klappt nicht! das versteh ich nicht! SetDlgItemText(DlgWnd, idCancel, 'AbbrechenTest!'); // klappt wunderbar! end; Hat irgendwer 'ne Idee, an was das liegen könnte? Ich hab die 3 Files mal als projekt hier drangehängt. Funktioniert das vielleicht blos unter D5 nicht? :-( Bitte um Hilfe!! Viele Grüße Marco |
Re: bezeichnungen bei standard-dialogen ändern, aber wie?
Hallo Marco
Überprüfe mal z.B mit WinSpy, ob die der Speichern Button auch wirklich die Control-ID idok hat. |
Re: bezeichnungen bei standard-dialogen ändern, aber wie?
Nachtrag: Die ID scheint korrekt zu sein. Geht bei mir (D6) aber auch nicht.
Besser ist es, die CDM_SETCONTROLTEXT Nachricht zu verwenden: The CDM_SETCONTROLTEXT message sets the text for the specified control in an Explorer-style Open or Save As dialog box. The dialog box must have been created with the OFN_EXPLORER flag; otherwise, the message fails.
Delphi-Quellcode:
SendMessage(DlgWnd, CDM_SETCONTROLTEXT, idOk, Longint(PChar('SpeicherTest!')));
|
Re: bezeichnungen bei standard-dialogen ändern, aber wie?
Hi Toms,
Erstmal vielen Dank für's testen. Ärgerlicherweise steigt mein gutes, altes ;-), D5, völlig aus. Weder die OFN_Explorer/Konstante ist ihm bekannt, noch die entsprechende Message. Kann man das auf D5 portieren oder hat vielleicht jemand noch 'ne Idee? Wäre echt superklasse! Viele Grüße Marco |
Re: bezeichnungen bei standard-dialogen ändern, aber wie?
Hast du die Unit CommDlg eingebunden?
PS: OFN_Explorer brauchst du nicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:52 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