我有一个主窗口,有一个TEdit和一个TButton我需要把手.他们都在TPanel里面.到目前为止我的代码是
    public void SendPacket(string packet)
    {
        IntPtr hWnd = Window.FindWindow(null, "AlissaAnalyzer");
        IntPtr panel = Window.FindWindowEx(hWnd, IntPtr.Zero, "TPanel", "");
        IntPtr edithWnd = Window.FindWindowEx(panel, IntPtr.Zero, "TEdit", "");
        IntPtr buttonhWnd = Window.FindWindowEx(panel, IntPtr.Zero, "TButton", "");
        //Do stuff with handles
    }
Run Code Online (Sandbox Code Playgroud)
这给了我TPanel和TButton的句柄,但TEdit为0.我不知道为什么这不起作用,因为它遵循Spy ++给我的结构:

这里有什么我想念的吗?我是否需要一种不同的方法来获取TEdit的句柄?我使用FindWindowEx错了吗?
我需要使用UDP协议创建带有synapse的服务器和客户端程序.
我创建了服务器程序来收听这样的任何消息
procedure TForm1.Timer1Timer(Sender: TObject);
var
 resive:string;
begin
  InitSocket;
  resive:=UDPResiveSocket.RecvPacket(1000);
  if resive<>'' then Memo1.Lines.Add('>' + resive);
  DeInitSocket;
end;
procedure TForm1.InitSocket;
begin
  if UDPResiveSocket <> nil then
    DeInitSocket;
  UDPResiveSocket := TUDPBlockSocket.Create;
  UDPResiveSocket.CreateSocket;
  UDPResiveSocket.Bind('0.0.0.0','22401');
  UDPResiveSocket.AddMulticast('234.5.6.7');
  UDPResiveSocket.MulticastTTL := 1;
end;
procedure TForm1.DeInitSocket;
begin
  UDPResiveSocket.CloseSocket;
  UDPResiveSocket.Free;
  UDPResiveSocket := nil;
end;
Run Code Online (Sandbox Code Playgroud)
所以我收到所有收到的消息.但我想从此消息的来源发送回复.
我怎样才能做到这一点?我的方法对服务器/客户端有用吗?
我有一个保存在字符串中的jpeg文件.我想在Delphi7中将字符串加载/分配给TImage.我使用KOL代码如下:
var
 ImageStream : PStream;
 ImageString : String;
 MyJpeg      : TJpeg;
begin
 ImageStream:= NewMemoryStream; // Create New Stream.
 ImageStream.Write(ImageString [1], Length(ImageString )); // Fill the stream.
 ImageStream.Position := 0;     // Set Position to 0.
 // ImageStream.SaveToFile('C:\test.jpg', 0, ImageStream.Size); // Debug --> WORKS!
 MyJpeg := TJpegImage.Create; // Create a Jpeg Image. 
 MyJpeg.LoadFromStream(@ImageStream); // ???
 Image1.picture.Assign(MyJpeg);       // No picture is shown
end;
Run Code Online (Sandbox Code Playgroud)
它应该工作,因为PStream只是一个指向TStream的指针...但Timage中没有显示图片...感谢您的帮助:)
我SelectDirectory在delphi中使用该函数来选择一个文件夹.我将root设置为一个默认目录,用户正在查找的项目应该是.但是,如果我想能够在我上面的"上方"导航,那么我无法做到.
例如:
让我们说默认文件夹是C:\Program files\Default文件夹,当我在那里时,我可以查看所有文件夹并选择我想要的文件夹.但是,如果我想返回程序文件寻找另一个文件夹,那么我不知道我是怎么做的.
我也考虑过使用TOpenDialog,但我发现我无法选择文件夹并查看文件夹中存在的文件(重要的设置SelectDirectory).
有没有办法在根文件夹上方导航或者可能打开级联到文件夹的窗口,因为它会显示好像有人已经从计算机导航到根文件夹?
码:
SelectDirectory('Please select a directory', RootSearchLocation, ChosenDirectory,
               [sdShowEdit, sdNewUI, sdShowFiles, sdValidateDir], self);
Run Code Online (Sandbox Code Playgroud)
RootSearchLocation是C:\Program files\Default文件夹,ChosenDirectory是用户选择的目录.
所需的更多信息让我知道.
我对http处理程序和处理错误或重定向等问题有点困惑.
例如,如果由于某些条件检查我必须重定向,我应该执行以下操作:
func SomeHandler(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
    if thisThing != thatThing {
        log.Print("thisThing not equal to thatThing - redirecting")
        http.Redirect(w, r, "/", http.StatusTemporaryRedirect)
        return // <-- is this necessary?
    }
 }
Run Code Online (Sandbox Code Playgroud) 在我的AuthMw中间件中,我想进行数据库调用.
我的数据库变量在main中初始化,如何将其传递给我的中间件AuthMw?
func main() {
    db, err := gorm.Open("postgres", ... )
    r := mux.NewRouter()
    r.Handle("/ws", serveWebsocket(hub))
    r.Use(AuthMw)
    //
    //
    ...
} // main
func AuthMw(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        token := r.URL.Query().Get("token")
        fmt.Printf("AuthMiddleware token is: %v\n", token)
        ctx := ....
        next.ServeHTTP(w, r.WithContext(ctx))
    })
}
Run Code Online (Sandbox Code Playgroud) 有人知道第三方组件允许直观地管理zip文件/文件夹吗?例如,在WinZip应用程序中(例如:添加,删除zipfile中的新文件等)?
RAD Studio XE2中有dcc32.exe吗?运行时获取错误:
此版本的产品不支持命令行编译.
我有两张桌子:chosenunit和units.在chosenunit表中有2列student_id和unit_id.单位表具有系统中所有单位的列unit_id和unit_name列.假设有2名学生的ids为1000和1001.他们注册了几个单元.selectedunit表将如下所示:
(1000,2000),
(1000,2001),
(1000,2006),
(1001,2000),
(1001,2004),
Run Code Online (Sandbox Code Playgroud)
我需要获得学生未注册的所有单元.如果1000登录系统,则需要显示除2000,2001,2006之外的所有主题的所有unit_names.
与在 MS Visual Studio 中一样,我想为 Delphi 程序中的某些代码添加书签,但在 IDE 中找不到它。有了它,我将能够找回一段代码并在不同的文件之间切换,而不会丢失我正在工作的确切行。
在 Delphi 7 中可以吗?