1)我想實現在同一個label或edit内的文字顔色不同,如:123456 RMB ,把‘123456‘與‘RMB‘區分開來(我知道再加一個label就行了,但我有個問題:因爲前面的數字位數變化很大,如果定死後面的位置,會顯得很難看);2)我想實現黨數據庫内的數據發生變化時,實現某些代碼。(dbgrid和adotable中好像都沒有該事件);3)我想控制dbgrid某一字段的數字位數,如果我用adotable沒問題,在displayformat中就可以實現,但若用adoquery怎麽實現.
有空過來說兩句吧!
有空過來說兩句吧!
解决方案 »
- idftp如何下载整个目录
- 如何将txt或excel中的内容插入到table中?
- 怎么解析由客户浏览器发过来的经base64编码的用户名和密码,用什么函数?还是什么组件?棘手!
- 报表中如何双行显示(非双列显示)
- 过程A调用过程B,如何在过程B中加入语句退出过程A?急!
- 在Delphi中如何编程实现在客户机中登陆域服务器和更改域密码
- 英雄-就指望你了:怎样让控件成组失效
- ASP.NET的简单问题
- =============关于query控件和sql 语句的问题===============
- 向窗体发送一个TAB键消息
- 有没有人可以提供一份完整的三层应用的源程序啊?
- 菜问题:D6中image为什么闪烁?
2、可以在它的quit事件中实现
3、用query和table一样,将字段数据格式化即可
2、可以在ADOQuery或ADOTable的AfterScroll事件中处理
3、把那个字段类型转化成TNumericField类型
left+width+100 就是RMB的Left位置了2。 只能写储存过程3。 看不太懂
几个属性登记,在Paint中参照TCustomLabel的Paint方法,把几个部分用
不同的颜色画出来
formatfloat ('0.000',11.1111111);
例如下面的例子就把数字与字母区分开用不同颜色显示,同时处理中文,这里只是简单举个例子,根据需要可以再细化。
procedure TMyLabel.Paint;
var
str : String;
i : Integer;
posX: Integer;
begin
str := Caption;
//Caption := '';
//inherited; with canvas do
begin
if not Transparent then
begin
Brush.Color := Self.Color;
Brush.Style := bsSolid;
FillRect(ClientRect);
end;
Brush.Style := bsClear; if Width < ( TextWidth(str) + 2) then
Width := TextWidth(str) + 2;
case Alignment of
taLeftJustify : posX := 1;
taRightJustify: PosX := Width - TextWidth(Str) - 1;
taCenter : PosX := (Width - TextWidth(Str)) div 2;
end; i := 1;
while i <= Length(str) do
begin
if (( i + 1 ) <= Length(Str)) and( ord(str[i]) >= 128 ) and ( ord(str[i+1]) >= 128 ) then //中文
begin
Font.Color := clBlack;
TextOut(posX,abs(Height - TextHeight(Str[i])) div 2,Copy(str,i,2));
i := i + 2;
posX := posX + TextWidth(Str[i] + Str[i + 1]);
end
else
begin
if str[i] in ['0'..'9'] then
Font.Color := clblue
else
Font.Color := clRed;
TextOut(posx,abs(Height - TextHeight(Str[i])) div 2,str[i]);
posX := PosX + TextWidth(Str[i]);
i := i + 1;
end;
end;
end;
end;
CurrencyDecimals := 2(小数点后有2位)
這個代碼放在那邊?
2,可以用触发器来做,不过adotable中好象有这个事件,帮你看看。
3,想想。
2.在每成功删除或增加或修改一条记录后对布尔变量取反,然后在数据集的
State状态为browse时,对变量分情况以执行过程或Exit;
3.数据位数的问题你可以定义数据库字段的长度,也可以定义DbGrid中显示这一字段的列的宽度。
真是苦惱!
我搞了好久都未搞定!
可以用触发器,也可以写存储过程,aftscroll等等
2.datasource 有ondatachange事件
3.考虑一下取数据时就控制
3)我想控制dbgrid某一字段的數字位數,如果我用adotable沒問題,在displayformat中就可以實現,但若用adoquery怎麽實現.你的意思是:adotable沒問題,因为你可以在设计阶段设置displayformat吧
adoquery也可以!
我用的adoquery如果選擇的内容不變,是可以和adotable一樣設置.
如果改變就可能會出錯,因爲有些字段你沒有選擇,卻有它的屬性,程序會告訴你找不到該字段!
2,你也可以多几个adoquery,各有个的用处!
gong on!
2:如果你想数据库自动响应某些变化,那么用数据库自身的触发器
3:你可以将Query里面的字段的OnGetText中编程实现
OnGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
你应该知道怎么加字段吧,就是双击Query控件,就会出来Fields Editor,在里面点右件,就选择可以加入符合你条件的字段,我一般是Add all,:)
GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
那个Text参数就是将要显示的文字,如:
if Sender.asstring = 'Y' then Text := '是'
明天happy去了!