Kalender DFGEN

March 2010
M T W T F S S
« Feb    
1234567
891011121314
15161718192021
22232425262728
293031  

Print TStrings: Mencetak Isi Memo

Prosedur ini melengkapi fungsi RenderForm di dalam libary atau pustaka Utility.pas.

===

procedure PrintTStrings(CSV:string;Rect:TRect;ACanv:TCanvas;AlignMent:TAlignment;ProcentLineSpace:word);
var L,L1: TStrings;
n,n1:integer;
sm,s:string;
linespace:integer;
x,y:integer;
NormalKeyboardChar:string;

begin
NormalKeyBoardChar := ‘ 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~!@#$%^&*()-_+=|\,<.>/?:;”‘+#39;
L:=TStringList.Create;
L1:=TStringList.Create;
try
L.Text := CSV;
//automatically, all #13 and #10 will cleared
//but fro sure, we clean again
for n:= 0 to L.Count -1 do
begin
sm:=DelNonListedChar(L.Strings[n],NormalKeyBoardChar);
L.Strings[n]:=Trim(sm); //space not printed
end;
//part again where every text can over width
for n:= 0 to L.Count -1 do
begin
sm:= L.Strings[n];
if (sm=”) or (ACanv.TextWidth(sm) <= (Rect.Right – Rect.Left)) then
L1.Add(sm)
else begin
repeat
s:=”;
while ACanv.TextWidth(s)<= (Rect.Right – REct.Left) do
begin
s:= s+ copy(sm,1,1);
Delete(sm,1,1);
if sm=” then break;
end;
L1.Add(s);
until sm=”;
end;
end;

Linespace := ACanv.TextHeight(‘0′)+((ACanv.TextHeight(‘0′)*ProcentLineSpace) div 100);
//Real text printed is L1
y:= Rect.Top + 1;
for n:= 0 to L1.Count -1 do
begin
//finish write if exceeds bottom rect
if (y+(n*linespace))>Rect.Bottom then break;

s:=L1.Strings[n];
case Alignment of
taLeftjustify: x:= Rect.Left + 1;
taRightjustify: x:= Rect.Right – ACanv.TextWidth(S)-1;
taCenter: x:= Rect.Left + ((Rect.Right – ACanv.TextWidth(S))div 2);
end;
ACanv.TextOut(x,y+(n*linespace),s);
end;
finally
L.Free;
L1.Free;
end;
end;

==

Prosedur yang tertulis di sini dapat saja berubah disebabkan HTML-TAG-STRIPTING. Untuk menghindari kesalahan silakan lihat di file library yang disertakan dalam paket source DFGEN versi terakhir.

Perhatikan, untuk TextAlignment, Delphi 7 mendukung 3 pilihan saja, yaitu kanan, tengah dan kiri. Kebetulan saya tidak memiliki Delphi Versi Terakhir, karena saya tidak memiliki kartu kredit untuk membayarnya melalui internet. Jadi, saya pertahankan tetap pada versi Delphi 7 dan masih banyak orang menggunakannya karena produk DFGEN dapat dijalankan di Windows 2000, XP, 2003 dan Vista.

Salam bahagia