Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

CASE


Страницы:   1 2

Infinityx93 ©   (2007-05-28 13:35:00) 

можно ли сделать case динамичным?
есть н элементов и надо н решений. обьяснил как смог(


Kolan   (2007-05-29 14:40:00) [1]

> Sergey Masloff   (28.05.07 22:39)

Благодарю — надо обязательно прочесть…


Игорь Шевченко   (2007-05-29 14:06:00) [2]

Sergey Masloff  

Это судьба всех серебряных пуль. Увы :)


SpellCaster   (2007-05-29 13:05:00) [3]

> процедуры одни просто на итемах одна переменная меняется,
> Combobox1.ItemIndex.

Тогда что мешает просто передавать этот индекс в процедуру?


Двмижо   (2007-05-28 22:46:00) [4]


> можно ли сделать case динамичным?


Нет, но можно сделать динамическим for.


Sergey Masloff   (2007-05-28 22:39:00) [5]

к Sergey Masloff   (28.05.07 22:34) [22]
ISBN 0−471−19713−0

AntiPatterns. Refactoring Software, Architectures, and Projects in Crisis
William J. Brown и другие
Published by John Wiley & Sons, Inc.

цитата: A design pattern becomes an AntiPattern when it
causes more problems than it solves.

мой примечаний ;-) Это происходит сплошь и рядом. Паттерны вещь такая - на слуху и на данный момент преподносится как одна из серебряных пуль. Поэтому начинает применятиься с чрезмерной горячностью.


Sergey Masloff   (2007-05-28 22:34:00) [6]

Kolan ©   (28.05.07 14:28) [13]
> Это самый правильный(имхо) путь.
Почитай книжку антипаттерны ;-)


Kolan   (2007-05-28 22:32:00) [7]

> [19] oxffff ©   (28.05.07 15:13)

Имхо «Это не наш метод» ©


oxffff   (2007-05-28 16:00:00) [8]


> b:integer;


b:word


oxffff   (2007-05-28 15:13:00) [9]


> Kolan ©   (28.05.07 15:04) [17]
> >
> > А динамические методы?
>
> В смысле «Не хочешь же ты сказать, что и функции надо динамически
> на рантайме сочинять?»?
> — Это незнаю как :), только интерпритатор писать…


TAnotherApproach=class
public
procedure Handler1(var a);message 1;
procedure Handler2(var a);message 2;
procedure Handler3(var a);message 3;
procedure Handler4(var a);message 4;
end;

{ TSuperCase }

procedure TAnotherApproach.Handler1(var a);
begin
showmessage('Handler1');
end;

procedure TAnotherApproach.Handler2(var a);
begin
showmessage('Handler2');
end;

procedure TAnotherApproach.Handler3(var a);
begin
showmessage('Handler3');
end;

procedure TAnotherApproach.Handler4(var a);
begin
showmessage('Handler4');
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
var a:TAnotherApproach;
   b:integer;
begin
a:=TAnotherApproach.Create;
b:=ComboBox1.ItemIndex+1;
a.Dispatch(b);
a.free;
end;


Kolan   (2007-05-28 15:05:00) [10]

> Из пушки по воробьям ?)

Думаю нет. Раз он собрался копипастить, то, имхо, многое можно будет поместить в Custom предка.

Автор — конкретней задачуопеши…


Kolan   (2007-05-28 15:04:00) [11]

>
> А динамические методы?

В смысле «Не хочешь же ты сказать, что и функции надо динамически на рантайме сочинять?»?
— Это незнаю как :), только интерпритатор писать…


Сергей М.   (2007-05-28 14:32:00) [12]


> сделать иерархию классав


> самый правильный(имхо) путь


Из пушки по воробьям ?)


oxffff   (2007-05-28 14:31:00) [13]


> Kolan ©   (28.05.07 14:28) [13]
> > не понял что такое паттен
>
> Описочка вышла, паттерн, конечно.
> Общий смысл — сделать иерархию классав во главе с обним
> предком(интерфейсом). Конкретное поведение поместить в подклассы.
>  И подменять конкретный экземпляр.
> Case тогда вообще не нужен…
>
> PS
>  Это самый правильный(имхо) путь.


А динамические методы?


Infinityx93   (2007-05-28 14:30:00) [14]


> А какая разница чем делать выбор (if или case) если его
> надо сделать принципиально ?


мне все равно чем делать выбор просто кейс взял потому что условий больше 2х, да и реакцию комбобокса мне так сказали сделать (

>
> Вероятно у него combo на 256 items и есть 256 разных процедур.
>
> Это по нашему:)


процедуры одни просто на итемах одна переменная меняется, Combobox1.ItemIndex.
и я поэтому подумал почему бы не уменьшить размер не нужного кода

> Что значит "делаются" ?
>

делаются значит вычисляются машинкой


Kolan   (2007-05-28 14:28:00) [15]

> не понял что такое паттен

Описочка вышла, патте рн, конечно.
Общий смысл — сделать иерархию классав во главе с обним предком(интерфейсом). Конкретное поведение поместить в подклассы. И подменять конкретный экземпляр.
Caseтогда вообще не нужен…

PS
 Это самый правильный(имхо) путь.


Сергей М.   (2007-05-28 14:20:00) [16]


> Jeer ©   (28.05.07 14:16) [10]


Тут ведь засада в другом)

Ну пусть он сделает вместо 256-ти всего одну процедуру и передаст в нее параметром ItemIndex.

Следующим вопросом будет вопрос про тот же самый case и "256элементов копи пастить", но уже в теле той самой единственной процедуры


Сергей М.   (2007-05-28 14:17:00) [17]


> при нажатии на определенный итем делаются процедурки


Что значит "делаются" ?

"lелаются процедурки" - понятие, относящееся только к design- и compile-time.

А "нажатие на определенный итем" - это run-time.

Разницу осюсяешь ?


Jeer   (2007-05-28 14:16:00) [18]


> Reindeer Moss Eater ©   (28.05.07 14:12) [8]


Вероятно у него combo на 256 items и есть 256 разных процедур.
Это по нашему:)


Jeer   (2007-05-28 14:14:00) [19]


> Infinityx93 ©   (28.05.07 14:03) [7]


А какая разница чем делать выбор (if или case) если его надо сделать принципиально ?


Reindeer Moss Eater   (2007-05-28 14:12:00) [20]

Убрать кейс вообще. Передавать в одну процедуру индекс выбранного элемента.

Не хочешь же ты сказать, что и функции надо динамически на рантайме сочинять?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо