|
|
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
Проблема в следующем. Создаю класс My_Container, способный отображать свое содержимое в виде «одна запись» и в виде «все записи» (через Grid). Некоторые вопросы по этому поводу я уже здесь задавал, теперь – о программном создании Grid’а. Не получается привязать его к данным в том порядке, как мне нужно. Имеется в виду, что не все поля «закрепленной» за контейнером dbf-таблицы подлежат отображению через Grid. Для иллюстрации проблемы я создал форму специально с «разно-классовыми» контроллами и прикрепил к ней наспех сделанную dbf-таблицу с разными типами полей. По замыслу, Grid должен заместить собой поле контейнера, как только юзер сделает щелчок правой клавишей мыши на свободном от контроллов участке контейнера. Если заблокировать строки кода в классе My_Container, где присваивается значение свойствам ControlSource и создаются текущие контроллы, отличные от дефолтных TextBox’ов, то все вроде работает, правда – не в нужном порядке следуют колонки и не через нужные CurrentControll’ы отображается информация. Но в том и соль, что надо, чтобы Grid создавался не в полустихийном режиме, а – управляемо. Как решить данную проблему? Класс и форму с таблицей прилагаю в архиве. Гляньте, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2007, 19:44 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
1. макроподстановка - зло Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 2. используйте венгерскую нотацию. 3. грида не увидел, наверное нужно положить его в контейнер (трудно догадаться, где Вы его желаете увидеть) 4. прикладываю пример подъема грида из строки-описания с опред.разделителями для вфп9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 09:47 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
ага, нашел, но странный способ по правой кнопке светить грид, и упираться наверное чтобы убрать видимые контролы наверное проще положить пейджик с двумя закладками одна закладка - список 2-я - детализация записи в одну закладку положить Ваши контролы, в другую - грид ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 09:50 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
в моем примере увидите,как поднять грид уберите макроподстановки - дурдом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 09:57 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
Код: 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. 33. 34. 35. 36. 37. 38. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 10:05 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
все плохо,нет культуры письма, делайте выводы наверное варитесь в своем соку, нужно с кем-нить пообщаться и поучиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 10:06 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
в Вашей-же библиотеке Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. совершенно другой стиль, наверное содрали откуда-то ну вот и подсмотрите что-же огород-то городить в сам-то деле ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 10:12 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
To alex11100: Спасибо за помощь, настолько задолбался с .ControlSource=..., что уже и не верится, что что-то получится. Сейчас попробую ваш вариант. А насчет стиля письма и макроподстановок - я сам от этого далеко не балдею, но - горбатого могила исправит. Пробовал когда-то переучиться - так перестали работать даже те коды, что нормально работали раньше. Сейчас же руководствуюсь правилом: главное - конечный результат. Если стиль письма и макроподстановки усложняют его достижение, это, конечно, плохо, но, если он в конце концов достигнут - сойдут и макроподстановки, и стиль письма :)) Насчет закладок - я ими и так загрузил форму, для которой и разрабатывал этот контейнер. Так что - не хотелось бы ими злоупотреблять. Ибо злоупотребления макроподстановками пользователь не заметит, а от чрезмерного количества закладок у него в глазах рябит :)) А насчет последнего - "умного" фрагмента кода из "моей" библиотеки - выводы не верные. Это - библиотека из состава VFP7, я просто туда добавил свой класс, чтобы не возиться потом с подключением отдельных библиотечных файлов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 12:38 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
автор главное - конечный результат еще раз. макроподстановка - зло, особенно там где она сто лет не нужна, если конечно головой думать тормоз и тяжело отлаживать учитесь правильно писать - затем умучитесь свой код лопатить, а если он кому-нить достанется, то пипец тому человеку можете пейджефрейм сделать без пейджиков, просто пейджефрейм - это уже контейнер с подконтейнерами (или развернуть закладки влево или вправо) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 13:08 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
Ура, заработало! Спасибо, alex11100. И - будет вам насчет макроподстановок-то! Я ж не возражаю, что они - зло. И по вашему примеру поубирал их уже из кода. Просто, когда писал - забыл про такую возможность, как WITH-ENDWITH. Код мой точно никому не достанется - слишком закрытое учреждение, похлеще подводной лодки :)) А сам свои каракули - я разбираю с полоборота. Приложенный вами материал я еще не разобрал, но, думаю, там не все можно будет мне позаимствовать - 9>7 все-таки... Главное, что я почерпнул из ваших советов (правда, пришлось все равно очередность команд переделывать): при внедрении CurrentControll'ов - сначала Grid должен быть привязан к нужному файлу через RecordSource, затем - текущая анализируемая колонка должна быть привязана к своему полю этого файла через ее ControlSource, затем - внедряется и назначается текущим Control нужного класса с соблюдением допустимого типа данных для него, а уже в конце - визуализация с обновлением. При такой последовательности команд все начало работать, как и было задумано. Теперь осталось только запрограмить рациональный подбор ширины колонок и высоты строки, да еще автоматизирповать назначение RecordSource для внедренных в Grid ComboBox'ов, но с этим я, надеюсь, справлюсь :)) Для меня кажется удивительным, что правильно срабатывает последовательность: dhl=Alltrim(CntrlSrc) .ControlSource=dhl ведь dhl в данном случае представляет только строчное имя поля, а не ссылку на его содержимое, но раз это нормально срабатывает - не буду над этим и заморачиваться :)) Еще раз - спасибо за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 13:44 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
To alex11100: Точно, мой VFP7 споткнулся о TRY...Catch и некоторые другие девяточные навороты. Но сам подход и логику кода - я уразумел. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 17:32 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
попробуйте уйти на 9-ку смысла сидеть на 7-ке нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 17:34 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
Нет. 9-ка мне не подходит. Убедился. 7-ка лучше, хоть и наворотов поменьше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 19:22 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
авторУбедился. 7-ка лучше интересно, чем? тем, что у Вас отсутствуют большинство новых классов, функций и др.новшеств? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 08:49 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
Да тут много суждений по этому поводу уже приводилось. В общем и целом суть сводится к следующему: чаще всего прогресс в целом и самолет в частности - лучше, чем предыдущая ступень развития в целом и лошадь в частности. Но - остаются некоторые, пусть и немногие ситуации, когда лошадь - больше подходит, а самолет - вовсе неприменим. Скажем такие доводы в пользу VFP7: - более простая система является более устойчивой и надежной (хук слева); - меньший размер скомпилированных файлов и меньшее количество необходимых библиотек (хук справа); - еще парочка таких же не во всем неубедительных доводов (удар под дых); - невозможность РАЗРАБАТЫВАТЬ под версиями ОС ниже ХР(2000) (удар ниже пояса, VFP9 падает и корчится). Иногда - это нужно пока. Прошу не расценивать это как консерватизм - просто у меня, действительно, похожая ситуация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 21:05 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
полнейшая ерунда изв., но мне лень клавиши давить, чтобы Вас переубедить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 09:01 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
Самое главное вы так и не поняли - переубеждать и не надо, я давно уже переубежден. Попробуйте-ка переубедить комп с Win98 или с Миллениумом - думаю, пупок развяжется. Надеюсь, про "обстоятельства сильнее нас" слышали? У меня - правда! - есть необходимость оперативно корректировать код и компилить заново, не перемещаясь между компами с 98, МЕ и ХР. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 21:44 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
Ну и субъективный момент: SET ENGINEBEHAVIOR 70 | 80 - повергает меня в дикую депрессию, ибо уже самим фактом своего существования предполагает наличие варианта создания SQL-запроса по логике, альтернативной нормальному здравому смыслу . Только не говорите о том, что обязательность перечисления всех полей в GROUP BY - может также считаться НОРМАЛЬНЫМ требованием, а то меня стошнит :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 21:55 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. Какое значение поля f2 в результирующей выборке Вы считаете "нормальным" и "правильным"? Только не говорите, что у Вас в подобных случаях все значения поля f2 одинаковые. Откуда ДО выполнения запроса это известно? А ведь синтаксический разбор (создание плана выполнения запроса) происходит именно ДО выполнения собственно выборки. Налицо - неопределенность результата. Непонятно что именно, какое значение, из возможных вариантов необходимо отобразить в результате. Если Вам все-равно, какое это будет значение (или они все одинаковые), то какие проблемы обернуть это поле в MAX() или MIN()? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 22:40 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
Так то ж еще "оборачивать" надо ... Само по себе это не тяжело, но если прошляпить, да еще в много-многострочном коде - потом мозги перестраивать приходится: почему сегодня прога матерится на то, что еще вчера круто работало?.. С помощью нормального (в моем понимании) поведения GROUP BY довольно просто решается задача сохранения нужной части структуры входного файла в результирующем файле, при этом (нечасто, правда) ни максимальное значение, ни минимальное (тем более, если это 0) - не весьма устраивает. Кому-то это покажется похожим на отговорки, но я так и поясняю - "субъективный момент". И выглядит он, имхо, не более неуклюже, чем, скажем, оператор := в некоторых языках программирования. Сиречь - имеет право на существование. А вот с объективными препятствиями типа 98 и МЕ - бороться гораздо трудней. Но самое главное, ВладимирМ - с мэтрами я не спорю. Посему все вышеизложенное просю трактовать НЕ как контрдоводы и отстаивание своей точки зрения, а как робкие попытки оправдания, типа - детского лепета :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 00:00 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
приложения fpv9 прекрасно работают на win98 и winME SET ENGINEBEHAVIOR 70 | 80 реализовано специально для совместимости и для тех кому тошнит авторболее простая система является более устойчивой и надежной в 9-ке исправлено более 100 ошибок, тянувшихся с ранних версий для меня наиболее критичной была простановка неверного колич-ва записей в заголовке транзакционных таблиц авторменьший размер скомпилированных файлов и меньшее количество необходимых библиотек полная ерунда, - докажите (и если и даже, странно, и Вам не безразличнен лишний мегабайт?) все зависит от того что Ваше приложение будет делать, извините думаю ехе с одной строчкой будет весить одинаково библиотеки рантама тяжелее?? так извю 9-ка больше умеет, и ставятся один раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 09:13 |
|
||
|
Программное создание Grid'а ...
|
|||
|---|---|---|---|
|
#18+
Я ж по русски написал: речь идет не о необходимости РАБОТЫ приложения на 98-МЕ, а о необходимости правки кода и последующей перекомпиляции, а это уже, извиняюсь, тянет на РАЗРАБОТКУ, а не просто РАБОТУ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 14:09 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34571019&tid=1589195]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
174ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 534ms |

| 0 / 0 |
