AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi bezeichnungen bei standard-dialogen ändern, aber wie?

bezeichnungen bei standard-dialogen ändern, aber wie?

Offene Frage von "Marco Steinebach"
Ein Thema von Marco Steinebach · begonnen am 19. Sep 2008 · letzter Beitrag vom 19. Sep 2008
Antwort Antwort
Seite 1 von 2  1 2   
Marco Steinebach

Registriert seit: 4. Aug 2006
486 Beiträge
 
Delphi 5 Enterprise
 
#1

bezeichnungen bei standard-dialogen ändern, aber wie?

  Alt 19. Sep 2008, 13:01
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
Marco Steinebach
  Mit Zitat antworten Zitat
ScotsMan

Registriert seit: 1. Nov 2006
Ort: Leipzig
13 Beiträge
 
Delphi XE5 Professional
 
#2

Re: bezeichnungen bei standard-dialogen ändern, aber wie?

  Alt 19. Sep 2008, 14:02
Halloele!

Moeglicherweise hilft das hier weiter - ist aber von der Konkurrenz

http://www.delphi-treff.de/tipps/system/tipp/82/

ScotsMan
$ route add default roma.it
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#3

Re: bezeichnungen bei standard-dialogen ändern, aber wie?

  Alt 19. Sep 2008, 14:13
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:
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)
Die Konstanten sind in Dlgs.pas definiert.
  Mit Zitat antworten Zitat
Marco Steinebach

Registriert seit: 4. Aug 2006
486 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: bezeichnungen bei standard-dialogen ändern, aber wie?

  Alt 19. Sep 2008, 14:14
Hallo ScotsMan,
Zitat von ScotsMan:
Halloele!

Moeglicherweise hilft das hier weiter - ist aber von der Konkurrenz
nein, leider nicht. Ich brauch was, um die Beschriftungen bei TOpenDialog, TSafeDialog, etc. ändern zu können. Der von dir beschriebene Beitrag bietet nur die Möglichkeit es ohne VCL zu machen, aber hier kann man nüscht ändern!

Kann mir jemand weiterhelfen?
Vielen Dank und viele Grüße
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
Marco Steinebach

Registriert seit: 4. Aug 2006
486 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: bezeichnungen bei standard-dialogen ändern, aber wie?

  Alt 19. Sep 2008, 14:19
Hi Teebee,
Vielen herzlichen Dank! Genau das war's was ich suchte!
Super!
Viele Grüße
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
Marco Steinebach

Registriert seit: 4. Aug 2006
486 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: bezeichnungen bei standard-dialogen ändern, aber wie?

  Alt 19. Sep 2008, 18:57
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:
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;
Alle anderen Konstanten funktionieren wunderbar, nur der Speichern-Schalter nicht. In TOpenDialog geht übrigens das ändern des Öffnen-Schalters ohne Probleme.
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
Angehängte Dateien
Dateityp: zip speichertest_389.zip (1,2 KB, 4x aufgerufen)
Marco Steinebach
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#7

Re: bezeichnungen bei standard-dialogen ändern, aber wie?

  Alt 19. Sep 2008, 19:03
Hallo Marco

Überprüfe mal z.B mit WinSpy, ob die der Speichern Button auch wirklich die Control-ID idok hat.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#8

Re: bezeichnungen bei standard-dialogen ändern, aber wie?

  Alt 19. Sep 2008, 19:11
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.

  SendMessage(DlgWnd, CDM_SETCONTROLTEXT, idOk, Longint(PChar('SpeicherTest!')));
Thomas
  Mit Zitat antworten Zitat
Marco Steinebach

Registriert seit: 4. Aug 2006
486 Beiträge
 
Delphi 5 Enterprise
 
#9

Re: bezeichnungen bei standard-dialogen ändern, aber wie?

  Alt 19. Sep 2008, 19:50
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
Marco Steinebach
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#10

Re: bezeichnungen bei standard-dialogen ändern, aber wie?

  Alt 19. Sep 2008, 19:57
Hast du die Unit CommDlg eingebunden?

PS: OFN_Explorer brauchst du nicht.
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2023, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf