Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Jedi-Komponente TJvSaveDialog sieht wie TJvOpenDialog aus!


galagher - Fr 05.07.13 19:49
Titel: Jedi-Komponente TJvSaveDialog sieht wie TJvOpenDialog aus!
Hallo!

Die Jedi-Komponente TJvSaveDialog sieht unter Windows 7 wie TJvOpenDialog aus, auch ist da ein "Öffnen"-Button statt ein "Speichern unter"-Button!
Wie kann ich das beheben?

Und ja: Es ist wirklich eine TJvSaveDialog-Komponente, kein Irrtum!

lg
galagher


jaenicke - Fr 05.07.13 21:10

Die Buttonbeschriftung funktioniert wohl in der Tat nicht. Als Typ wird wohl anders als beim Delphi-Dialog immer der Öffnen-Dialog benutzt (ich weiß nicht, ob das so soll, vielleicht ist es die falsche Class ID) und dann sollen eigentlich die Beschriftungen entsprechend der Einstellungen im Objektinspektor aktualisiert werden (in TJvOpenDialog.UpdateCaptions).

Aber wenn der Titel z.B. lautet "Bild speichern unter..." sollte es klar sein was gemeint ist. Gibt es eigentlich irgendwas was die JEDI Komponenten besser können? Denn ich nutze immer die Standarddialoge und sehe abgesehen vom anpassbaren Dialogtitel auch keinen Unterschied zu den JEDIs, sprich keinen Grund die überhaupt zu nutzen.


galagher - Fr 05.07.13 21:34

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Die Buttonbeschriftung funktioniert wohl in der Tat nicht. Als Typ wird wohl anders als beim Delphi-Dialog immer der Öffnen-Dialog benutzt (ich weiß nicht, ob das so soll, vielleicht ist es die falsche Class ID) und dann sollen eigentlich die Beschriftungen entsprechend der Einstellungen im Objektinspektor aktualisiert werden (in TJvOpenDialog.UpdateCaptions).

Unit JvDialogs.pas:

Delphi-Quelltext
1:
TJvOpenDialog = class(TOpenDialog)                    

Test:

Delphi-Quelltext
1:
2:
JvSaveDialog1.Title := 'Speichern unter';  //Wird als Caption angezeigt
JvSaveDialog1.DefBtnCaption := 'Speichern';  //Nützt nichts, weder im OI noch im Quellcode


user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Gibt es eigentlich irgendwas was die JEDI Komponenten besser können? Denn ich nutze immer die Standarddialoge und sehe abgesehen vom anpassbaren Dialogtitel auch keinen Unterschied zu den JEDIs, sprich keinen Grund die überhaupt zu nutzen.
Naja, habe noch nicht soviel damit gemacht. Manche Komponenten, wie TJvMainMenu und TJvPopupMenu sehen meiner Meinung nach einfach besser aus, und ich habe auch schon TJvWideHLEditor verwendet, ist wohl der Nachfolger von TSynEdit.

Bleibt die Frage stehen, was kann man tun, um einen Speichern unter-Button zu bekommen?


galagher - Do 08.08.13 21:44

user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Bleibt die Frage stehen, was kann man tun, um einen Speichern unter-Button zu bekommen?

Ich habe das jetzt in der Datei JvDialogs.pas so gelöst:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
constructor TJvOpenDialog.Create(AOwner: TComponent);
begin
  //...

  // Title für TJvSaveDialog angepasst (ursprgl. "Öffnen") 
  if ClassName = 'TJvSaveDialog' then
    Title := 'Speichern unter';  // <- Hier wäre eine Konstante gefragt statt des Strings!
end;


Ich frage mich also, ob es eine solche Konstante gibt? Irgendwo muss der String 'Speichern unter' in den Save-Dialogen ja herkommen, ich habe aber nichts gefunden. :?

//Edit: Dank an user profile iconMartok für's Aufräumen der Doppelposts!