Für alle, die es interessiert:
Folgende Lösung für das Problem habe ich inzwischen selber entwickelt.
Ich arbeite im RaveDesigner bei allen Textfeldern, die einen Embedded Font zugewiesen bekommen sollen grundsätzlich mit FontMastern. Diese liegen direkt in Page1 und bekommen einen nach einem festen Schema aufgebauten Namen FontEmbedded_<Name>_<Size>, wobei <Name> der Name des gewünschten Embedded Printerfonts ist und <Size> die zugehörige gewünschte Größe. Im Programm mache ich dann nach dem Open meiner TRvObject-Instanz einen Aufruf an meine unten aufgelistete Prozedur "ChangeRaveFonts". In dieser werden alle Child-Objekte in Page1 gesucht. Es wird geprüft, ob es Objekte des Typs TRaveFontMaster sind und wenn ja, ob ihr Name mit dem Text "EmbeddedFonts_" beginnt. Falls ja, werden Schriftart und Schriftgröße ausgetauscht.
Gruß Daddy
Delphi-Quellcode:
procedure ChangeRaveFonts(RpName: String);
var RP : TRavePage;
C : TComponent;
I : Integer;
T : String;
begin
RP := TRavePage(RvMain.ProjMan.FindRaveComponent(RpName + '.Page1', NIL));
if RP <> NIL then
begin
for I := 0 to RP.ChildCount do
begin
// Ist das Objekt ein Fontmaster?
if RP.Child[I] is TRaveFontMaster then
with TRaveFontMaster(RP.Child[I]) do
begin
// Beginnt sein Name mit "FontEmbedded_"?
if SameText(Copy(Name, 1, 13), 'FontEmbedded_') then
begin
// Neue Schriftart zuweisen
T := Copy(Name, 14, 99);
T := Copy(T, 1, Pos('_', T) - 1);
Font.Name := T;
// Neue Schriftgröße zuweisen (Default = 10)
T := Copy(T, Pos('_', T) + 1, 99);
Font.Size := StrToIntDef(T, 10);
end;
end;
end;
end;
end;