AGB  ·  Datenschutz  ·  Impressum  







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

Texte ändern in Tprintdialog

Ein Thema von R2009 · begonnen am 19. Nov 2010 · letzter Beitrag vom 19. Nov 2010
Antwort Antwort
R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#1

Texte ändern in Tprintdialog

  Alt 19. Nov 2010, 08:08
Hi DP'ler,
ich möchte die Standardtexte in Tprintdialog ändern.
Mit Topen bzw Tclosedialog funktioniert das prima mit Tprintdialog nicht.

Delphi-Quellcode:
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;
Die Prozedur wird an onshow des Dialogs gehängt. Zumindest der OK und ESC Button müssten funktioieren. geht aber nicht.

hat jemand einen Tip für mich?

Grüsse
rainer
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Texte ändern in Tprintdialog

  Alt 19. Nov 2010, 08:19
Was ist CDM_SETCONTROLTEXT? Die Nachricht kenne ich gar nicht. Hast du es schon mal mit SetDlgItemText (http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx) probiert? oder einfach mit WM_SETTEXT? Ist das Handle gültig, dass du holst?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Texte ändern in Tprintdialog

  Alt 19. Nov 2010, 08:25
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
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat
R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Texte ändern in Tprintdialog

  Alt 19. Nov 2010, 08:37
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).

   b:=SetDlgItemText(pd2.Handle,i,pchar(a));
Grüsse
Rainer
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Texte ändern in Tprintdialog

  Alt 19. Nov 2010, 08:51
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.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#6

AW: Texte ändern in Tprintdialog

  Alt 19. Nov 2010, 10:41
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
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat
R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Texte ändern in Tprintdialog

  Alt 19. Nov 2010, 11:00
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
Angehängte Dateien
Dateityp: zip dialogs.zip (244,5 KB, 4x aufgerufen)
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.

Geändert von R2009 (19. Nov 2010 um 11:04 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 17:05 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