如何让edit框中的文字(文字稍多时)自动缩小字体以填满整个编辑框 请指教
解决方案 »
- 关于在dll中调用excel出现的问题
- 怎么操作存储过程
- 怎样改变PaintBox的颜色?
- 各位兄台(姐姐),救命啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 菜鸟问题 :各位老大请进 关于BDE ,ODBC,ADO
- 那个API函数=mode com1 2400,n,8,1?
- 谁有漂亮的的图标能不能发给哥们一份?
- 有没有办法得到一个DNS服务器上可解析的所有域名?
- CSDN的离线数据库(2000.9-现在)什么时候出来
- 请问关联表查询问题如何处理??
- 无聊 玩了一天战地1942 明天开始干活了 没的玩了 散一分
- 怎样从表的字段中取三个最大值
cvs : TCanvas;
h : HWND;
begin
cvs := TCanvas.Create;
cvs.Handle := GetDeviceContext(h);
cvs.Font.Assign(edt.Font);
edt.ClientWidth := cvs.TextWidth(edt.Text)+2; //边框加两个像素
cvs.Free;
end;
var
cvs : TCanvas;
h : HWND;
oldTextWidth,NewTextWidth,NewFontHeigh : Integer;
lf : TLogFont;
tf : TFont;
begin
//某些字体如果不支持太大或太小时
//设置可能无效 //用TextWidth得到当前字体下需要多少像素
cvs := TCanvas.Create;
cvs.Handle := GetDeviceContext(h);
cvs.Font.Assign(edt.Font);
oldTextWidth := cvs.TextWidth(edt.Text);
CloseHandle(cvs.Handle);
cvs.Free; //将ClientWidth作为新字体时同样字数需要的像素
NewTextWidth := edt.ClientWidth-2; //计算新字体的字体高
NewFontHeigh := trunc(edt.Font.Height/oldTextWidth*NewTextWidth); //创建新的逻辑字体
tf := TFont.Create;
tf.Assign(edt.Font);
GetObject(tf.Handle, sizeof(lf), @lf);
lf.lfHeight := NewFontHeigh;
tf.Handle := CreateFontIndirect(lf); //编辑框使用新字体
edt.Font.Assign(tf); tf.Free;
end;
Memo1.Width :=edit1.Width;
Memo1.Font :=edit1.Font;
Memo1.text:= (c + '-' + name2); While Memo1.Lines.Count> 1 do
begin
memo1.Font.size := memo1.Font.size-1;
end; edit1.Font.size := memo1.Font.size;
edit1.Text := Memo1.text; 但获取的字号小了一号,可能是字数刚好凑到那里了吧