Вниз
Скачать: CL | DM;

Пересечение классов   Найти похожие ветки 

← →
HSD   (2004-08-15 23:55) [0]

Приветствую эксперты.Тут я делаю так:
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;


← →
Fay ©   (2004-08-16 02:40) [1]

Бредятина какая-от. Можно повторить понятнее?


← →
Fay ©   (2004-08-16 02:41) [2]

В смысле "... какая-то" 8)


← →
KSergey ©   (2004-08-16 07:28) [3]

Короче вроде отдаленно понимаю о чем речь. Был тут недавно треп по поводу кольцевых ссылок.

Из общих соображений:
Можно спорить о производительности и ее необходимости в конкретном месте, однако лучше, если программа будет читабельнее и легче поддаваться модификации, чем выигрыш в 2 милисекунды (где эти милисекунды действительно не критичны).
А легче понимать и модифицровать функцию, параметры которой четко понятны и видны, чем ту, в которой есть жуткие завязки на другие модули.


← →
HSD   (2004-08-19 13:40) [4]

Хотел сделать упрощенную запись вызова функции,т.е
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; без указания обьектов

Но видимо тут не получится так


← →
TUser ©   (2004-08-19 13:48) [5]

Получится, если написать код.

PS. За последний месяц - по моему ИМХО самый крутой пример того, как можно в топике выразить свои мысли предельно непонятно. Уж извини.


← →
HSD   (2004-08-19 14:05) [6]

>выразить свои мысли предельно непонятно.
да давно я не сидел в инете...извините!
и писал всегда так длинно,что запарило,а
в чужих исходниках ничего подобного нет,
покрайне мере которые я видел

procedure Read(Sender:TObject);
{(CB1,CB2:TCheckBox;
               RadioGroup1:TRadioGroup;
               E:TSpinEdit;
               lbss:TListBox);}


← →
TUser ©   (2004-08-19 14:12) [7]

Дальше обычно пишут var или begin. Еще варианты - Type, const, procedure, function, label. На выбор.


← →
HSD   (2004-08-19 14:15) [8]

знаю это обьявление
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;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.022 c
11-1080229086
Sewix
2004-03-25 18:38
2004.09.05
ListView ScrollBar


14-1092760215
VID
2004-08-17 20:30
2004.09.05
FTP-клиент.


3-1091193331
Alex_2004
2004-07-30 17:15
2004.09.05
Активные сервера MS SQL


3-1092200933
Drozdov A
2004-08-11 09:08
2004.09.05
Клиент-Сервер


1-1092910926
Cosinus
2004-08-19 14:22
2004.09.05
Обход всех секций в INI не зная точного их количества и имен




   Наверх