如何只提取数字而不提取文字? + 文字颜色设置??(200分)

  • 主题发起人 主题发起人 pckite
  • 开始时间 开始时间
P

pckite

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠,小弟刚学DELPHI,有两个问题请教各位:
1,如何提取EDIT1.TEXT里的数字(包括小数点)而不提取文字?
如输入2米3公分,我们提取得到的是23,如输入22.5M ,通过提取输入框里的值得到
22.5 ,怎么样实现?

2,我的程序用了这个句子:groupbox2.caption:='第' + inttostr(adoquery1['次数']) + '记录';
现在我想让程序显示的时候,groupbox2.caption中的'次数'的颜色为红色,如何实现?

谢谢各位!!
 
1:
没有什么好办法

为什么不把单位独立出来
难道输入单位比输入数字还容易

2:
自己在canvas上画吧
 
1.
var xh:integer;
B_Str,B_Edit:String;
begin
B_Str:='';
B_Edit:=Edit1.Text;
for xh:=1 to Length(B_Edit) do
begin
if B_Edit[xh] in ['0','1','2','3','4','5','6','7','8','9','.'] then
B_Str:=B_Str+B_Edit[xh]
end; //循环结束,B_Str就是你所要提取的数字
Showmessage(B_Str);
end;

2.没有什么好法子,可能只好在相应位置覆盖一个label,把Label的位置和颜色调好。
 
第一个问题
procedure TForm1.Button1Click(Sender: TObject);//将EDIT1中的数字和小数点顺序显示
// 在EDIT2中
type TNumSet=set of char;
var
s,r:string;
i:integer;
set1:TNumSet;
begin
r:='';
Set1:=['0','1','2','3','4','5','6','7','8','9','0','.'];
s:=edit1.Text;
for i:=1 to length(s) do
if s in Set1 then
r:=r+s;
edit2.text:=r;
end;
 
第二个问题:
同意楼上的,把GroupBox的caption设为空,再用三个Label放在caption显示的位置
把groupbox2.caption:='第' + inttostr(adoquery1['次数']) + '记录';

变成:label1.caption:='第';
label2.caption:=inttostr(adoquery1['次数']) ;
label3.caption:='记录';
把label2的字体属性设为红色
 
谢谢您!
 
后退
顶部