Tôi đang tạo thành phần Delphi tùy chỉnh đầu tiên của mình. Về cơ bản một tùy chỉnh của nó Tpanel với tiêu đề và dòng văn bản hiển thị trên đó.Làm thế nào để impliment một tài sản stringlist trong một thành phần delphi tùy chỉnh?
Tôi muốn có thể thêm nhiều dòng văn bản bằng cách sử dụng danh sách chuỗi.
Khi kiểm tra các thành phần Tôi không thể có được các dòng văn bản hiển thị trên bảng điều khiển khi thêm dòng: NewLinesText.add ('text line1')
Nó tuy nhiên hoạt động khi tôi tạo ra và cư một stringlist mới trong thời gian chạy và sau đó gán nó để kiểm soát của tôi: controlPanelitem.NewLinesText = MyNewStringlist
tôi muốn để có thể thêm dòng như thế này: NewLinesText.add ('line1 text')
tôi đang sử dụng Delphi 7 chuyên nghiệp trên WinXP. Xem mã bên dưới.
Mọi trợ giúp sẽ được đánh giá cao!
unit ControlPanelItem;
interface
uses
SysUtils, Classes, Controls, ExtCtrls, Graphics, AdvPanel, StdCtrls,
Windows,Forms,Dialogs;
type
tControlPanelItem = class(TAdvPanel)
private
fLinesText : TStrings;
procedure SetLinesText(const Value: TStrings);
procedure SetText;
protected
public
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
published
property NewLinesText : TStrings read FLinesText write SetLinesText;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [tControlPanelItem]);
end;
constructor tControlPanelItem.Create(AOwner: TComponent);
begin
inherited;
fLinesText := TStringList.Create;
end;
destructor tControlPanelItem.Destroy;
begin
fLinesText.Free;
inherited;
end;
procedure tControlPanelItem.SetLinesText(const Value: TStrings);
begin
fLinesText.Assign(value);
SetText;
end;
procedure tControlPanelItem.SetText;
var
count : Integer;
begin
for count := 0 to fLinesText.Count - 1 do
ShowMessage(fLinesText.strings[count]);
end;
end.
Tôi đã làm điều đó. Xem thủ tục tControlPanelItem.SetLinesText gọi SetText. (thủ tục SetText chưa hoàn thành. Im chỉ sử dụng showmessage để xem nó có hoạt động không) –
OK, tôi không thấy điều đó. (Như bạn đã biết, đoạn mã này không phải là một vài phút trước!) Nhưng tôi không thể nhìn thấy bất kỳ 'OnChange'? –
Xin chào. Cám ơn bạn đã phản ứng nhanh chóng của bạn. FLinesText là một danh sách chuỗi và không có thuộc tính onchange theo như tôi biết? –