Tôi đang xây dựng một ứng dụng bằng Delphi 7. Tôi đã thêm một nút vào biểu mẫu chính. Trên nút đó, tôi muốn hiển thị một biểu mẫu khác. Tôi đang cố tạo biểu mẫu thứ hai chỉ khi người dùng đã nhấp vào nút đó lần đầu tiên. Nếu người dùng nhấp vào nút đó lần thứ hai thì biểu mẫu đã tạo sẽ được hiển thị. Một đối tượng Form có bất kỳ thuộc tính nào qua đó chúng ta có thể trực tiếp kiểm tra xem nó đã được tạo hay chưa?kiểm tra xem đối tượng được tạo hay không trong delphi
5
A
Trả lời
10
if Assigned(Form1) then
begin
//form is created
end;
Nhưng nếu mẫu của bạn được khai báo tại địa phương
toàn cầu
bạn phải chắc chắn rằng nó được khởi tạo nil
.
4
Bạn cần một trường thành viên để giữ tham chiếu đến biểu mẫu. Sau đó kiểm tra xem tham chiếu đó có được gán hay không. Như thế này:
function TMainForm.GetOtherForm: TMyForm;
begin
if not Assigned(FOtherForm) then
FOtherForm := TMyForm.Create(Self);
Result := FOtherForm;
end;
2
Đã gán (Obj) vẫn có thể trả về True ngay cả sau khi bạn giải phóng, sử dụng "Obj.free". Cách tốt nhất để đảm bảo obj của bạn là miễn phí, CHO SỬ DỤNG Đã giao (obj) đang sử dụng "FreeAndNil (Obj)"
0
Đôi khi biểu mẫu đã được miễn phí nhưng không phải là không. Trong trường hợp này, việc kiểm tra được giao không phải là quá tốt. Vì vậy, một tùy chọn là để giải phóng biểu mẫu và đặt MyForm: = nil trên biểu mẫu OnClose. tùy chọn khác là sử dụng các proc sau:
function TMyForm.IsFormCreated: bool;
var i: Integer;
begin
Result := False;
for i := 0 to Screen.FormCount - 1 do
begin
if Screen.Forms[i] is TMyForm then
begin
Result := True;
Break;
end;
end;
end;
Các vấn đề liên quan
- 1. Delphi: Kiểm tra xem tệp có đang được sử dụng hay không
- 2. Kiểm tra xem một đối tượng được tạo ra là con số không
- 3. SQLAlchemy: Kiểm tra xem đối tượng đã có trong bảng
- 4. Tôi có nên kiểm tra xem một đối tượng có rỗng hay không?
- 5. Hibernate: kiểm tra xem đối tượng có tồn tại hay không
- 6. Kiểm tra xem đối tượng có phải là phần tử DOM hay không
- 7. Kiểm tra xem tắt máy được khởi động hay không
- 8. Python - kiểm tra xem đối tượng có phải là hàm dựng sẵn hay không
- 9. Java: Cách kiểm tra xem đối tượng có rỗng không?
- 10. Kiểm tra xem phiên có được đặt hay không và nếu không tạo phiên?
- 11. Kiểm tra xem một đối tượng tồn tại trong VBScript
- 12. Kiểm tra xem getJSONArray là null hay không
- 13. Kiểm tra xem đó là đối tượng cửa sổ
- 14. Kiểm tra xem đối tượng Ruby có phải là Boolean
- 15. Kiểm tra xem đối tượng là một số hoặc boolean
- 16. Javascript để kiểm tra xem hộp kiểm có đang được chọn hay không được chọn
- 17. Kiểm tra xem có phải là một đối tượng
- 18. jQuery: Kiểm tra xem đối tượng có lớp
- 19. RSpec. Làm cách nào để kiểm tra xem phương thức đối tượng có được gọi không?
- 20. Cách tốt nhất để kiểm tra xem một đối tượng có phải là một mảng hay không trong Javascript?
- 21. Kiểm tra tệp được mở ở Delphi
- 22. Cách kiểm tra xem đường dẫn có tương đối hay tuyệt đối trong java
- 23. Cách kiểm tra xem đối tượng đã cho là đối tượng hoặc Mảng trong chuỗi JSON
- 24. jquery Mobile: kiểm tra xem hộp kiểm có được chọn hay không
- 25. Kiểm tra xem thành viên đối tượng có tồn tại trong đối tượng lồng nhau
- 26. Làm cách nào để kiểm tra xem tài nguyên được nhúng có tồn tại hay không?
- 27. Kiểm tra xem đối tượng có thực hiện giao diện
- 28. Lập trình kiểm tra xem lịch có được hiển thị hay không
- 29. Để kiểm tra xem phiên có sẵn hay không
- 30. PHP kiểm tra xem đối tượng có thể được chuyển đổi thành số nguyên không?
(. Tôi chỉ xóa câu trả lời tương tự của tôi) Nhưng cần phải nói thêm rằng hãy chắc chắn để thiết lập lại biến trở về con số không khi phá hủy TOtherForm, giống như đặt TOtherForm: = nil trên OnDestroy của TOtherForm. –
@Hasan Nếu biểu mẫu khác bị xóa. Ấn tượng của tôi là nó có nghĩa là một hình thức sống mãi mãi, một khi nó đã được tạo ra. –
chính xác, nhưng chỉ để yên tâm, để dự đoán kịch bản mà hình thức được xử lý (rõ ràng hoặc vì lý do gì) trong tương lai - vì vậy nó sẽ không giới thiệu 'lỗi mới'. –