|
Вопрос # 6 566/ вопрос решён / |
|
Здравствуйте!
Искал что такое класс TComponentList или TObjectList .
Нашел только в одном месте http://zoo-mania.ru/delphi/tobjectlist/index.html, но этот пример не работает:
Приложение: Переключить в обычный режим- unit main;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
-
-
- type
- TfrmCallbase = class(TForm)
-
- Edit1: TEdit;
- Edit2: TEdit;
- procedure FormCreate(Sender: TObject);
- procedure FormDestroy(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- type
- TEditList = class(TObjectList)
- private
- function GetItems(Index: Integer): TEdit;
- procedure SetItems(Index: Integer; const Value: TEdit);
- published
- public
- property Items[Index: Integer]: TEdit read GetItems write SetItems; default;
- end;
- var
- frmCallbase: TfrmCallbase;
- EditList: TEditList;
-
- implementation
-
- {$R *.dfm} { TEditList }
- procedure TfrmCallbase.FormCreate(Sender: TObject);
- begin
- EditList := TEditList.Create();
- EditList.Add(Edit1);
- EditList.Add(Edit2);
-
- for i:=0 to EditList.Count - 1 do
- EditList[i].Text = 'default';
- end;
-
- procedure TfrmCallbase.FormDestroy(Sender: TObject);
- begin
- EditList.Free;
- end;
-
- function TEditList.GetItems(Index: Integer): TEdit;
- begin
- Result := TEdit(inherited GetItem(Index));
- end;
-
- procedure TEditList.SetItems(Index: Integer; const Value: TEdit);
- begin
- inherited SetItem(Index, Value);
- end;
-
- end.
- {Error in module main: Declaration of class TForm1 is missing or incorrect.
-
-
- }
-
- type
- TForm1 = class(TForm) // ???????????
-
Примечание #1 (13 октября 2014, 18:56): Как это вставить? Или покажите работающую программу, где всё понятно для меня.
 |
Вопрос задал: zvygin1964 (статус: Посетитель)
Вопрос отправлен: 13 октября 2014, 18:55
Состояние вопроса: решён, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 14 октября 2014, 19:31; участников в обсуждении: 1.
|
zvygin1964 (статус: Посетитель), 14 октября 2014, 19:31 [#1]:
Спасибо за ответ min@y™ unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Contnrs;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
Edit4: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
TEditList = class(TObjectList)
private
function GetItems(Index: Integer): TEdit;
procedure SetItems(Index: Integer; const Value: TEdit);
published
public
property Items[Index: Integer]: TEdit read GetItems write SetItems; default;
end;
var
Form1: TForm1;
EditList: TEditList;
implementation
{$R *.dfm} { TEditList }
function TEditList.GetItems(Index: Integer): TEdit;
begin
Result := TEdit(inherited GetItem(Index));
end;
procedure TEditList.SetItems(Index: Integer; const Value: TEdit);
begin
inherited SetItem(Index, Value);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
EditList := TEditList.Create();
for i:= 0 to ComponentCount - 1 do
if Components[i] is TEdit
then EditList.Add(Components[i]);
for i:=0 to EditList.Count - 1 do
begin
EditList[i].Text := 'default';
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
EditList.Free;
end;
end.
|
14 октября 2014, 19:32: Статус вопроса изменён на решённый (изменил автор вопроса — zvygin1964): Решение дал min@y™ . Оценка 5.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|