|
|
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Кстати, у вас они определены не глобально, а Private, раз на уровне формы, что, впрочем, мало что меняет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 17:35 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
VladConnМои объяснения не затрагивали глобально определенных объектов. Касательно именно рекордсетов: в своей практике мне не приходилось еще сталкиваться с оправданностью их декларирования глобально. Мне интересно? а как тогда работать с базами данных, добавлять-удалять-изменять если объект создан лишь на уровне процы А если через рекорд связь идёт с ДатаКонтролом. Вот мне интересно это знать. Как с БД работают без постоянных рекордов на уровне формы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 17:36 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
VladConnКстати, у вас они определены не глобально, а Private, раз на уровне формы, что, впрочем, мало что меняет. Даже если так! Мне всё равно приходится в силу ограничений на ядро Джет обновлять рекорды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 17:38 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Да, это серьезный вопрос, касающийся дизайна проекта и уже не этой темы. Я не в состоянии по времени углубляться и в эту дискуссию. Могу лишь сказать, что я участвовал во многих очень и не очень больших проектах с разными базами. Когда я только начинал, я пытался использовать Recordets на уровне форм и выше. Это жестоко пресекалось отделом качества и на ревью проекта другими разработчиками, т.к. шло вразрез с принципом инкапсулирования и прочими вещами. Можно представить Recordset на уровне специализированного класса. Такой Recordset должен был бы быть при этом очень "dedicated" и скорее всего возвращаться как одно из свойств класса. Его инкарнация и убиение при этом должны поддерживаться в соответствующих событиях класса. Смысл в том, что использование одного и того же объекта в разных методах для разных целей уже не поощряется. Ваш же случай мне неизвестен. Успехов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 17:55 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
VladConn, я знаю, что ты знаешь, ты знаешь, что я знаю... это не совсем вопрос стиля. Это, в большей мере, вопрос управления моментом и порядком уничтожения объектов, и самодисциплины (я отчётливо это почувствовал, начав, после VB, работать с COM на C, потом на C++). О стиле. Некоторые программисты (зависит от опыта, иногда от школы (индусы, например)) предпочитают метод Copy-Paste. Вот и пусть копипастят блок кода, в котором объекты (которые могут быть "тяжёлыми") явно уничтожены. О педагогике. Лучше заложить на уровне рефлекса - закончил пользоваться ресурсом, освободи явно (CComPtr не спасает - деструктор вызывается при выходе за область видимости. Этот выход может быть далеко, путь к нему может быть долгим, с ошибками...). Вот к теме (или не совсем), в качестве почти что шутки. Есть процедура, который обращается к базе данных через DAO. После обращения к базе надо осводить память, в том числе надо выгрузить библиотеку DAO: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 18:44 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
В VB6 явное уничтожение внутренних объектов перед выходом из процедуры не требуется. Это все, что я хотел сказать. С, С++ и прочее - вне форума. Вопрос самодисциплины и пр. - это тоже другая тема. С точки зрения исполнения кода - есть это или нет - без разницы. В этом смысле это есть вопрос стиля. Касательно ДАО. Я не знаю, как можно выгрузить целую библиотеку, присоединенную к проекту на стадии дизайна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 19:04 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
VladConn, IDE и компилятору нужна не сама библиотека, а библиотека типов (другое дело, библиотека типов часто лежит в ресурсах исполняемого файла библиотеки). Это не библиотека со статической компоновкой (.lib), а ActiveX D LL. Процесс, в котором выполняется код проекта (отдельный .exe, или VB6.EXE при отладке), подгружает библиотеку динамически при первом вызове функции из библиотеки; выгрузить библиотеку тоже можно динамически. Для этого надо закрыть объекты и убить ссылки, чтобы вызов точки входа DllCanUnloadNow мог вернуть S_OK, и библиотека могла быть выгружена. Итого, перед вызовом CoFreeUnusedLibraries должны стоять строки: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2007, 13:54 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
БенедиктVladConn, IDE и компилятору нужна не сама библиотека, а библиотека типов (другое дело, библиотека типов часто лежит в ресурсах исполняемого файла библиотеки). Это не библиотека со статической компоновкой (.lib), а ActiveX D LL. Процесс, в котором выполняется код проекта (отдельный .exe, или VB6.EXE при отладке), подгружает библиотеку динамически при первом вызове функции из библиотеки; выгрузить библиотеку тоже можно динамически. Для этого надо закрыть объекты и убить ссылки, чтобы вызов точки входа DllCanUnloadNow мог вернуть S_OK, и библиотека могла быть выгружена. Итого, перед вызовом CoFreeUnusedLibraries должны стоять строки: Код: plaintext 1. Спасибо ещё разок, Бенедикт, очень полезная информация про объекты! А Вы можете ещё просветить по вопросу объектных переменных? Хотя нет, лучше поделитесь ссылочками, коли не трудно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2007, 14:37 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Библиотеки типов (type library) имеют расширение tlb. Они ничего не загружают, а раз так, то и выгрузить их никак не получится - выгружать просто нечего. Что касается Set ... Nothing - опять же могу повторить - для процедурно объявленных объектов в этом нет надобности. Ден Программёр, касательно "объектных переменных" - на мой взгляд, лучше всего начать надо с изучения классов. Именно они и есть суть того, что потом становится объектом. К сожалению, все мои ресурсы - англоязычные, я не знаю, какие русскоязычные ресурсы вам отрекомендовать. Вот здесь (English, sorry!): How to create classes and objects in Visual Basic .NET or in Visual Basic 2005 http://support.microsoft.com/kb/307210 неплохой вводный курс. Одно из основных отличий между классами (читай, объектами) в VB6 и VB.NET это отсутствие конструктора в первом (то, что исполняется при употреблении New). Есть много других отличий, например, отсутствие Set в VB.NET (сравни objMyObj = Nothing и Set objMyObj = Nothing). Есть много других принципиальных отличий. Я бы строго рекомендовал изучение классов начать сразу с объектно-ориентированного программирования: Object-Oriented Programming in Visual Basic http://msdn2.microsoft.com/en-us/library/b86b82w0(VS.80).aspx Надеюсь, я дал полезную информацию для того, чтобы начать изучение "объектных переменных". Успехов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2007, 16:11 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Ден Программёр, Мне кажется, я нашел для вас русскоязычный ресурс по объектам: Основные понятия языка Visual Basic Создание и использование объектов http://msdn.microsoft.com/library/rus/default.asp?url=/library/rus/vbcn7/html/vbconcreatingandusingobjects.asp Успехов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2007, 16:20 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
VladConnБиблиотеки типов (type library) имеют расширение tlb. Они ничего не загружают, а раз так, то и выгрузить их никак не получится - выгружать просто нечего. Что касается Set ... Nothing - опять же могу повторить - для процедурно объявленных объектов в этом нет надобности. Ден Программёр, касательно "объектных переменных" - на мой взгляд, лучше всего начать надо с изучения классов. Именно они и есть суть того, что потом становится объектом. К сожалению, все мои ресурсы - англоязычные, я не знаю, какие русскоязычные ресурсы вам отрекомендовать. Вот здесь (English, sorry!): How to create classes and objects in Visual Basic .NET or in Visual Basic 2005 http://support.microsoft.com/kb/307210 неплохой вводный курс. Одно из основных отличий между классами (читай, объектами) в VB6 и VB.NET это отсутствие конструктора в первом (то, что исполняется при употреблении New). Есть много других отличий, например, отсутствие Set в VB.NET (сравни objMyObj = Nothing и Set objMyObj = Nothing). Есть много других принципиальных отличий. Я бы строго рекомендовал изучение классов начать сразу с объектно-ориентированного программирования: Object-Oriented Programming in Visual Basic http://msdn2.microsoft.com/en-us/library/b86b82w0(VS.80).aspx Надеюсь, я дал полезную информацию для того, чтобы начать изучение "объектных переменных". Успехов. Хотя я вроде просил помощи у Бенедикта, но всё же спасибо, хотя томик про ВБ 6 лежит перед носом и там полно про классы и ООП, но то, что там описано, пока до меня струдом идёт, хотя общую схему я понял. Спасибо, вобщем! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2007, 16:22 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
То, что доходит с трудом - это вполне нормально. Со временем, оно все устаканивается, если использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2007, 16:25 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
VladConnТо, что доходит с трудом - это вполне нормально. Со временем, оно все устаканивается, если использовать. спасибо, будем, будем! куда нам деться?-) Модератор: Просьба не оффтопить. Вы своими вопросами уводите топик слишком далеко от его начальной темы, что не может удовлетворять автора. Прошу в дальнейшем для своих вопросов создавать отдельные темы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2007, 16:31 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Ден ПрограммёрА Вы можете ещё просветить по вопросу объектных переменных? Хотя нет, лучше поделитесь ссылочками, коли не трудно?Ссылки на русскоязычные ресурсы не знаю. По англоязычным. Главный источник - MSDN Library. К сожалению, она в процессе перехода с msdn.microsoft.com на msdn2.microsoft.com, поэтому навигация может не полностью работать. Глава, где описывается работа с объектами в VB6, называется Visual Basic Concepts. Programming with Objects . Лучше найти старый (~1999-2001) выпуск MSDN на CD. Другой источник - книги из коробочных версий VB (Pro, Enterprise Edition). Вторичным источником можно взять архивы Visual Basic Programers Journal , но надо рыться, искать. Особенное внимание статьям под авторством Matthew Curland. Для понимания подсчёта ссылок, времени жизни объекта, множественности поддерживаемых объектом интерфейсов рекомендую главы 1-4 книги Дейла Роджерсона "Основы COM" . Книга из серии must have. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 12:01 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
VladConn, Я говорю о загрузке/выгрузке кода и структур данных (программных) библиотек в момент выполнения программы, т.е. о функциональности, предоставляемой функциями (Co-)LoadLibrary(-Ex), (Co-)FreeLibrary. Объём занимаемой процессом памяти можно проконтролировать Task Manager-ом, моменты загрузки/выгрузки Dependency Walker -ом. Библиотека типов может находиться как в отдельном .tlb/.olb файле, так и лежать в виде ресурса в исполняемом файле программной библиотеки (.dll, .ocx, .exe) (на практике чаще последнее). Я не говорил о загрузке/выгрузке библиотеки типов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 12:34 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Позволю себе одно замечание. Вот фразы вроде этой: Хотя я вроде просил помощи у Бенедикта, но всё же спасибо, хотя томик про ВБ 6 лежит перед носом... надолго отбивают охоту помогать. На мой взгляд, это просто неуважение к человеку, согласившемуся помочь. Вообще, просто слов нет, никогда раньше такого не встречал. Если тяжело из себя выдавливать элементарное "спасибо", так лучше вообще этого не делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 18:11 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
БенедиктVladConn, Я говорю о загрузке/выгрузке кода и структур данных (программных) библиотек в момент выполнения программы, т.е. о функциональности, предоставляемой функциями (Co-)LoadLibrary(-Ex), (Co-)FreeLibrary. Объём занимаемой процессом памяти можно проконтролировать Task Manager-ом, моменты загрузки/выгрузки Dependency Walker -ом. Библиотека типов может находиться как в отдельном .tlb/.olb файле, так и лежать в виде ресурса в исполняемом файле программной библиотеки (.dll, .ocx, .exe) (на практике чаще последнее). Я не говорил о загрузке/выгрузке библиотеки типов. Да, конечно. Я этот вопрос перезадал на другом форуме, англоязычном. Можете посмотреть, если вам интересно, там в основном народ задумался над легитимностью этого дела, я и не ожидал: автор BobRodes (Instructor) 29 Jun 07 11:24 At first glance, yes, it does sound a bit crazy. Why do you want to do this? strongm (MIS) 29 Jun 07 11:45 If it really is a type library, then the answer is no JoeAtWork (Programmer) 29 Jun 07 13:37 If he has some legitimate reason to do this, maybe late binding would be the answer? strongm (MIS) 29 Jun 07 14:36 If it is a type library then it doesn't matter if there is a legitimate reason or not. Type libraries do not load anything, so there is nothing to unload. strongm (MIS) 2 Jul 07 9:25 I think what JoeAtWork was suggesting is that it is difficult to think of a compelling reason why a VB programmer might require control of the unloading of a Type or COM library BobRodes (Instructor) 2 Jul 07 13:14 Sounds like "straining out gnats" to me. strongm (MIS) 2 Jul 07 13:39 Given that VB and COM already handle all that for you and keep everything safe for you and your application (e.g correctly maintaining reference counts, pointers etc), that isn't a convincing reason ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 18:21 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
VladConn Вот тут уже точно идёт чистая провокация, причём не с моей стороны!!!!!!! СПАСИБО, надеюсь эти слова согреют Вашу! Хотя замечу, все меня пытаются учить, хотя при этом поступают совершенно непедагогично! Ошибки я свои признал уже давно, а меня всё ещё пытаются натыкать носом пусть и в свою каку, да ещё забаннить всё время хотят. И как вы думаете, после такого на одного хакера станет явно больше, уже мыслишки всякие завелись в моей вполне светлой голове. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 18:23 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Как вы умудряетесь одновременно косвенно назвать человека, пытавшегося вам помочь, провокатором и сказать СПАСИБО так, что его как-то и не хочется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 18:37 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Ден ПрограммёрОшибки я свои признал уже давно, а меня всё ещё пытаются натыкать носом пусть и в свою каку, да ещё забаннить всё время хотят. И как вы думаете, после такого на одного хакера станет явно больше, уже мыслишки всякие завелись в моей вполне светлой голове. На ошибках надо учиться а не признавать их, здесь не комсомольское собрание. Просто удивительно как ты умудряешься постоянно влезть в конфликтные ситуации с разными людьми в разных топиках и при этом в своей невоспитанности обвинять других участников и модераторов. Замечания к тебе считаю вполне справедливыми, чего ты постоянно огрызаешься на всех? Умудряешься грубить людям на каждом шагу а перемежая грубость с благодарностями. Хватит флуда и оффтопа, чтоб мне не пришлось закрывать еще и этот топик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 01:31 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Magnus23Модератору Уважаемый, Максим, а что делать? Такова се ля ви, мир вообще попа, но одним ею хочется восхищятся (это те "дурачки", типа меня, которые видят всю каку мира, скрытую в этой попе, но которые всё же восхищаются этим миром, потому что такова училковская доля), а другие хотят её лизать (ну, чтобы получить от неё всё самое лучшее), третьи — иметь её :)) (хотя это тоже большой вопрос), а четвёртым вообще такое от неё надо :)). И остаётся один выход, просто огрызаться, особенно когда машут кулаками после драки. Кстати, ещё повод подметить (это я как педагог говорю), исправление ошибки начинается с её признания! ХОРОШО, вы желаете извинений в словесной форме, пожалуйста:"Простите меня пожалуйста люди добрые, простите!" Хотя вот вам притча:" Однажды дедушка Сталин сказал, убить человека ничего не стоит — всего каких-то 9 грамм —но даже если собирутся все легионы мира, даже они не смогут убить в человеке его мысли" Ещё разок СПАСИБО за внимание! Кстати, я тоже в определённом смысле украинец, но я ведь говорю на русском языке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 09:06 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
В последнее время открываешь форум - есть новые сообщения - открываешь посмотреть, а там опять Ден с кем нибуть срётся. ДенЕщё разок СПАСИБО за внимание! Трафик жалко и время жалко пока пролисташь весь этот базар. Вот такое внимание. Против тебя ничего не имею, но это ж ведь мешает, тем более многие вслед за тобой бросаются туда же в базар (вот и я не выдержал...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 10:46 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
Всем спасибо и за помощь, и за простые разговоры о "высоком" (т.к. я впринципе ничего не понял), но есть одно маленькое НО. У меня снова ничего не работает. Объясню по-подробнее. Есть кнопка, нажав которую должны скрыться 250 чекбосков. Можно просто их прописать типа: checkbox1.visible=false checkbox2.visible=false и т.д., но это достаточно сильно грузит машину, т.к. кроме скрытия происходит выполнение еще 5 процедур. Поэтому хотелось бы сделать цикл for - и время съэкономить и клаву поберечь. Все объекты на листе, а не на форме. Весь процесс происходит в екселе. То, что предлагалось выше не работает. Либо по определению, либо потому что руки у меня кривые. Поэтому, снова прошу у Вас помощи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 11:38 |
|
||
|
Цикл for для checkbox'ов
|
|||
|---|---|---|---|
|
#18+
VladConn, да, спасибо, по первому прочтению было интересно. tek-tips стОящий форум? К сожалению, при повторном прочтении, кроме сообщения от strongm (MIS) 2 Jul 07 13:39, ничего не увидел. Слово "legitimate" применено во втором значении - "2) верный, истинный, правильный, разумный". "straining out gnats" - отсылка к Евангелию от Матфея: "Вожди слепые, оцеживающие комара и проглатывающие верблюда!" Толковый словарь УшаковаОцеживать комара (поговорка) - проявлять мелочную заботливость о ничтожных вещах,преимущ. при невнимании к важному.Подсчёт ссылок не спасёт от проблемы освобождения ресурсов при циклических ссылках. VB не ответственен и не может быть ответственен за реализацию библиотек - вот DAO сделана так, что остаётся в памяти, пока её явно не "попросят на выход". И бывают ошибки в реализации. Будет время, почитайте эту тему. Обратите внимание, что я столь же стойко, как и Вы, стою на тех же позициях. Но последнее сообщение тоже писал я. Как Вам цитата: MicrosoftThe developer should not rely on Visual Basic for Applications to implicitly close objects when a Sub or Function procedure is exited.? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 11:55 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=34632284&tid=2163772]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
165ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 438ms |

| 0 / 0 |
