Hallo MAC,
danke für die schnelle Antwort. Mein Problem ist nämlich, dass ich bestimmte aktuelle Variablen (PrintSession,PrintSettings,PageFormat) von TPrinter bzw. unter Mac die abgeleitete Klasse TCarbonprinter verändern möchte, die derzeit nur als readonly in public-Bereich von TCarbonprinter deklariert sind:
Code: Alles auswählen
TCarbonPrinter = class(TPrinter)
private
FPrintSettings: PMPrintSettings;
public
property PrintSettings: PMPrintSettings read FPrintSettings;
end;
//Im Hauptprogramm kann die Variable PrintSettings auslesen:
procedure TForm1.Button1Click(Sender: TObject);
var
Result: PMPrintSettings;
begin
Result:=TCarbonPrinter(Printer).PrintSettings;
end;
Nun möchte ich aber auch die Variable nicht nur auslesen können, sondern die Variable FPrintSettings ändern können. Meine Idee war:
Code: Alles auswählen
TCarbonPrinter = class(TPrinter)
private
FPrintSettings: PMPrintSettings;
procedure SetPrintSetting(NewSetting:PMPrintSettings);
public
property PrintSettings: PMPrintSettings read FPrintSettings write SetPrintSetting;
end;
//Im Hauptprogramm kann auf die Variable PrintSettings zugreifen:
procedure TForm1.Button1Click(Sender: TObject);
var
Result: PMPrintSettings;
begin
Result:=Get_von_irgendwoher;
TCarbonPrinter(Printer).PrintSettings:=Result;
end;
Ich muß aber ehrlich zugeben, dass es bei mir derzeit daran scheitert, dass ich dann, nachdem ich eine abgeleitete Klasse erstellt habe, nicht mehr weiß wie ich im Programm auf die aktuell im Printer gesetzte Variable PrintSettings mit der eigenen abgeleiteten Klasse zugreifen und verändern kann. Da meine abgeleitete Instanz ja überhaupt nichts mehr mit Printer Instanz zu tun hat. Sprich, man sieht schon, dass ich in objektorientierter Programmierung noch nicht ganz firm bin.

Für Tipps wäre ich sehr dankbar.
Lg,
jus
P.S. Das wäre ja auch ein Feature, dass man unter Umständen ins Standard LCL aufnehmen könnte.