小编mgh*_*hie的帖子

动态更改wx.ComboBox()中的选项

我没有找到更好的方法来改变wx.ComboBox()中的不同选择,而不是将旧的ComboBox与新的交换.有没有更好的办法?

Oerjan Pettersen

#!/usr/bin/python

#20_combobox.py

import wx
import wx.lib.inspection

class MyFrame(wx.Frame):
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)

        self.p1 = wx.Panel(self)
        lst = ['1','2','3']
        self.st = wx.ComboBox(self.p1, -1, choices = lst, style=wx.TE_PROCESS_ENTER)

        self.st.Bind(wx.EVT_COMBOBOX, self.text_return)


    def text_return(self, event):
        lst = ['3','4']
        self.st = wx.ComboBox(self.p1, -1, choices = lst, style=wx.TE_PROCESS_ENTER)


class MyApp(wx.App):
    def OnInit(self):
        frame = MyFrame(None, -1, '20_combobox.py')
        frame.Show()
        self.SetTopWindow(frame)
        return 1

if __name__ == "__main__":
    app = MyApp(0)
#    wx.lib.inspection.InspectionTool().Show()
    app.MainLoop()
Run Code Online (Sandbox Code Playgroud)

python wxwidgets wxpython

16
推荐指数
1
解决办法
2万
查看次数

C#:与null比较

这些是等价的:

if (null==myobject)
{
//do something 
}
Run Code Online (Sandbox Code Playgroud)

if (myobject==null)
{
//do something 
}
Run Code Online (Sandbox Code Playgroud)

或者他们会产生不同的代码?

c# null

15
推荐指数
3
解决办法
3万
查看次数

Delphi:在OnBeforePost事件中取消TDataSet.Post

在我们的主数据输入屏幕上,我们在OnBeforePost事件中有一个OK/Cancel对话框.

  • 好的,让事情顺其自然
  • 现在取消会有一个Dataset.Cancel;

这意味着什么,回滚任何更改并将数据集置于浏览模式.

这对大多数客户来说都很好,但我们被问到是否可以更改为

  • 取消,中止发布并保持编辑模式,保持当前更改.

如果他们想要取消,他们可以使用取消按钮.

查看源代码procedure TDataSet.Post;看起来不可能以这种方式使用事件.

任何人都有任何想法可以这样做吗?

跟进:这就是我现在选择处理它的方式

case MessageDlg('Save Changes?', mtWarning, [mbYes, mbNo, mbAbort], 0) of
  mrYes: ;
  mrNo: Dataset.Cancel;
  mrAbort: Abort;
  mrNone: Abort;
end;
Run Code Online (Sandbox Code Playgroud)

delphi delphi-7 tdataset

15
推荐指数
1
解决办法
1万
查看次数

用于密码输入的Delphi InputBox?

输入框:

answer:=Inputbox('a','b','c');
Run Code Online (Sandbox Code Playgroud)

工作得很好,但我正在寻找一个蒙面的,就像一个密码盒,你只看到小星星而不是键入的字符.

delphi mask textinput inputbox

14
推荐指数
3
解决办法
2万
查看次数

Delphi线程死锁

在销毁某些线程时,我遇到了有时遇到死锁的问题.我试图调试问题但是在IDE中调试时似乎永远不存在死锁,可能是因为IDE中事件的速度很慢.

问题:

主线程在应用程序启动时创建多个线程.线程始终处于活动状态并与主线程同步.没问题.当应用程序结束时,线程被销毁(mainform.onclose),如下所示:

thread1.terminate;
thread1.waitfor;
thread1.free;
Run Code Online (Sandbox Code Playgroud)

等等.

但有时其中一个线程(使用synchronize将一些字符串记录到备忘录中)将在关闭时锁定整个应用程序.我怀疑当我调用waitform并且harmaggeddon发生时线程正在同步,但这只是猜测,因为在调试时永远不会发生死锁(或者我从来没有能够重现它).有什么建议?

delphi multithreading

14
推荐指数
2
解决办法
5097
查看次数

Pascal(Delphi)中的大数字

我可以使用Delphi中的内置方法处理大量数据(超过10 ^ 400)吗?

delphi pascal bignum arbitrary-precision

14
推荐指数
1
解决办法
4202
查看次数

如何实现使用最少资源定期检查某些内容的线程?

我想在后台运行一个线程,它将以给定的时间间隔检查与某个服务器的连接.例如每5秒.

我不知道这是否有一个好的"设计模式"?如果我记得正确的话,我已经读过一些在其执行方法中睡眠线程不好的地方.但我可能错了.

另外,我可以使用普通的TThread类或OTL线程库.

有任何想法吗?

谢谢.

delphi multithreading tthread delphi-2009 omnithreadlibrary

13
推荐指数
2
解决办法
2476
查看次数

delphi中的匿名记录构造函数

是否可以将记录用作方法参数,并在不隐式声明所述记录的实例的情况下调用它?

我希望能够编写这样的代码.

type
  TRRec = record
    ident : string;
    classtype : TClass;
  end;

procedure Foo(AClasses : array of TRRec);
Run Code Online (Sandbox Code Playgroud)

然后调用这样的方法或类似的东西.

Foo([('Button1', TButton), ('Lable1', TLabel)]);
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我仍然坚持使用Delphi 5.

delphi anonymous-types

12
推荐指数
2
解决办法
1770
查看次数

Delphi:如何计算大文件的SHA哈希值

嗨我需要在5 Gig文件上生成SHA

你知道一个非字符串的Delphi库可以做到这一点吗?

delphi sha

11
推荐指数
2
解决办法
5726
查看次数

将Interface的方法作为参数传递

是否可以将接口的方法作为参数传递?

我正在尝试这样的事情:

interface

type
  TMoveProc = procedure of object;
  // also tested with TMoveProc = procedure;
  // procedure of interface is not working ;)

  ISomeInterface = interface
    procedure Pred;
    procedure Next;
  end;

  TSomeObject = class(TObject)
  public
    procedure Move(MoveProc: TMoveProc);
  end;

implementation

procedure TSomeObject.Move(MoveProc: TMoveProc);
begin
  while True do
  begin
    // Some common code that works for both procedures
    MoveProc;
    // More code...
  end;
end;

procedure Usage;
var
  o: TSomeObject;
  i: ISomeInterface;
begin
  o := TSomeObject.Create;
  i := GetSomeInterface;
  o.Move(i.Next);
  // …
Run Code Online (Sandbox Code Playgroud)

delphi oop interface callback

11
推荐指数
2
解决办法
3901
查看次数