Autor Beitrag
Peti
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42



BeitragVerfasst: Do 03.04.03 09:51 
Hallo zusammen,

weiss jemand von Euch, ob und wie man den Titel von Dialogboxen, z.B. vom PrintDialog, ändern kann?

Ich wäre für Hilfe sehr dankbar,
Gruß,
Peti
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 03.04.03 10:10 
Bei den Open- und Savedialogen müßte das im Objekt-Inspektor gehen. Kuck da mal.
Peti Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42



BeitragVerfasst: Do 03.04.03 10:13 
Titel: Leider nicht
Nein, leider nicht. Allerdings kann man hier die Eigenschaft Title setzen.

Ich benötige es aber speziell im PrintDialog, der (scheinbar) keine solche Eigenschaft besitzt. Aber irgendwie muss das doch gehen, oder???


Zuletzt bearbeitet von Peti am Do 03.04.03 10:31, insgesamt 1-mal bearbeitet
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Do 03.04.03 10:26 
Hi

schau mal hier nach:

www.swissdelphicente.../showcode.php?id=419

MFG

- Ernesto -
Peti Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42



BeitragVerfasst: Do 03.04.03 11:03 
Prima, jetzt bin ich schon ein ganzes Stück weiter.

Mein Problem ist nun noch, dass ich den PrintDialog dynamisch erzeuge und Probleme habe, das OnShow-Event zuzuweisen.

Mein fehlerhafter Code:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
TYPE MyPrintDialog = class(TPrintDialog)
     procedure MyShow(Sender: TObject);
     end;
VAR PrintDialog1:MyPrintDialog;

Procedure MyPrintDialog.MyShow(Sender: TObject);
Begin
  {}
End;

Function XYZ:Boolean;
Begin
  PrintDialog1:=MyPrintDialog.Create(TargetForm);
  PrintDialog1.OnShow:=MyPrintDialog.MyShow(PrintDialog1);
End;


Er meckert bei
PrintDialog1.OnShow:=MyPrintDialog.MyShow(PrintDialog1);

Kann mir jemand sagen, was falsch ist?

Danke schonmal,
Gruß,
Peti
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Do 03.04.03 12:06 
Hall Peti!

Nur kurz überflogen. So sollte es klappen:  PrintDialog1.OnShow:=MyPrintDialog.MyShow;Gruß wulfskin!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
Peti Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42



BeitragVerfasst: Fr 04.04.03 07:32 
Titel: Geht nicht....
Hi Wulfskin,

leider nicht.... der Compiler meldet den folgenden Fehler:

[Fehler] WordDocumentPrinter.pas(66): Inkompatible Typen: 'TNotifyEvent' und 'Procedure'

Ich habe das Gefühl, dass das eher damit zusammenhängt, dass ich das Ganze in einer Unit abwicklen möchte, in der es kein Formular gibt.
Wenn ich den PrintDialog auf ein bestehendes Formular setzen würde wäre alles kein Problem. Ich habe aber leider kein Formular, brauche aber das OnShow-Ereignis, um den Titel des Dialogs ändern zu können.

Alles andere - also Word-Dokument im Hintergrund einlesen, ändern und ausdrucken usw. klappt einwandfrei - nur diesen blöden Titel des DruckDialogs kann ich nicht ändern *grrr*

Kann mir jemand einen Tip geben, wie ich diese Ereignis-Routine auch ohne Formular aufrufen kann???

Ich wäre für Tips sehr dankbar.....

Trotzdem schonmal vielen vielen Dank für die ganzen Tips,
Grüße,
Peti
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Fr 04.04.03 08:10 
Hi,

dann nimm doch einfach ein Formular und setze von diesem die Eigenschaft Visible auf False. Dann ist es zur Laufzeit nicht sichtbar.

MFG

- Ernesto -
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: Fr 04.04.03 08:22 
wulfskin hat folgendes geschrieben:
So sollte es klappen:PrintDialog1.OnShow:=MyPrintDialog.MyShow;

Fast..
ausblenden Quelltext
1:
PrintDialog1.OnShow:=PrintDialog1.MyShow;					


Oder aber du machst das ganze gleich im Constructor:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
TYPE MyPrintDialog = class(TPrintDialog) 
    public
       procedure MyShow(Sender: TObject); 
       constructor Create(AOwner: TComponent); override;
     end; 

constructor MyPrintDialog.Create(AOwner: TComponent);
begin
  inherited;
  OnShow := MyShow;
end;


Falls er in der Zeile:constructor Create(AOwner: TComponent); override;
einen Fehler meldet, dann ersetz override einfach durch reintroduced. (Weiß jetzt nicht ob der Constructor des PrintDialogs als virtual deklariert ist oder nicht..)

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!
Peti Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42



BeitragVerfasst: Fr 04.04.03 08:44 
Super, damit werde ich mal herumexperimentieren.

Danke für Eure Hilfe!!!

Gruß,
Peti