Sign in Join
Wiki copytemporary

BGRAControls/zh CN: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11# Install
22
33### Download BGRABitmap
44
55Install BGRABitmap with the file bgrabitmappack.lpk.
66
77GitHub: <https://github.com/bgrabitmap/lazpaint/>
88
99### Download BGRAControls
1010
1111Install BGRAControls with the file bgracontrols.lpk.
1212
1313GitHub: <https://github.com/bgrabitmap/bgracontrols/>
1414
1515## 概述
1616
1717许可: Modified LGPL 版本 2.0.
1818
1919像许多人了解的那样, Lazarus GTK 没有完整的支持Alpha通道. 我创建了一套组件,使用 TBGRABitmap 绘制图标,因此它可以部分解决 GTK 中的Alpha通道问题。 无论如何, 这套组件并不仅仅是GTK的补丁,而是建立在强大的BGRABitmap组件包上,提供了更多的有趣的组件.
2020
2121### 作者: Dibo.
2222
2323组件包创建者和维护者.
2424
2525BC Controls - TBCButton - TBCLabel - TBCPanel
2626
2727BGRA Controls - TBGRAImageList - TBGRASpeedButton
2828
2929### 作者: Circular.
3030
3131BGRABitmap 创建者, 贡献者和组件包维护者.
3232
3333\- TBGRAFlashProgressBar - TBGRAGraphicControl - TBGRAKnob - TBGRAShape - TBGRAVirtualScreen
3434
3535### 作者: Lainz.
3636
3737贡献者和组件包维护者.
3838
3939BC Controls - TBCImageButton - TBCXButton - TBCGameGrid
4040
4141BGRA Controls - TBGRASpriteAnimation
4242
4343### 作者: Emerson Cavalcanti.
4444
4545\- TBGRAImageManipulation
4646
4747### 作者: mora.
4848
4949\- BCButton功能性贡献者.
5050
5151### 作者: helix2001
5252
5353\- TBGRAResizeSpeedButton.
5454
5555## 相关文章
5656
5757[[BGRASpriteAnimation]] - 精灵动画组件的用法.
5858
5959[[uE Controls]] - 用 BGRABitmap 开发其他控件.
6060
6161[[BGRABitmap]] - 创建本组件使用的控件库.
6262
6363[[LazPaint]] - 使用Lazarus 和 BGRABitmap开发的一个绘画程序.
6464
6565## BC
6666
6767### BCButton
6868
69-<figure>
70-<img src="bcbutton.png" title="bcbutton.png" />
71-<figcaption>bcbutton.png</figcaption>
72-</figure>
69+![](/wiki-images/8/8a/Bcbutton.png)
7370
7471### BCGameGrid
7572
76-<figure>
77-<img src="bcgamegrid.png" title="bcgamegrid.png" />
78-<figcaption>bcgamegrid.png</figcaption>
79-</figure>
73+![](/wiki-images/6/62/Bcgamegrid.png)
8074
8175### BCImageButton
8276
8377bitmap(位图)必须包含4种状态(自顶到底, 具有同样的Height(高度)) 按照下列顺序: normal(常规、弹起状态), hover(指针滑过), active(活动的、选中), disabled(已禁用).
8478
8579*示例按钮:*
8680
87-<figure>
88-<img src="samplebgraimagebutton.png" title="samplebgraimagebutton.png" />
89-<figcaption>samplebgraimagebutton.png</figcaption>
90-</figure>
81+![](/wiki-images/2/29/Samplebgraimagebutton.png)
9182
9283*示例按钮(带Alpha通道):*
9384
94-<figure>
95-<img src="samplebgraimagebuttonalpha.png" title="samplebgraimagebuttonalpha.png" />
96-<figcaption>samplebgraimagebuttonalpha.png</figcaption>
97-</figure>
85+![](/wiki-images/b/b9/Samplebgraimagebuttonalpha.png)
9886
9987### BCXButton
10088
10189高度可定制按钮,具有'OnRenderControl' 事件. 此控件没有默认属性,它假定你将重写此控件并添加你希望具有的一切特性。
10290
10391\- 像 TCDButton (自定义绘制的按钮).
10492
10593\- 为每一个按钮调用一个(或者为所有按钮调用一个) 'OnRenderControl' 事件 (like a Drawer in CD) .
10694
10795\- 创建高度可定制的按钮, 类似BGRAVirtualScreen 或者 BCGraphicControl的用法.
10896
109-<figure>
110-<img src="bcxbutton.png" title="bcxbutton.png" />
111-<figcaption>bcxbutton.png</figcaption>
112-</figure>
97+![](/wiki-images/0/02/Bcxbutton.png)
11398
11499### BCLabel
115100
116-<figure>
117-<img src="bclabel.png" title="bclabel.png" />
118-<figcaption>bclabel.png</figcaption>
119-</figure>
101+![](/wiki-images/e/e5/Bclabel.png)
120102
121103### BCPanel
122104
123-<figure>
124-<img src="bcpanel.png" title="bcpanel.png" />
125-<figcaption>bcpanel.png</figcaption>
126-</figure>
105+![](/wiki-images/2/28/Bcpanel.png)
127106
128107## BGRA
129108
130109### BGRAProgressBar
131110
132111**用来替代:** TProgressBar
133112
134-<figure>
135-<img src="BC-Bgraflashprogressbar.png" title="BC-Bgraflashprogressbar.png" />
136-<figcaption>BC-Bgraflashprogressbar.png</figcaption>
137-</figure>
113+![](/wiki-images/0/0b/BC-Bgraflashprogressbar.png)
138114
139115Flash progressbar 由circular创建.
140116
141117### BGRAGraphicControl
142118
143119**用来替代:** TPaintBox
144120
145121TBGRAGraphicControl, 允许你绘制带有Alpha通道混合特性的组件.
146122
147123### BGRAImageList
148124
149125**用来替代:** TImageList
150126
151127**之前:**
152128
153-<figure>
154-<img src="before-TImageList.png" title="before-TImageList.png" />
155-<figcaption>before-TImageList.png</figcaption>
156-</figure>
129+![](/wiki-images/a/ac/Before-TImageList.png)
157130
158131**之后:**
159132
160-<figure>
161-<img src="after-TBGRAImageList.png" title="after-TBGRAImageList.png" />
162-<figcaption>after-TBGRAImageList.png</figcaption>
163-</figure>
133+![](/wiki-images/1/1f/After-TBGRAImageList.png)
164134
165135该组件继承自TImageList. 因此每个组件(测试过TToolBar 和 TTreeView) 使用TImageList.Draw方法来绘制图标, 并自动带alpha通道支持. 只需要用该组件替代TImageList. 该组件只是启动了 GTK 的alpha通道, 因此在Windows (或其他界面)中它的表现和原来的TImageList一样 (它没有使用BGRABitmap来进行绘制).
166136
167137### BGRAImageManipulation
168138
169139**用来替代:** TImage
170140
171141便于在应用程序中导入图像的组件.
172142
173143在当前版本中可以导入图像,并按照保持纵横比(或不保持)进行剪裁。例如,如果您想要导入的相片使用 3x4 的比例,只需要调整'ratio'属性设置为 3: 4。如果导入的图像具有不同的大小,该组件将确保图像符合所需尺寸的比例。
174144
175145你可以通过调整属性'MinWidth' 和 'MinHeight'来确定图像的最小尺寸.
176146
177147你可以使用内建的功能来旋转图像.
178148
179149参见组件的演示:
180150
181-<figure>
182-<img src="bgraimagemanipulation.jpg" title="bgraimagemanipulation.jpg" />
183-<figcaption>bgraimagemanipulation.jpg</figcaption>
184-</figure>
151+![](/wiki-images/6/60/Bgraimagemanipulation.jpg)
185152
186153当组件将图像更改后, 只需要使用stretch(缩放)将其放入目标组件即可. 很显然目标必须具有同样的纵横比以保证最终的结果不会变形.
187154
188155### BGRAKnob
189156
190-<figure>
191-<img src="BC-Bgraknob.png" title="BC-Bgraknob.png" />
192-<figcaption>BC-Bgraknob.png</figcaption>
193-</figure>
157+![](/wiki-images/3/39/BC-Bgraknob.png)
194158
195159图形化的旋钮组件, 由circular创建.
196160
197161### BGRAShape
198162
199163**用来替代:** TShape
200164
201-<figure>
202-<img src="samplebgrashape.png" title="samplebgrashape.png" />
203-<figcaption>samplebgrashape.png</figcaption>
204-</figure>
165+![](/wiki-images/6/61/Samplebgrashape.png)
205166
206167该组件具有完整的Alpha通道支持并且可以放置你希望的任意多边形,同时具有圆角边框和渐变特性(线性, 放射, 菱形, 反射).
207168
208169### BGRASpeedButton
209170
210171**用来替代:** TSpeedButton
211172
212-<figure>
213-<img src="BGRASpeedButton.png" title="BGRASpeedButton.png" />
214-<figcaption>BGRASpeedButton.png</figcaption>
215-</figure>
173+![](/wiki-images/e/e9/BGRASpeedButton.png)
216174
217175该组件继承自TSpeedButton并使用TBGRABitmap来绘制图形. 该组件只是启动了 GTK 的alpha通道, 因此在Windows (或其他界面)中它的表现和原来的TImageList一样 (它没有使用BGRABitmap来进行绘制).
218176
219177### BGRASpriteAnimation
220178
221179**用来替代:** TImage
222180
223181更多信息请阅读文章 [[BGRASpriteAnimation]].
224182
225-<figure>
226-<img src="bgraspriteanimation.png" title="bgraspriteanimation.png" />
227-<figcaption>bgraspriteanimation.png</figcaption>
228-</figure>
183+![](/wiki-images/8/88/Bgraspriteanimation.png)
229184
230185使用该组件你可以进行位图动画. 你需要一个包含所有动画帧图像并按水平排列的位图.
231186
232187它可以指定动画将要播放的次数 (0 为一直播放, 1, 2, 等等) 并可以停止播放, 同时它可以指定播放速度和方向并支持透明.
233188
234189特性:
235190
236191- 动画: invert, 位置, lap, 速度, 静态, 重复.
237192- 精灵: 不透明填充 (全局透明), 翻转模式(水平, 垂直, 双向), 关键颜色 (透明色), 重新采样 (常规 或 高质量重采样). 自动尺寸.
238193- AnimatedGifToSprite: 将gif动画转换为BGRABitmap精灵.
239194
240195### BGRAVirtualScreen
241196
242197**用来替代:** TPanel, TPaintBox
243198
244199原理是在内存位图上绘制.
245200
246201本组件有一个特定的事件, OnRedraw, 当整个位图需要被重绘时调用. 它将在最开始和组件改变大小时发生. 你也可以通过调用Redraw和DiscardBitmap来请求重绘位图. 后者仅仅使内容无效, 其重绘将等到处理消息循环时才进行.
247202
248203其他情况, 有可能更改位图的属性并调用Invalidate 或 Repaint, 以避免擦除掉整个位图内容.
249204
250205## 测试
251206
252207### 游戏 - Maze
253208
254-<figure>
255-<img src="game_maze.png" title="game_maze.png" />
256-<figcaption>game_maze.png</figcaption>
257-</figure>
209+![](/wiki-images/0/0c/Game_maze.png)
258210
259211### 游戏 - Puzzle
260212
261-<figure>
262-<img src="game_puzzle.png" title="game_puzzle.png" />
263-<figcaption>game_puzzle.png</figcaption>
264-</figure>
213+![](/wiki-images/f/f8/Game_puzzle.png)
265214
266215### SliceScaling - CustomDrawn Windows 7
267216
268-<figure>
269-<img src="customdrawnwindows7.png" title="customdrawnwindows7.png" />
270-<figcaption>customdrawnwindows7.png</figcaption>
271-</figure>
217+![](/wiki-images/4/4e/Customdrawnwindows7.png)
272218
273219这是一个[[Lazarus Custom Drawn Controls]]的演示, 你需要安装该组件的Lazarus最终修订版才可以工作.
274220
275221该演示中的组件: button, statictext, checkbox, radiobutton 和 progressbar.
276222
277223还有一些额外的图片,用于 'Luna' (Windows XP 主题) 'Aero Lite' (Windows 8 主题) 和 其他的按钮 (箭头).
278224
279225### SliceScaling - TAChart
280226
2812279-slice scaling 对于创建可变尺寸的UI元素非常有帮助(比如在上述的Custom Drawn Windows 7 演示中).
282228
283229这里是一个 [[TAChart]] 例子,使用了slice scaled bars.
284230
285-<figure>
286-<img src="slicescaledtachart.png" title="slicescaledtachart.png" />
287-<figcaption>slicescaledtachart.png</figcaption>
288-</figure>
231+![](/wiki-images/9/9d/Slicescaledtachart.png)
289232
290233---
291234*From the Free Pascal wiki, page "BGRAControls/zh CN", as it stood on 2016-10-07 after a change by 007, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
292235Category: BGRAControls/zh CN
293236Category: Components/zh CN
294237Category: Graphics/zh CN

Back to history