相关疑难解决方法(0)

如何在其事件处理程序中自由控制?

有没有人知道这个技巧,如何在其事件处理程序中自由控制?根据delphi帮助它是不可能的......

当Self.Text =''时,我想释放动态创建的TEdit.

TAmountEdit = class (TEdit)
.
.
public
  procedure KeyUp(var Key: Word; Shift :TShiftState);
end;

procedure TAmountEdit.KeyUp(var Key: Word; Shift :TShiftState);
begin
inherited;
if Text='' then Free; // after calling free, an exception arises
end;
Run Code Online (Sandbox Code Playgroud)

应该怎样做才能达到同样的效果?

感谢名单

delphi

10
推荐指数
2
解决办法
3058
查看次数

当我在自己的OnClick处理程序中销毁一个按钮时,为什么我的程序会崩溃?

我从一个运行http://www.delphi-central.com/runtime.aspx的网站上尝试了一个脚本, 然后成功了.


private
  { Private declarations }
  procedure CustomButtonClick(Sender: TObject);
Run Code Online (Sandbox Code Playgroud)
procedure TForm1.AddNewButtonClick(Sender: TObject);
var
  NewButton : TButton;
begin 
  NewButton := TButton.create(self);

  with NewButton do
  begin
    Top    := 30;
    Width  := 60;
    Left   := Width * (self.ControlCount-2);
    Parent := self;
    OnClick := CustomButtonClick;
    Caption := 'Button '+ inttostr (self.ControlCount-2);
  end;  //With
end;

procedure TForm1.DeleteLastButtonClick(Sender: TObject);
begin
  if Self.ControlCount>2 then
    TButton (Controls[ControlCount-1]).destroy;
end;

procedure TForm1.CustomButtonClick(Sender: TObject); 
begin    
    ShowMessage(TButton(Sender).caption + ' Pressed'); 
end;
Run Code Online (Sandbox Code Playgroud)

但如果我更改OnClick,

OnClick := CustomButtonClick; ==> OnClick := DeleteLastButtonClick; …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-7 delphi-2010

5
推荐指数
2
解决办法
1341
查看次数

如何正确释放Firemonkey控件,在这种情况下是父窗体的子窗体?

从控件本身的事件处理程序内部,我想删除并释放它.

一个典型的用例TFmxObject.Release,不是吗?但是,它似乎只能在Windows下运行,但不能在Android上运行,而且此方法现在弃用.

我知道,不起作用不是一个很好的问题描述,但目前我无法在android下调试它.在Windows下,我看到事件处理程序.Release在完成之后继续正确,在我的控件析构函数中执行我的日志消息.在Android下,应用程序挂起.

当我使用.Free它时,它仍然在Windows下工作(析构函数立即发生,但处理程序在免费后不访问控件),而在Android中没有明显的问题,但析构函数从未被调用,所以我有一个泄漏.

随着.DisposeOf效果是一样的有.Release-视窗OK,Android的挂起.

我也尝试过,MyParent.RemoveComponent(MyControl)但一切都没有用.

我还需要做些什么来发布所有引用,以便ARC可以完成它的工作?或者怎么回事?

delphi android automatic-ref-counting firemonkey

4
推荐指数
1
解决办法
424
查看次数