![]() |
Texte ändern in Tprintdialog
Hi DP'ler,
ich möchte die Standardtexte in Tprintdialog ändern. Mit Topen bzw Tclosedialog funktioniert das prima mit Tprintdialog nicht.
Delphi-Quellcode:
Die Prozedur wird an onshow des Dialogs gehängt. Zumindest der OK und ESC Button müssten funktioieren. geht aber nicht.
procedure TPrintdlg.printDialogEEShow(Sender: TObject);
const LB_FILETYPES_ID = 1089;LB_FILENAME_ID = 1090;LB_DRIVES_ID = 1091;LB_Title=1088; var eePrintDialog: HWND;a:string; begin eePrintDialog := GetParent((sender as Tprintdlg).Handle); a:='haha'; SendMessage(eePrintDialog, CDM_SETCONTROLTEXT, idOk, Longint(PChar(a))); a:='tata'; SendMessage(eePrintDialog, CDM_SETCONTROLTEXT, idCancel, Longint(PChar(a))); a:='tutu'; SendMessage(eePrintDialog, CDM_SETCONTROLTEXT, LB_FILETYPES_ID, Longint(PChar(a))); a:='pfui'; SendMessage(eePrintDialog, CDM_SETCONTROLTEXT, LB_FILENAME_ID, Longint(PChar(a))); a:='tröt'; SendMessage(eePrintDialog, CDM_SETCONTROLTEXT, LB_DRIVES_ID, Longint(PChar(a))); end; hat jemand einen Tip für mich? Grüsse rainer |
AW: Texte ändern in Tprintdialog
Was ist CDM_SETCONTROLTEXT? Die Nachricht kenne ich gar nicht. Hast du es schon mal mit SetDlgItemText (
![]() |
AW: Texte ändern in Tprintdialog
Hi Luckie,
handle hat sich geändert, sodass ich annehmen muss, dass es gültig ist. CDM_SETCONTROLTEXT stammt aus CommDlg Wie gesagt, das ganze funktioniert mit den beiden anderen Dialogtypen einwandfrei. Grüsse Rainer |
AW: Texte ändern in Tprintdialog
Hi Luckie,habs mit deinem Vorschlag probiert. Kommt aber letztlich auf dasselbe raus was ich schon probiert hatte. Tprintdialog reagiert auf kein i was immer ich auch versuche.
pd2 ist der name des Tprinterdialogs (auf die Form gezogen).
Delphi-Quellcode:
b:=SetDlgItemText(pd2.Handle,i,pchar(a));
Grüsse Rainer |
AW: Texte ändern in Tprintdialog
Habs mal anders probiert, vielleicht hilft es Dir
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,CommDlg; const InputMessage = WM_USER + 200; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; PrintDialog1: TPrintDialog; procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } procedure InputMess(var Msg: TMessage); message InputMessage; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button2Click(Sender: TObject); begin PostMessage(Handle, InputMessage, 0, 0); PrintDialog1.Execute(handle) end; procedure TForm1.InputMess(var Msg: TMessage); const LB_FILETYPES_ID = 1089;LB_FILENAME_ID = 1090;LB_DRIVES_ID = 1091;LB_Title=1088; var eePrintDialog: HWND;a:string; begin eePrintDialog := PrintDialog1.Handle;//Screen.Forms[0].Handle; if (eePrintDialog <> 0) then begin a:='haha'; SetDlgItemText(eePrintDialog,idOK,pchar(a)); a:='tata'; SetDlgItemText(eePrintDialog,idCancel,pchar(a)); end; end; end. |
AW: Texte ändern in Tprintdialog
Hi,
vielen Dank, das funktioniert. Es würde mich trotzdem intessieren wo der Unterschied liegt. Im meinem und in deim Fall machen wir nichts anderes als eine message an Tprinterdalog zu senden. In deinem Fall erzwingst du das senden durch den postmessage Befehl. Eigentlich müsste es doch reichen mit SetDlgItemText den Text zu setzen. Diese system kann ich bei mir nicht anwenden. Muss mit abgeleitetem Tprintfiledialog arbeiten. Grüsse Rainer |
AW: Texte ändern in Tprintdialog
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
das funktioniert solange ich das in der Hauptform implementiere. Habs jetzt in meine eigene Klasse exportiert. Funktioniert nicht. Hab den Code angehängt. Vielleicht weiss jemand eine Lösung. (das ist Quick&dirty Code zum ausprobieren) Aufruf mit button5. Button1 und 2 sind für die anderen Dialoge (open und save) button 3 und 4 sind nutzlos. Grüsse Rainer |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:22 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