Tôi bắt đầu học Delphi hai ngày trước nhưng tôi bị kẹt. Tôi đã phá vỡ vì không có gì đi theo cách của tôi vì vậy tôi quyết định viết ở đây. Tôi muốn tạo ra một lớp có một trường với đối tượng TTimer của riêng nó và nó sẽ thực hiện một số hành động trong một khoảng thời gian nào đó. Thậm chí có thể không? Giả sử chúng tôi có mã như vậy:Đối tượng TTimer có thể là một trường của lớp Delphi không?
Sth = class
private
public
clock:TTimer;
procedure clockTimer(Sender: TObject);
constructor Create();
end;
constructor Sth.Create()
begin
clock.interval:=1000;
clock.OnTimer := clockTimer;
end;
procedure Sth.clockTimer(Sender: TObject);
begin
//some action on this Sth object at clock.interval time...
end;
Copiles mã tương tự của tôi nhưng không hoạt động bình thường. Khi tôi gọi hàm khởi tạo chương trình bị treo (truy cập vi phạm tại dòng: clock.interval: = 1000;). Tôi không biết những gì
Sender:TObject
nhưng tôi nghĩ đó không phải là vấn đề. Tôi có thể tạo lớp học như vậy không?
Bộ xử lý là trường rất thường xuyên của các lớp Delphi. Các lớp biểu mẫu là các lớp và mỗi khi bạn đặt một TTimer trên một biểu mẫu, IDE sẽ khai báo một trường TTimer cho bạn. –
Tôi biết rằng IDE khai báo trường TTimer cho tôi khi tôi đặt nó trên một biểu mẫu. Nhưng tôi muốn đặt TTimer là một lĩnh vực không có hình thức. Tôi muốn viết một lớp riêng biệt (* .pas) mà không có biểu mẫu và liên kết nó với biểu mẫu chính. Vì vậy, không có hình thức, tôi đã phải viết tất cả các tờ khai của riêng tôi. Tôi không biết nếu đó là cách tiếp cận tốt (không sử dụng mẫu với các lớp trung học), tôi thậm chí không biết vấn đề của các hình thức nào được nêu ra. Nhưng bây giờ mọi thứ đều hoạt động tốt sau khi David Heffernan trả lời. – xan
Vấn đề cơ bản này (bạn không biết rằng bạn phải tạo đối tượng trước khi bạn sử dụng nó) cho tôi biết bạn có thể hưởng lợi từ việc đọc một số tài liệu cơ bản, như vài chương đầu tiên của một trong những cuốn sách Delphi cũ như Marco cantu một (làm chủ delphi 7 hoặc một cái gì đó như thế), hoặc ít nhất, chi tiêu một số thời gian nhiều hơn tại http://www.delphibasics.co.uk/ –