Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Меню / 15 сообщений из 15, страница 1 из 1
14.03.2007, 19:45
    #34391492
Араик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню
Подскажите как к элементам меню обращать? Допустим есть меню:
1)сотрудники>>Добавить,Изменить, Удалить
2)Клиенты>>Добавить, Изменить, Удалить
3)Заказы>>принять заказы и т.д
...
Рейтинг: 0 / 0
14.03.2007, 21:36
    #34391653
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню
Никак. Меню в FoxPro это НЕ объекты. Поэтому логика обратная. Это меню к чему-то обращается. А если надо симулировать вызов пункта меню, то просто дублируют обращение к этому "чему-то"
...
Рейтинг: 0 / 0
15.03.2007, 02:36
    #34391851
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню
Ну, на самом деле есть такие команды, как
Код: plaintext
1.
SET MARK OF...
SET SKIP OF...
________
Не дадим распространиться заразе политкорректности!
...
Рейтинг: 0 / 0
15.03.2007, 09:32
    #34392118
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню
ВладимирМ

да, но любители ООП в вфп уже его сделали объектным

во-первых
в соурсах лежит foxmenu.prg
примерный код, как это юзать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
 local loMenu, ;  
  	loMenuItem  
  private poForm  
    
 * Create the menu object.  
    
  loMenu = newobject('ContextMenu', 'FoxMenu.prg')  
    
 * Create a private reference to this form so the menu actions will work.  
    
  poForm = Thisform 
    
 * Define the menu bars. 
  loMenu.AddMenu('First',    'poForm.FirstRecord()',    'frsrec_s.bmp', .F., .t.)  
  loMenu.AddMenu('Next',     'poForm.NextRecord()',     'nxtrec_s.bmp', .F., .t.)  
  loMenu.AddMenu('Previous', 'poForm.PreviousRecord()', 'prvrec_s.bmp', .F., .t.)  
  loMenu.AddMenu('Last',     'poForm.LastRecord()',     'lstrec_s.bmp', .F., .t.)  
  loMenu.AddMenu('\-')  
  loMenuItem = loMenu.AddMenu('Set Filter')  
  loMenuItem.SubMenu.AddMenu('North American Customers', ;  
  	'poForm.SetFilter("NA")', '', poForm.cFilterName = 'NA')  
  loMenuItem.SubMenu.AddMenu('European Customers', ;  
  	'poForm.SetFilter("EU")', '', poForm.cFilterName = 'EU')  
  loMenuItem.SubMenu.AddMenu('South American Customers', ;  
  	'poForm.SetFilter("SA")', '', poForm.cFilterName = 'SA')  
  loMenuItem.SubMenu.AddMenu('\-')  
  loMenuItem.SubMenu.AddMenu('Clear Filter', ;  
  	'poForm.SetFilter("")', '', empty(poForm.cFilterName))  
  loMenu.AddMenu('\-')  
  loMenu.AddMenu('Close', 'poForm.Release()')  
 * Display the menu (VFP  8  and  9  have slightly different parameters).  
 loMenu.Show(, , poForm.Name)  


во-вторых
проект VFPX (Sedna)
OOP Menu
http://www.codeplex.com/VFPX/Release/ProjectReleases.aspx?ReleaseId=61
...
Рейтинг: 0 / 0
15.03.2007, 11:28
    #34392567
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню
alex11100

Я в курсе. Но Вы вообще-то читаете вопрос ПОЛНОСТЬЮ? Вы опять "среагировали" на ключевые слова, а не на вопрос, который был задан.

Вопрос заключается в следующем: можно ли вызвать пользовательский пункт меню программно?

Ответ: НЕЛЬЗЯ! Но можно вызвать ту функцию или процедуру, которую выполняет этот пункт меню.

И объектная обертка меню именно это и подтверждает! Там именно это и сделано. В Вашем же примере это и видно!
...
Рейтинг: 0 / 0
15.03.2007, 12:04
    #34392753
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню
Код: plaintext
можно ли вызвать пользовательский пункт меню программно?

можно, если поднять объет-меню

покажите как, и пусть человек за день изучит,
поймет, что такое объект-меню
и для каких целей группа разработчиков это намудрила.

людей нужно двигать вперед.
...
Рейтинг: 0 / 0
15.03.2007, 12:10
    #34392781
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню
ВладимирМ

посмотрите топик рядом

человек, кроме красивучести VFP9 не видит отличий от VFP6

а почему?
да потому, что Вы также виноваты

покажите с биндивентом что-нибудь вместо
плоских процедур людям.

не нужно давать ответ - нет.
уже давно не 2.0 , уже 9 сп2

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

а Вы - нет, нет, Логика обратная.

прямая она, прямая, наука эта, формальная, формальная,
со своими законами, которые Вы не желаете признавать,
и несетесь сломя голову в философию.

не путайтесь под ногами,
сунул - пусть смотрит человек
...
Рейтинг: 0 / 0
15.03.2007, 14:51
    #34393582
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню
alex11100

Как мне кажется, Вы под термином "логика" понимаете что-то свое. Сугубо личное. Вы непоследовательны и нелогичны практически во всех своих высказываниях. Даже в этой теме.

Есть конкретный вопрос. На него есть конкретный ответ. Причем , заметьте, однозначный .

Да, меню можно "обернуть" в класс. Но что это значит, так сказать, на "физическом" уровне? Вы каждому пункту меню присваиваете:

1) Идентификатор
2) Функцию или процедуру, которая вызывается при выборе пункта меню

Ну, и ряд дополнительных свойств.

При вызове пункта меню через эту "обертку" Вы ориентируясь по идентификатору вызываете НЕ пункт меню, а ту функцию или процедуру, которую поставили этому пункту меню в соответствие.

Т.е. просто автоматиизируете тот процесс, который я и описал изначально.

Меню это НЕ ОБЪЕКТ. То, что была написана некая "обертка" вовсе не сделало меню объектом. Эта обертка всего-лишь позволила ИМИТИРОВАТЬ работу с меню как с объектом.

Далее, ГДЕ я говорил, что приведенным Вами инструментом пользоваться не надо? Где хотя бы намекал или подразумевал это?

PS:

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

Более того, Вы крайне невнимательны к словам оппонентов. Вы все время выдаете некие свои собственные фантазии, за слова оппонента, а потом "с пеной у рта" бросаетесь их опровергать. Когда я возражаю, что этого не говjрил и даже не подразумевал, Вы просто отмалчиваетесь или начинаете хамить.

Ваш способ ведения дискуссии демонстрирует в высшей степени непоследовательность и нелогичность высказываний. Вы не умеете ни высказать, ни объяснить, ни отстоять свою точку зрения. На основании всего этого, я делаю вывод, что логику Вы либо вообще не изучали, либо ничего не поняли из того, что изучали. Не может человек, изучавший логику, не уметь связно излагать свои мысли.
...
Рейтинг: 0 / 0
15.03.2007, 15:03
    #34393625
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню
людей нужно двигать вперед.

а Вы тормозите это развитие

авторМеню в FoxPro это НЕ объекты

вот и расскажите человеку, как сделать его объектом.
...
Рейтинг: 0 / 0
15.03.2007, 15:28
    #34393755
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню
для Вас объект - это пустой звук - это всего-лишь обертка

лучше на фоксклабе подскажите человеку как избавиться от таймера
и как забиндить событие
...
Рейтинг: 0 / 0
15.03.2007, 15:37
    #34393805
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню
alex11100людей нужно двигать вперед.

а Вы тормозите это развитие

авторМеню в FoxPro это НЕ объекты

вот и расскажите человеку, как сделать его объектом.
Еще раз. Меню в FoxPro это НЕ объект. Можно СИМУЛИРОВАТЬ работу с меню как с объектом, но СДЕЛАТЬ его объектом невозможно в принципе. По самой его природе.

То, что я описал, это именно то, что делается в приведенном Вами примере. Только не "завернутое" в кучу кода в котором еще надо долго разбираться, а описанное как основная идея. ЛОГИКА работы этого класса.

Зная общие принципы и ЛОГИКУ работы нетрудно самому написать все, что нужно в данном случае. Более того, понимание ЛОГИКИ работы облегчает понимание класса, использующего эту ЛОГИКУ.

Вы же выворачиваете все "наизнанку". Делаете заведомо некорректные предпосылки, даже не попытавшись разобраться в сути того, что делает данный класс, вводите человека в заблуждение. Говоря Вашими же словами:

Вы тормозите развитие человека

Т.е. навязываете человеку заведомо неверное представление о том, что именно он делает. Судя по Вашим ответам в других топиках, не по злому умыслу, а потому, что Вы сами плохо представляете как это все работает. Просто бездумно пользуетесь готовым решением.
...
Рейтинг: 0 / 0
15.03.2007, 15:54
    #34393872
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню
еще раз

подняв объект, чы делаем абстракцию, которая нам облегчает жизнь

только объекты позволяют правильно абстрагироваться


только переход на новую версию фокспро,
только новые способы работы
позволят сохранить проекты на фокспро
...
Рейтинг: 0 / 0
15.03.2007, 16:02
    #34393903
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню
я за симуляцию, а Вы - против

а разработчики VFPx также за симуляцию

представители ООП в вфп - за симуляцию

Вы против

а я за симуляцию, я люблю ООП
...
Рейтинг: 0 / 0
15.03.2007, 16:05
    #34393916
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню
лучше на фоксклабе подскажите человеку как избавиться от таймера
и как забиндить событие


и объясните почему лучше забиндиться, чем связываться с таймером
...
Рейтинг: 0 / 0
17.03.2007, 14:01
    #34397723
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Меню
Я Вас понял. Вы за идею, ради самой идеи. Насколько это оправдано в данном конкретном случае Вас не интересует. Что ж, так тоже можно делать. FoxPro очень снисходителен к ошибкам программистов.

Поскольку логика у Вас откровенно "хромает", то приведу несколько другую аналогию.

Вы знаете, что для реляционных баз данных желательно проводить нормализацию по самое "не балуйся". Однако реально работающие базы данных всегда в той или иной степени денормализованы. Иногда очень сильно. Не потому, что "разработчики тупые", а потому, что этому есть вполне конкретные причины. И очень веские. Сейчас не в них суть.

Другими словами, "голая идея" нормализации хороша как теория. Но на практике от нее вынуждены отступать.

То же самое касается и ООП. Как "голая идея" она хороша, но на практике от нее вынуждены отступать. Это не значит, что ее вообще не надо использовать. Почему Вы сделали такой вывод я до сих пор поражаюсь. Видимо, Ваши проблемы с логикой Но надо же соображать, когда это выгодно, а когда это не приведет ни к чему, кроме лишних проблем!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Меню / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]