Tôi có một biểu mẫu chính (MainForm) và một cửa sổ con MDI (TFormChild). Tôi muốn tạo nhiều biểu mẫu TFormChild, nhưng biểu mẫu đầu tiên phải hoạt động theo một cách nhất định vì vậy tôi cần phát hiện xem có cửa sổ TFormChild đã tồn tại chưa.Cách kiểm tra xem cửa sổ con có tồn tại không?
tôi sử dụng mã này, nhưng nó không làm việc:
function FindChildWindowByClass(CONST aParent: HWnd; CONST aClass: string): THandle;
begin
Result:= FindWindowEx(aParent, 0, PChar(aClass), NIL);
end;
Tôi gọi nó là như thế này:
Found:= FindChildWindowByClass(MainForm.Handle, 'TFormChild')> 0;
Tại sao bạn thử nghiệm '> 0'? Chắc chắn logic chính xác là '<> 0'. Không phải đó là vấn đề của bạn, chỉ là một bên. –
@David, như của Delphi 4, với sự ra đời của một loại số nguyên không dấu 32 bit, xử lý trong Delphi được unsigned, do đó, nó về mặt kỹ thuật làm cho không có sự khác biệt. –
@Rob Tôi biết nó không tạo ra sự khác biệt nào về hành vi, nhưng về mặt logic thì nó rất khác. '> 0' ngụ ý rằng thứ tự là quan trọng. '<> 0' chỉ ra rằng' 0' là một giá trị sentinel. –