Hallo zusammen!
Es geht nochmal um das Problem aus diesem] Post[/url], aber da der nicht allzuviel Resonanz erzeugt hat, versuche ich’s mal neu zu formulieren.
Ausgangsbasis ist eine normale VCL-Formularanwendung. Auf Form1 packe man ein TL17_ namens LL und zwei TButtons (ButtonDesign und ButtonPrint) mit folgenden Event-Handlern:
[code]procedure TForm1.ButtonDesignClick(Sender: TObject);
begin
LL.Design(0, Handle, ‘Design’, LL_PROJECT_LIST, ‘Test’, False, True);
end;
procedure TForm1.ButtonPrintClick(Sender: TObject);
begin
LL.Print(0, LL_PROJECT_LIST, ‘Test’, False, LL_PRINT_PREVIEW, LL_BOXTYPE_STDWAIT, Handle, ‘Preview’, False, ‘’);
end;
procedure TForm1.LLDefineVariables(Sender: TObject; UserData: Integer;
IsDesignMode: Boolean; var Percentage: Integer; var IsLastRecord: Boolean;
var EventResult: Integer);
begin
LL.LlDefineVariableExt(‘MyText’, ‘My sample text’, LL_TEXT);
LL.LlDefineVariableExt(‘MyGraphic’, ‘’, LL_DRAWING_USEROBJ);
end;
procedure TForm1.LLDrawUserobj(Sender: TObject; Name, Contents: string;
VarType: Integer; VarPointer: Pointer; ContentsHandle: Cardinal;
Isotropic: Boolean; Parameters: string; Canvas: TCanvas; var Rect: TRect;
PaintMode: TPaintMode);
var
s: string;
r: TRect;
SaveIndex: Integer;
begin
SaveIndex := SaveDC(Canvas.Handle);
try
r := Rect;
LPtoDP(Canvas.Handle, r, 2);
s := ‘My sample text’;
Canvas.Font.Name := ‘Arial’; // Hier gleichen Font wie im Text-Feld wählen
Canvas.Font.Size := 12;
SetMapMode(Canvas.Handle, MM_TEXT);
DPtoLP(Canvas.Handle, r, 2);
DrawText(Canvas.Handle, PChar(s), Length(s), r, DT_SINGLELINE or DT_NOCLIP);
finally
RestoreDC(Canvas.Handle, SaveIndex);
end;
end;[/code]
Wenn ich die Anwendung jetzt starte, den Design-Button drücke, mich durch den Wizard klicke und schließlich je eine MyText- und eine MyGraphic-Variable auf den Bericht packe, werden die beiden “My sample text”-Strings unterschiedlich groß dargestellt - siehe Designer-Screenshot.][/url] Wenn ich den Bericht speichere und drucken lasse, schaut’s nochmal anders aus - siehe Vorschau-Screenshot.][/url] Und bei Größenänderungen am Designer- bzw. Vorschaufenster verhalten sich Text- und Bildvariable auch unterschiedlich. Mein Ziel ist aber, das die beiden Strings in beiden Fenstern und unter allen Umständen gleich dargestellt werden.
Jetzt habe ich gedacht: Kein Problem, musst du halt den richtigen mapping mode setzen und gut isses. Aber das kriege ich nicht gebacken. Kann mir jemand auf die Sprünge helfen?
Grüße,
Uli