我正在尝试制作一个计数器,根据鼠标点击编辑按钮的标题。我知道问题是什么,但不知道如何解决它。
代码:
procedure TForm1.Shape9MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
icount : integer;
begin
icount := 0;
if button = mbRight then
icount := icount + 1;
button2.caption := 'Count: ' + IntToStr(icount);
end;
每当我右键单击时,计数器再次设置为0 + 1,当我左键单击时,它被设置为0.我该如何解决这个问题?
由于
答案 0 :(得分:4)
您已将计数器声明为局部变量,每次调用事件处理程序时,该变量都会重新初始化为零。
您需要将其设置为表单级别的成员变量,它将在调用之间保留它的值。
type
TForm1 = class(TForm)
...
private
icount: Integer;
end;
procedure TForm1.Shape9MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if button = mbRight then
icount := icount + 1;
button2.caption := 'Count: ' + IntToStr(icount);
end;
答案 1 :(得分:0)
-- all the following functions are the same
h1 x = x - 3
h2 = subtract 3
h3 = \ x -> x - 3