>
// SetWindowLong(Edit.Handle, GWL_STYLE, GetWindowLong(Edit.Handle, GWL_STYLE) or ES_NUMBER);
UpDown := TUpDown.Create(self);
UpDown.Height := Height; //20;
UpDown.Width := 14;
UpDown.Left := Edit.Width + 1;
UpDown.Parent := self;
FMin := 0;
FMax := 100;
Edit.OnChange := EditChange;
Edit.OnKeyPress := EditKeyPress;
UpDown.OnClick := UpDownClick;
end;
destructor TUpDownEdit.Destroy;
begin
Edit.Free;
UpDown.Free;
inherited;
end;
procedure TUpDownEdit.EditChange(Sender: TObject);
begin
UpDown.Position := StrToIntDef(Edit.Text, 0);
FPosition := UpDown.Position;
if Assigned(FOnChange) then
FOnChange(Self);
end;
procedure TUpDownEdit.EditKeyPress(Sender: TObject; var Key: Char);
var
s: set of char;
i: integer;
Str, Text: string;
begin
s := [#8, ''''0''''..''''9''''];
if Key = #8 then exit;
if not (Key in s) then
begin
Key := #0;
Exit;
end;
//控制输入数字的大小
if TEdit(Sender).SelLength > 0 then
begin
Text := TEdit(Sender).Text;
Str := Copy(Text, 1, TEdit(Sender).SelStart - 1)
+ Key +
Copy(Text, TEdit(Sender).SelStart + TEdit(Sender).SelLength + 1, Length(Text));
i := StrToInt(Str);
if i > FMax then
begin
Key := #0;
Exit;
end;
end
else
if StrToInt(TEdit(Sender).Text + Key) > FMax then
begin
Key := #0;
Exit;
上一页 [1] [2] [3] [4] 下一页 [VB.NET程序]利用IE自带的Shlwapi.dll实现文本框的自动完成
|