delphi - 一键执行两个过程

标签 delphi

我想知道一个按钮是否可以同时具有两个功能。
例如,我有stringgrid,其中包含订单,并使用按钮希望汇总所有订单,并使用相同的按钮将订单未汇总时返回到先前的状态。

if Sender = reduceOrderBTN then
begin
J:=1;
reduceOrderBTN.Caption:= 'Show all';
qryReduceOrders.Close;
qryReduceOrders.Open;
 end;

advOrderGrid.RowCount:= qryReduceOrders.RecordCount + 1;

while NOT qryReduceOrders.Eof do
begin

advOrderGrid.Cells[0, qryReduceOrders.RecNo] := IntToStr(qryReduceOrders.RecNo);
advOrderGrid.Cells[1, qryReduceOrders.RecNo] := qryReduceOrdersProductName.AsString;
advOrderGrid.Cells[2, qryReduceOrders.RecNo] := qryReduceOrdersSpecialWish.AsString;
advOrderGrid.Cells[3, qryReduceOrders.RecNo] := qryReduceOrdersQuantity.AsString;
advOrderGrid.Cells[4, qryReduceOrders.RecNo] := qryReduceOrdersprepTime.AsString;
 advOrderGrid.Repaint;
 qryReduceOrders.next;

end;
if (Sender = reduceOrderBTN) and (J = 1) then
 formShow(nil);
//trying to get back to old state but this doesnt work
end;

最佳答案

您可以简单地使用按钮的Tag属性来跟踪状态。

If reduceOrderBTN.tag = 0 then begin
  // Sum orders code here
  reduceOrderBTN.tag := 1;
end
else begin
  // Set Previous state code here
  reduceOrderBTN.tag := 0;
end;

关于delphi - 一键执行两个过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30618016/

相关文章:

delphi - 如果我更改使用它的项目的设置,是否会重新编译 "rebuild as needed"库?

delphi - 是否记录了 Set 类型的星号运算符?

delphi - 使用 Rtti 设置方法字段

delphi - #region 在 C++Builder 中等效吗?类似于分组代码的方式吗?

delphi - 如何使用SVN管理项目版本?

windows - 从delphi中的文本段落中提取第一行

delphi - 添加到数据库不起作用

Delphi:只需突出显示 SynEdit 中的文本

delphi - 在delphi中创建时从数据库填充单选组框

delphi - MadExcept for delphi 在应用程序崩溃后不打印堆栈跟踪