QFComponent由秋風(fēng)(QQ:315795176)開發(fā)的控件包,采用自定義的富文本格式,集編輯、顯示、導(dǎo)出和打印等功能。純pascal代碼,沒使用額外的dll/so,只需QFComponent.pas這個(gè)文件就可以實(shí)現(xiàn)文字渲染等功能,可跨平臺(tái)使用。
QFComponent for lazarus 包含 4個(gè)控件:
1、TQFRichView:采用自定義的富文本格式,類RichView控件,支持超鏈接、書簽跳轉(zhuǎn)等豐富的功能,適合作為使用說明等用途;
2、TQFScrollingText:采用自定義的富文本格式,可實(shí)現(xiàn)圖文的滾動(dòng);
3、TQFHorizontalScrollingText:?jiǎn)涡袡M向滾動(dòng)控件,同樣支持自定義富文本格式。
4、TQFGridPanelComponent:秋風(fēng)原創(chuàng)控件。支持在單元格綁定可視控件,運(yùn)行時(shí)單元格綁定的控件會(huì)吸附到相應(yīng)的單元格里。重點(diǎn)解決了lazarus跨平臺(tái)時(shí)界面布局問題(用lazarus編寫過跨平臺(tái)應(yīng)用的就清楚,同一代碼linux和windows控件位置是不一致的)。
最新源碼下載:
https://github.com/szlbz/QFComponent.git
說明:
1、控件的自定義富文件格式渲染等核心功能和TQFGridPanelComponent是秋風(fēng)獨(dú)立原創(chuàng)編寫的。
2、QFRichEditor參考了https://github.com/DreamVB編寫的Markdown Editor界面及代碼
3、滾動(dòng)控件的滾動(dòng)部分參考了lazarus about的算法。
控件功能慢慢添加中!
2024.09.29
1、修復(fù)添加TQFHorizontalScrollingText控件可能出錯(cuò)的Bug
2、修復(fù)添加QFComponent任一控件后,TPageControl控件只顯示1個(gè)Tab的Bug。
2024.08.23
修正同1個(gè)form有多個(gè)TQFGridPanelComponent時(shí)的bug。
2024.07.27
修正TQFGridPanelComponent單元格寬度調(diào)整的Bug。
2024.07.13
優(yōu)化TQFGridPanelComponent單元格寬度調(diào)整算法,調(diào)整后寬度調(diào)整更順暢。
2024.06.25
重構(gòu)TQFGridPanelComponent單元格顯示及單元格寬度調(diào)整的算法。

2024.06.22
TQFGridPanelComponent可以設(shè)置每個(gè)文字類型單元格的顏色。

2024.06.18
繼續(xù)完善TQFGridPanelComponent。
2024.06.17
修正TQFGridPanelComponent已知的bug
2024.06.15
TQFGridPanelComponent添加design時(shí)鼠標(biāo)右鍵單元格設(shè)置菜單功能

2024.05.27
1、優(yōu)化TCustomText及TQFGridPanelComponent
2、TQFGridPanelComponent添加popmenu菜單功能。
2024.05.25
增加TQFGridPanelComponent單元格的Gap,可以單獨(dú)設(shè)置每個(gè)單元格的Gap
2024.05.23
修正TQFGridPanelComponent鼠標(biāo)調(diào)整單元格的Bug
2024.05.17

2024.05.08
1、修正TQFGridPanelComponent已知的Bug
2、根據(jù)TQFGridPanelComponent的寬和高變化比例自動(dòng)調(diào)整單元格的大小比例。
2024.05.04
重點(diǎn)增強(qiáng)TQFGridPanelComponent功能:
1、用鼠標(biāo)可以單獨(dú)或整列(按信Shift左右移動(dòng)鼠標(biāo)左鍵)調(diào)整單元格寬度
2、設(shè)置每個(gè)單元格線的類型
3、設(shè)置表格線的顏色
4、設(shè)置鼠標(biāo)當(dāng)前有控件的單元格高亮顏色
5、用鼠標(biāo)右鍵打開單元格設(shè)置等等
6、界面布局使用json格式保存,可用LoadQFConfig和SaveQFConfig調(diào)用或保存
銀河麒麟運(yùn)行截圖:
在windows 11運(yùn)行截圖:



2024.04.13
1、修正鼠標(biāo)移動(dòng)到單元格時(shí)單元格邊框高亮顯示時(shí)可能出現(xiàn)的Bug;
2、鼠標(biāo)移動(dòng)到單元格時(shí)單元格邊框高亮顯示改為只有綁定控件的單元格才會(huì)高亮邊框。
2024.04.12
1、完善單元格合并算法,避免上一版本行列同時(shí)合并時(shí)的Bug。
2、增加鼠標(biāo)移動(dòng)到單元格時(shí)單元格邊框高亮顯示功能。
2024.04.10
新增加TQFGridPanelComponent,支持在單元格綁定可視控件,運(yùn)行時(shí)單元格綁定的控件會(huì)吸附到相應(yīng)的單元格里。
控件綁定命令:<compname=xxx>
綁定后,控件的TabOrder從表格第1行第1列開始從左到右,從上到下重新編排。
控件的寬和高自動(dòng)適配單元格的尺寸。
2024.04.05
1、增加ShowBackImage:Boolean
2、增加單行橫向滾動(dòng)控件TQFHorizontalScrollingText,同樣支持自定義富文件格式。
3、增加鼠標(biāo)移到超鏈接及書簽位置時(shí),顯示對(duì)應(yīng)的url及書簽名。

2024.04.03
修正單元格插入圖片,合并單元格后圖片沒按合并后的單元格大小顯示的Bug
2024.04.02
完成表格單元格合并功能
<ColSpan=xx>--向右合并xx個(gè)單元格
<RowSpan=xx>--向下合并xx個(gè)單元格
<rowh=70>|姓名|[#][C2]單位|辦公地址|[l]電話(手機(jī)號(hào)碼)|備注| |:-:|-:|-:|:-:|:-| |<rowspan=3>秋風(fēng)1|<colspan=2>[$][c2]<bm4>檢測(cè)中心1|南山建工村1|183233649|2030年13月33日入職| |秋風(fēng)2|<colspan=2>[r]檢測(cè)中心2|[#][c4]南山建工村2|283233648|[img]2.bmp| |[c2]秋風(fēng)3|檢測(cè)中心3|南山建工村3|383233647|<rowspan=3>[img]3.png| |<colspan=3>秋風(fēng)4|檢測(cè)中心4|南山建工村4|483233646|| |秋風(fēng)5|<rowspan=2>檢測(cè)中心5|南山建工村5|583233645|| |秋風(fēng)6|檢測(cè)中心6|南山建工村6|583233645|<hlk>(盒子論壇)http://bbs.2ccc.com/</hlk>| |秋風(fēng)7|檢測(cè)中心7|南山建工村7|583233645||

2024.04.01
初步完成表格單元格合并
2024.03.30
增加字體參數(shù)
<Font=xx>設(shè)置字體名稱--宋體、楷體等
</Font>//恢復(fù)為默認(rèn)字體
[s5][c2]<font=楷體>測(cè)試</font>QF<C1>R</C><!>ich<#>V</>iew<C5><font=方正舒體>使用</font></C>說明<sup>上標(biāo)</sup>[c]<sub>下標(biāo)</sub>測(cè)試[c]
[s5][c2]測(cè)試QF<C1>RichView<C5><@>使用</></C>說明測(cè)試[c]


2024.03.28
1、增加指定表格行高命令<rowh=xx> xx指定行高,<rowh=xx>表格定義的開始位置,如果指定的高度小于表格文字高度時(shí),表格行高則為表格文字的高度,如下:
<rowh=50>|姓名|[#][C2]單位|辦公地址|[l]電話(手機(jī)號(hào)碼)|備注| |:-:|:-|-:|:-:|:-| |秋風(fēng)1|[$][c2]<bm4>檢測(cè)中心1|南山建工村1|183233649|2030年13月33日入職| |秋風(fēng)2|檢測(cè)中心2|[#][c4]南山建工村2|283233648|[img]2.bmp| |[c2]秋風(fēng)3|檢測(cè)中心3|南山建工村3|383233647|[img]3.png| |秋風(fēng)4|檢測(cè)中心4|南山建工村4|483233646|<hlk>(盒子論壇)http://bbs.2ccc.com/</hlk>| |秋風(fēng)5|檢測(cè)中心5|南山建工村5|583233645||

2、TQFRichView增加2個(gè)小功能(紅字2行):
1)TQFRichView.PageHeader;//跳到頁頭
2)TQFRichView.PageFooter;//跳到頁尾
TQFRichView = class(TCustomText) private FinitialY: Integer; // 用于存儲(chǔ)鼠標(biāo)按下時(shí)的初始位置 procedure SetLines(const AValue: TStrings); procedure DrawScrollingText(Sender: TObject); protected procedure DoOnChangeBounds; override; procedure MouseDown(Button: TMouseButton; Shift:TShiftState; X,Y:Integer); override; procedure MouseUp(Button: TMouseButton; Shift:TShiftState; X,Y:Integer); override; procedure MouseMove(Shift: TShiftState; X,Y: Integer); override; procedure WMMouseWheel(var Message: TLMMouseEvent); message LM_MOUSEWHEEL; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure SavePicture(Files:string); procedure Print; procedure PageHeader;//跳到頁頭 procedure PageFooter;//跳到頁尾 published property StepSize: integer read FStepSize write FStepSize; end;
2024.03.27
完善后的超鏈接,可以只顯示指定的文字,隱藏網(wǎng)址
<hlk>(博客園)http://www.rzrgm.cn/</hlk>

2024.03.25
1、增加簡(jiǎn)單的打印功能
2、完善書簽跳轉(zhuǎn)及超鏈接的功能
3、增加超鏈接符號(hào)“
<hlk>xxxx</hlk>
完善后的超鏈接可以在文本行(包括在表格的單元格)中任意位置出現(xiàn)
2024.03.23
添加書簽跳轉(zhuǎn)功能
<BMx>--定義書簽名稱
[BMx]--定義書簽
例子:
<BM1>書簽?zāi)夸?
<BM2>書簽?zāi)夸?
[BM1]測(cè)試書簽跳轉(zhuǎn)功能
[BM2]書簽跳轉(zhuǎn)功能正常
2024.03.22
增加多URL超鏈接識(shí)別,現(xiàn)在支持多個(gè)url點(diǎn)擊。
2024.03.21
1、增加行距
2、增加背景圖片功能
2024.03.20
修正打開鏈接的Bug及修正滾動(dòng)到最后的銜接Bug.
2024.03.19
增加表格單元格插入圖片功能
2024.03.09
完成文字滾動(dòng)的基本功能
使用以下特定符號(hào)定義文字(行)的屬性:
[img]本地圖像文件名稱
[!]下劃線
[@]刪除線
[#]粗體
[$]斜體
[L]行居左
[C]行居中
[R]行居右
[C1]黑色
[C2]紅色
[C3]黃色
[C4]綠色
[C5]藍(lán)色
[S1]字體尺寸9
[S2]字體尺寸12
[S3]字體尺寸14
[S4]字體尺寸16
[S5]字體尺寸18
[LINE]分割線
[2LINE]雙線條分割線
定義文字顏色、樣式:
xxx
黑色
紅色
黃色
綠色
藍(lán)色 恢復(fù)原來的文字顏色
<!>下劃線
<@>刪除線
<#>加粗
</>恢復(fù)原來的文字樣式
支持markdown格式的表格
圖像格式支持:jpg,bmp,png等
可在windows和linux使用,已在龍芯電腦實(shí)測(cè)可用。
TQFRichView控件支持鼠標(biāo)中鍵滾動(dòng)及按鼠標(biāo)左鍵然后上下移動(dòng)鼠標(biāo)實(shí)現(xiàn)快速滾動(dòng)。
書簽跳轉(zhuǎn)功能:

添加背景圖片:




QFRichEditor:


導(dǎo)出的圖片:


浙公網(wǎng)安備 33010602011771號(hào)