![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пересечение классов
HSD © (2004-08-15 23:55:00)Приветствую эксперты.Тут я делаю так:
procedure ListUser(Lb2:TListBox);
begin
lb2.items.add('1');
end;
вызываю так - ListUser(Lb2);
НО так как я не передаю другие обьекты(боксы),
то нашел так делать-
procedure TForm1.ListUser;
begin
lb2.items.add('1');
end;
+TForm1 в раздел private
вызываю так - ListUser;
незнаю правельно ли? с точки зрения ресурсов,
но работает и удобнее
решил таким образом добавить процедуры пересекающие
с VCL -то же работает
TReadd = class
tabl:byte;
procedure Read(CB1,CB2:TCheckBox;
RadioGroup1:TRadioGroup;
E:TSpinEdit;
lbss:TListBox);
end;
procedure TReadd.Read(CB1,CB2:TCheckBox;
RadioGroup1:TRadioGroup;
E:TSpinEdit;
lbss:TListBox);
begin
end;
,но попытка сделать упрощенную запись,
как ListUser(Lb2); => ListUser;
неудается приходется так :
вызов
CLA.Read(CB1,CB2,RadioGroup1,E,lbss);
хотелось бы так CLA.Read;
как описать незнаю(в книгах нет такого)
procedure TForm1.Read(CB1,CB2:TCheckBox;
RadioGroup1:TRadioGroup;
E:TSpinEdit;
lbss:TListBox);
TReadd = class
tabl:byte;
Read; //??? = TForm1.Read
end;
HSD (2004-08-19 14:15:00) [1]знаю это обьявление
TReadd = class
Count:word;
procedure Read(Sender:TObject);
end;
procedure Read(Sender:TObject);
begin
if Count>0 then CB1.checked:=true;
....
lbss.items.Add('sss');
end;
TUser (2004-08-19 14:12:00) [2]Дальше обычно пишут var или begin. Еще варианты - Type, const, procedure, function, label. На выбор.
HSD (2004-08-19 14:05:00) [3]>выразить свои мысли предельно непонятно.
да давно я не сидел в инете...извините!
и писал всегда так длинно,что запарило,а
в чужих исходниках ничего подобного нет,
покрайне мере которые я видел
procedure Read(Sender:TObject);
{(CB1,CB2:TCheckBox;
RadioGroup1:TRadioGroup;
E:TSpinEdit;
lbss:TListBox);}
TUser (2004-08-19 13:48:00) [4]Получится, если написать код.
PS. За последний месяц - по моему ИМХО самый крутой пример того, как можно в топике выразить свои мысли предельно непонятно. Уж извини.
HSD (2004-08-19 13:40:00) [5]Хотел сделать упрощенную запись вызова функции,т.е
procedure ListUser(Lb2:TListBox);
свел к
procedure TForm1.ListUser;
по этому вызов проще:ListUser;
не надо указывать обьект.
------------------------------------------
Вот и хотел упростить это
TReadd = class
procedure Read(CB1,CB2:TCheckBox;
RadioGroup1:TRadioGroup;
E:TSpinEdit;
lbss:TListBox);
чтоб вызвать как нибудь так:
ASA:=TReadd.create;
ASA.Read; без указания обьектов
Но видимо тут не получится так
KSergey (2004-08-16 07:28:00) [6]Короче вроде отдаленно понимаю о чем речь. Был тут недавно треп по поводу кольцевых ссылок.
Из общих соображений:
Можно спорить о производительности и ее необходимости в конкретном месте, однако лучше, если программа будет читабельнее и легче поддаваться модификации, чем выигрыш в 2 милисекунды (где эти милисекунды действительно не критичны).
А легче понимать и модифицровать функцию, параметры которой четко понятны и видны, чем ту, в которой есть жуткие завязки на другие модули.
Fay (2004-08-16 02:41:00) [7]В смысле "... какая-то" 8)
Fay (2004-08-16 02:40:00) [8]Бредятина какая-от. Можно повторить понятнее?