Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: 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 вся ветка

Текущий архив: 2004.09.05;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.034 c
14-1092697349
Leaner
2004-08-17 03:02
2004.09.05
А есть в Питере компьютерные клубы, где собираються Delphi-сты ?


1-1092629810
del_programer
2004-08-16 08:16
2004.09.05
Триал


3-1091949542
Shade
2004-08-08 11:19
2004.09.05
Сортировка записей


6-1088860356
Delphi5.01
2004-07-03 17:12
2004.09.05
HTTP server + HTTP client


3-1092053052
Viktor1
2004-08-09 16:04
2004.09.05
В чём разница между IBExpert и IBManager?