¡¾Delphi報±í開發¡¿FastReport
½ñÌ쿪ʼÑо¿FastReport¡£
ÒÔÏÂÊǶ¯Ì¬´´½¨FASTREPORTµÄDEMO
var
Page: TfrxReportPage;
Band: TfrxBand;
DataBand: TfrxMasterData;
Memo: TfrxMemoView;
begin
{ clear a report }
frxReport1.Clear;
{ add a dataset to the list of ones accessible for a report }
frxReport1.DataSets.Add(frxDBDataSet1);
{ add a page }
Page := TfrxReportPage.Create(frxReport1);
{ create a unique name }
Page.CreateUniqueName;
{ set sizes of fields, paper and orientation by default }
Page.SetDefaults;
{ modify paper's orientation }
Page.Orientation := poLandscape;
{ add a report title band}
Band := TfrxReportTitle.Create(Page);
Band.CreateUniqueName;
{ it is sufficient to set the «Top» coordinate and height for a band }
{ both coordinates are in pixels }
Band.Top := 0;
Band.Height := 20;
{ add an object to the report title band }
Memo := TfrxMemoView.Create(Band);
Memo.CreateUniqueName;
Memo.Text := 'Hello FastReport!';
Memo.Height := 20;
{ this object will be stretched according to band's width }
Memo.Align := baWidth;
{ add the masterdata band }
DataBand := TfrxMasterData.Create(Page);
DataBand.CreateUniqueName;
DataBand.DataSet := frxDBDataSet1;
{ the Top coordinate should be greater than the previously added band's
top + height}
DataBand.Top := 100;
DataBand.Height := 20;
{ add an object on master data }
Memo := TfrxMemoView.Create(DataBand);
Memo.CreateUniqueName;
{ connect to data }
Memo.DataSet := frxDBDataSet1;
Memo.DataField := 'xm';
Memo.SetBounds(0, 0, 100, 20);
{ adjust the text to the right object's margin }
Memo.HAlign := haRight;
{ show the report }
frxReport1.ShowReport;
FastReportÎÊÌâÕûÀí
http://blog.163.com/ex_plus/blog/static/1795953220090811151264/
FastReport ³ÌÐòÔ±ÊÖ²á
http://www.evget.com/zh-CN/Info/ReadInfo.aspx?id=9451
ͨÓôòÓ¡Ä£¿é¡£
ÔÚϵͳÖо³£ÐèÒªÓõ½¶ÔÒѾµÃµ½µÄÊý¾Ý¼¯£¬½øÐдòÓ¡¡£Îª´ËÌØÒâÖ
Ïà¹ØÎĵµ£º
´ËÎÄÊǸù¾Ý°éË®ÀÏ´óµÄʵÀý×öµÄСÐ޸ģ¡
ÒÔÏÂÊǸöÈ˼û½â£¬ÈçÓдíÎóÇëÖ¸Õý:)
ÒªÏë¿ç½ø³Ì·ÃÎÊDBGRID£¬Ã²ËÆÖ»ÄÜÓÃHOOK£¬Ð´Ò»¸öDLLÏë°ì·¨×¢È뵽Ŀ±ê½ø³Ì¡£×¢Èë³É¹¦ºó£¬Ê¹DLLÓëÄ¿±ê½ø³ÌÔÚͬһ½ø³Ì¿Õ¼äÖÐ(ÆäÄÚÓÐһЩϸ½ÚÎÊÌ⣬Çë²Î¼û´úÂë)£¬Õâʱ¿ÉÒÔ·ÃÎÊÄ¿±ê½ø³ÌµÄVCL×é¼þ¡£²¢°ÑVCL×é¼þµÄÊý¾Ýͨ¹ ......
var
arrChar : array [0..4] of Char;
b : Byte;
s : string;
begin
s := 'Test';
Move(Pointer(s)^, arrChar, Length(s)); //string to array of char
ShowMessage(arrChar);
b := Ord(s[1]); //First byte string to one single byte
......
ÏÖÔÚÓ¦ÓÃϵͳÁ÷ÐÐÓÃB/S¿ª·¢£¬Ô缸Äêǰ¿ÉÊÇC/SµÄÌìÏÂÄØ£¬ÎÒÏÖÔÚ×öµÄijº½¿Õ¹«Ë¾»õÔ˽áËãά»¤¹¤×÷£¬Æäϵͳ¾ÍÊÇÀûÓÃDelphi¿ª·¢µÄC/SÓ¦ÓóÌÐò£¡ÔÚÈÕ³£µÄά»¤¹¤×÷ÖУ¬ÄÑÃâÒª¶ÔÒѾ×öºÃµÄCOM+×é¼þ½øÐе÷ÊÔ£¬ÒԲ鿴¾ßÌåµÄ´¦ÀíÂß¼£¡±¾ÎľÍÊǽéÉÜÔÚWindowsXP»·¾³ÏÂÈçºÎÔÚDelphiÖе÷ÊÔCOM+×é¼þ£¡
µÚÒ»²½£º¼Ç¼ÏÂÄãÏ£Íûµ÷ÊÔµÄCOM+×é¼þ ......
DelphiÖÐFormat×Ö·û´®ËµÃ÷
function Format(const Format: string; const Args: array of const):
string;
Format×Ö·û´®ËµÃ÷£º
"%" [index ":"] ["-"] [width] ["." prec] type
(1)
¸ñʽ»¯×Ö·û´®±ØÐëÒÔ%¿ªÍ·
(2) [index ":"]
Ë÷ÒýÖ¸µÄÊÇArgs²ÎÊýÁбíÖÐÒªÏÔʾµÄÿһÏîµÄÐòºÅ¡£±ÈÈ磺ArgsÊÇ
......
²»ÂÛÊý×éÔªËØÊÇʲôÀàÐÍ£¬¾²Ì¬Êý×éµÄ¾Ö²¿±äÁ¿×Ü»áÔÚÕ»ÉÏ·ÖÅä¡£Èç¹û¶ÑÕ»´óС²»¹»½«»áµ¼ÖÂÒì³£¡£ÏÂÀý°µ²Ø×ÅÒ»¸öΣÏÕµÄbug
procedure stackover;
var
s:array [0..4100] of string[255];
begin
end;
delphiĬÈÏÕ»×î´óΪ$100000×Ö½Ú£¬ÉÏÀýÖеÄÕ»ÉÏ·ÖÅäµÄ´óÏÀΪ256*4100>$10000¡£²âÊÔ±ØÈ»»á³öÏÖÒì³£Stack overf ......