var minValue,maxValue:Integer; begin minValue := StrToInt(Edit1.text); if StrToInt(Edit2.text)< minValue then minValue := StrToInt(Edit2.text); if StrToInt(Edit3.text)< minValue then minValue := StrToInt(Edit3.text); ... maxValue:= StrToInt(Edit1.text); if StrToInt(Edit2.text)> minValue then minValue := StrToInt(Edit2.text); if StrToInt(Edit3.text)> minValue then minValue := StrToInt(Edit3.text); ... end;也可使用 TList 来管理界面edit控件
var minValue,maxValue:Integer; begin minValue := StrToInt(Edit1.text); maxValue := StrToInt(Edit1.text); minValue := Min(minvalue,StrToInt(Edit2.text)); maxValue := Max(minvalue,StrToInt(Edit2.text)); ... end;
//取窗体所有edit组件的最大值,最小值. procedure TForm1.Button1Click(Sender: TObject); var iCount,i : integer; //组件数量 minValue,MaxValue:Double; //最小值,最大值 editValue: Double; //当前Edit值 begin i := 0; for iCount:=0 to ComponentCount-1 do begin // 遍历组件. if Components[iCount] is TEdit then begin try editValue:= StrToFloat(Tedit(Components[iCount]).Text); except editValue := 0; Application.MessageBox('数据只能为数字!', '提示', MB_OK + MB_ICONWARNING); exit; end; //查询到是否是每一个Edit组件 if i = 0 then begin minValue := editValue; MaxValue := editValue; Inc(i); end else begin if editValue= 0 then Continue; if minValue> editValue then minValue := editValue; if MaxValue < editValue then MaxValue:= editValue; end; end; end; Application.MessageBox( PChar('MaxValue='+FormatFloat('###0.##',MaxValue )+#13#10 +'MinValue='+FormatFloat('###0.##',minValue ) ), '提示', MB_OK + MB_ICONINFORMATION); end;
var maxNumber,minNumber,number:integer; begin maxNumber:=0; number:=0; if (eidt1.text<>'0') and (eidt1.text<>' ') then //不为空;不为0 注意只有Edit1.text 有值时才可以得出,要想它为空其它不为空时有值就重写 //其它edit就行了 begin maxNumber:=strtoint(trim(eidt1.text)); minNumber:=strtoint(trim(eidt1.text)); if (eidt2.text<>'0') and (eidt2.text<>' ') maxNumber:=Max(maxNumber,trim(eidt2.text)) maxNumber:=Max(maxNumber,trim(eidt2.text))if (eidt3.text<>'0') and (eidt3.text<>' ') maxNumber:=Max(maxNumber,trim(eidt3.text)) maxNumber:=Max(maxNumber,trim(eidt3.text))if (eidt4.text<>'0') and (eidt4.text<>' ') maxNumber:=Max(maxNumber,trim(eidt4.text)) maxNumber:=Max(maxNumber,trim(eidt4.text))if (eidt5.text<>'0') and (eidt5.text<>' ') maxNumber:=Max(maxNumber,trim(eidt5.text)) maxNumber:=Max(maxNumber,trim(eidt5.text))if (eidt6.text<>'0') and (eidt6.text<>' ') maxNumber:=Max(maxNumber,trim(eidt6.text)) maxNumber:=Max(maxNumber,trim(eidt6.text))end;end;
上面的方法不够快. //最大值 function getmax(a,b:Double):Double begin result := (a+b)/2 +(a-b)/2; end; //最小值 function getmin(a,b:Double):Double begin result := (a+b)/2 -(a-b)/2; end; 这个在大数据量的时候运算速度比IF判断要快的多.也不需要写那么多的IF判断直接 procedure TForm1.Button1Click(Sender: TObject); var iCount,i : integer; //组件数量 minValue,MaxValue:Double; //最小值,最大值 editValue: Double; //当前Edit值 begin i := 0; for iCount:=0 to ComponentCount-1 do begin // 遍历组件. if Components[iCount] is TEdit then begin try editValue:= StrToFloat(Tedit(Components[iCount]).Text); except editValue := 0; exit; end; //查询到是否是每一个Edit组件 if i = 0 then begin minValue := editValue; MaxValue := editValue; Inc(i); end else begin if editValue= 0 then Continue; MaxValue := getmax(editValue,MaxValue); minValue := getmin(editValue,MinValue) end; end; end; Application.MessageBox( PChar('MaxValue='+FormatFloat('###0.##',MaxValue )+#13#10 +'MinValue='+FormatFloat('###0.##',minValue ) ), '提示', MB_OK + MB_ICONINFORMATION); end; 因为你不确定你是肯定有六个参与运算.所以只能写到这里了. 否则的话还有别的算法可以优化.不要写IF判断都可以.
minValue,maxValue:Integer;
begin
minValue := StrToInt(Edit1.text);
if StrToInt(Edit2.text)< minValue then minValue := StrToInt(Edit2.text);
if StrToInt(Edit3.text)< minValue then minValue := StrToInt(Edit3.text);
...
maxValue:= StrToInt(Edit1.text);
if StrToInt(Edit2.text)> minValue then minValue := StrToInt(Edit2.text);
if StrToInt(Edit3.text)> minValue then minValue := StrToInt(Edit3.text);
...
end;也可使用 TList 来管理界面edit控件
minValue,maxValue:Integer;
begin
minValue := StrToInt(Edit1.text);
maxValue := StrToInt(Edit1.text);
minValue := Min(minvalue,StrToInt(Edit2.text));
maxValue := Max(minvalue,StrToInt(Edit2.text));
...
end;
..........
beginend
//取窗体所有edit组件的最大值,最小值.
procedure TForm1.Button1Click(Sender: TObject);
var
iCount,i : integer; //组件数量
minValue,MaxValue:Double; //最小值,最大值
editValue: Double; //当前Edit值
begin
i := 0;
for iCount:=0 to ComponentCount-1 do
begin
// 遍历组件.
if Components[iCount] is TEdit then
begin
try
editValue:= StrToFloat(Tedit(Components[iCount]).Text);
except
editValue := 0;
Application.MessageBox('数据只能为数字!', '提示', MB_OK +
MB_ICONWARNING);
exit;
end;
//查询到是否是每一个Edit组件
if i = 0 then
begin
minValue := editValue;
MaxValue := editValue;
Inc(i);
end
else
begin
if editValue= 0 then
Continue; if minValue> editValue then
minValue := editValue;
if MaxValue < editValue then
MaxValue:= editValue;
end;
end;
end;
Application.MessageBox(
PChar('MaxValue='+FormatFloat('###0.##',MaxValue )+#13#10 +'MinValue='+FormatFloat('###0.##',minValue ) ),
'提示', MB_OK + MB_ICONINFORMATION);
end;
maxNumber,minNumber,number:integer;
begin
maxNumber:=0;
number:=0;
if (eidt1.text<>'0') and (eidt1.text<>' ') then
//不为空;不为0 注意只有Edit1.text 有值时才可以得出,要想它为空其它不为空时有值就重写
//其它edit就行了
begin
maxNumber:=strtoint(trim(eidt1.text));
minNumber:=strtoint(trim(eidt1.text));
if (eidt2.text<>'0') and (eidt2.text<>' ')
maxNumber:=Max(maxNumber,trim(eidt2.text))
maxNumber:=Max(maxNumber,trim(eidt2.text))if (eidt3.text<>'0') and (eidt3.text<>' ')
maxNumber:=Max(maxNumber,trim(eidt3.text))
maxNumber:=Max(maxNumber,trim(eidt3.text))if (eidt4.text<>'0') and (eidt4.text<>' ')
maxNumber:=Max(maxNumber,trim(eidt4.text))
maxNumber:=Max(maxNumber,trim(eidt4.text))if (eidt5.text<>'0') and (eidt5.text<>' ')
maxNumber:=Max(maxNumber,trim(eidt5.text))
maxNumber:=Max(maxNumber,trim(eidt5.text))if (eidt6.text<>'0') and (eidt6.text<>' ')
maxNumber:=Max(maxNumber,trim(eidt6.text))
maxNumber:=Max(maxNumber,trim(eidt6.text))end;end;
//最大值
function getmax(a,b:Double):Double
begin
result := (a+b)/2 +(a-b)/2;
end;
//最小值
function getmin(a,b:Double):Double
begin
result := (a+b)/2 -(a-b)/2;
end;
这个在大数据量的时候运算速度比IF判断要快的多.也不需要写那么多的IF判断直接
procedure TForm1.Button1Click(Sender: TObject);
var
iCount,i : integer; //组件数量
minValue,MaxValue:Double; //最小值,最大值
editValue: Double; //当前Edit值
begin
i := 0;
for iCount:=0 to ComponentCount-1 do
begin
// 遍历组件.
if Components[iCount] is TEdit then
begin
try
editValue:= StrToFloat(Tedit(Components[iCount]).Text);
except
editValue := 0;
exit;
end;
//查询到是否是每一个Edit组件
if i = 0 then
begin
minValue := editValue;
MaxValue := editValue;
Inc(i);
end
else
begin
if editValue= 0 then
Continue;
MaxValue := getmax(editValue,MaxValue);
minValue := getmin(editValue,MinValue)
end;
end;
end;
Application.MessageBox(
PChar('MaxValue='+FormatFloat('###0.##',MaxValue )+#13#10 +'MinValue='+FormatFloat('###0.##',minValue ) ),
'提示', MB_OK + MB_ICONINFORMATION);
end;
因为你不确定你是肯定有六个参与运算.所以只能写到这里了. 否则的话还有别的算法可以优化.不要写IF判断都可以.