| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Napisanie funkcii dlya leybelov |
| Автор: Pavel_NL 26.5.2005, 11:27 |
| zdraste vsem, pomogite 4ajniku istoriya v kratse: est' 6 raznyh leybelov, s sovsem raznymi imenami (pereimenovyvat' nel'zya =(...), ja ho4u 4toby kogda proizoshel form_load (zagruzka moego okoshe4ka progi), v samom na4ale to bish', 6 etix leybelov stanovilis' pustimi i nedostumnimi dlya ispolzovaniya. pisat' 6 raz odno i tozhe no s raznimi imenami ne ho4u, no zahotel napisat funkciyu sled. vida: Function begin_labels_clear (label_naam As Label) With label_naam .Enabled = False .Caption = "" End With End Function pomestil v samom verhu koda, potom nizhe u menya tam idet form_load: ......... begin_labels_clear (lblEen) ......... Leybel s takim imenem sushestvuyet, stopudova a pri popitke prosmotra progi, on mne na form_load, i etot vizov funkcii materitsa i oret Type missmatch... kto skazhet, 4to ya delayu ne tak? |
| Автор: Guest 26.5.2005, 11:33 |
| izvinite za flud |
| Автор: cardinal 26.5.2005, 16:48 | ||
Модератор: Пользуйся транслитом!
|
| Автор: ~FoX~ 27.5.2005, 09:06 | ||
| cardinal А почему функцией? Онаже не возвращает ничего...... Тогда уж так:
|
| Автор: cardinal 27.5.2005, 13:24 | ||
Ну он так хотел. |
| Автор: Naghual 27.5.2005, 16:39 | ||
Я мне кажется ему необходимо обращятся к объекту по его имени:
|
| Автор: Black_Star 27.5.2005, 17:30 |
| Гы. И каждый раз идет перебор по всем элементам... Автор и сам решил проблему, но почему-то есть ошибка (как обычно без кода не поймешь). А обращАтЬся ему надо не по имени (иначе имя было бы в кавычках). |
| Автор: cardinal 27.5.2005, 17:49 | ||||
Просто как всегда надо так
или так
писать... |
| Автор: Pavel_NL 28.5.2005, 13:54 | ||
хм... спасибо. я только не совсем все понял. чайник же. например, что вот это такое
я конечно могу весь код выложить, но там все переменные итд названы по голландски... там не так уж и много на самом деле... но помоему не в коде дело. вся запарка моя в том, что если я вызывваю эту функцию в любом другом месте - ошибок никакиз нет, но и работать она тоже не работает, да и смысл у нее именно в начале всего действия работать, поэтому и помещена она в Form_Load() может эта процедура особенная какая-то и там функции свои вписывать незя? кстати, я от своего старого учителя слыхал, что использование меток и ГоуТу считается плохим стилем программирования... Правда? |
| Автор: Naghual 28.5.2005, 15:20 | ||||
| Приведенная мной функция ищет на форме объект типа Label по его имени. Давай попробуем пробежатся по моему коду. Dim Ctrl As Object - Объявляем переменную Ctrl как Объект любого типа. For Each Ctrl In Me.Controls - Конструкция For Each ... In ... работает по тому же принципу что и обычный цикл For...Next но с одним МАЛЕНЬКИМ нюансом. Последовательным перебором переменной Ctrl присваивается каждый объект из коллекции. В данном случае Me.Controls это коллекция всех элементов управления на форме. If TypeName(Ctrl) = "Label" Then - Если тип объекта Ctrl называется "Label" тогда... If Ctrl.Name = LabelName Then - Если этот лейбл имеет заданное имя тогда ... Добавлено @ 15:22 З.Ы.
Истинно говорю, правда. И Pavel_NL зарегистрируйся Добавлено @ 15:25 Black_Star абсолютно правильное замечание. Тело в цикле нужно изменить вот так:
|
| Автор: PavelNL 29.5.2005, 20:57 |
| Naghual, спасибо большое за пояснение кода. зарегился кстати. как только смогу все, что планировал реализовать в коде, с ващей помощью, отпишусь. топик прошу не удалчть |
| Автор: PavelNL 30.5.2005, 12:19 |
| Проблему с ошибкой наконец-то решил. |
| Автор: PavelNL 5.6.2005, 04:11 | ||
| У меня снова вопрос Я в своем фрэйме сделал строку меню. Хочу "Выход" Кнопочку сделать, чтобы все закрывалось. Прописал Stop, но сам помню, что это не то, что мне надо, даже если бы и работало. Но даже и это не работает почему-то. В интернете поискал что-то вроде функции Exit, не нашел. Руки кривые наверное Еще хочу узнать, как переносить строки кода. Я хочу например вот следующего вида МэссэджБокс использовать:
И все это написал в одну строчку, ужасно неудобно. Как пересонить строки кода на новый абзац? ну и самый наверное ламмерский вопрос. как мне exe-шник мой получить-то? =) я нажимаю Ctrl+F5 но где мой экзэшник я так и не понимаю... заранее спасибо |
| Автор: Gannibal 5.6.2005, 04:47 | ||||||||||
ну если правельно понял тогда тебе надо писать
вот типа такого и будет если я правельно тебя понял
Экзешник лежит там где и проект ;) лежит... |
| Автор: cardinal 5.6.2005, 17:31 | ||||
Если не ошибаюсь, то в какой-то книге было написано, что вместо
лучше писать
Так как типа End это полный абзац, а Unload Me нормальная выгрузка проги... |
| Автор: Gannibal 5.6.2005, 17:54 | ||
сразу из памяти выгружает если неошибаюсь |
| Автор: efedron 5.6.2005, 22:23 | ||
cardinal
это почему же? лучше всего сначала все выгрузить (unlaod), а потом не забыть написать end, ибо программа может "случайно" не закрыться и висеть в памяти (мало ли, мож забыл че-нть выгрузить). А End - это типа процедуры ExitProcess, так что для того, чтобы быть уверенным, что программа завершиться, надо ее использовать |
| Автор: Naghual 6.6.2005, 09:10 |
| Неа. Unload Me выгружает из памяти текущую Форму! Если програма стартовала формой то она возможно таки будет завершена, но при условии что не были созданы иные глобальные объекты. А если программа запускалась из Sub Main() тогда ничего не получится. Правильнее всего уничтожить все что было созданной программой (Set SomeObject = Nothing) и затем заверщить программу ерез End. |
| Автор: cardinal 6.6.2005, 16:02 |
| Понял. Посмотрю, может найду ту книгу, может там что-нибудь другое имелось в виду... |
| Автор: PavelNL 6.6.2005, 16:46 |
| Спасибо, за полные ответы. но вот своего экзешника я так и не получил. Играет ли версия моего бейсика роль - 5.0 ССЕ? 6-ой стоит в школе, а дома вот это Г. Хотя может зря я на версию думаю? В папке у меня лежат три файла одного имние, с разными расширениями: file.frm, file.vbp, file.vbw Можно так же сохранить группу. Не знаю точно, что это, но кажется, это как раз эти три файла в одном. Больше в этой папке ничего нету. |
| Автор: Voldemar2004 6.6.2005, 18:18 | ||
Ну так ведь File->Make Project1.exe ? Командная строка VB в крайнем случае... |
| Автор: Naghual 6.6.2005, 18:22 |
| Я конечно дико извеняюсь, но VB 5.0 ССЕ это есть Control Creation Edition. Он может компилить только в OCX. Да и внутренности у него урезанные. ИМХО: Однако вещь незаменимая для написания чисто контролов! |
| Автор: PavelNL 6.6.2005, 19:50 |
| Naghual, кто такое ОСХ? |
| Автор: cardinal 6.6.2005, 20:50 |
| PavelNL, не майся дурью! Кстати этот подраздел форума называется VB6, а не VB5... PavelNL, если ты в школе диск на день попросишь тебе не дадут? |
| Автор: Naghual 6.6.2005, 20:54 |
| OCX - Это скомпилированный код элемента(ов) управления (ActiveX Control). В любом случае это не то что тебе нужно. |
| Автор: Voldemar2004 6.6.2005, 21:44 | ||
У меня была такая фишка: удалил случайно какие-то жизненно важные системные файлы для VB 6 и - не поверите - он стал именно Control Creation Edition, если память мне не изменяет. А вот назад попробовать - прописать эти удаленные системные файлы на свое место - не получилось. Пришлось переставлять VB 6 Pro. Вот так. |
| Автор: PavelNL 7.6.2005, 02:46 |
| cardinal, в Голландии все жмоты, не дадут. Но диск я уже пробил. За нарушение рубрикации - пардон, виноват, исправлюсь а вообще не честно, конечно, вот так вот и не скачаешь ничего, башлять только надо везде... =( Voldemar2004, вот мне бы ухитриться файлы присобачить к моей версии, чтоб 6-ая получилась (топик пока не закрывайте, пожалуйста) |
| Автор: Naghual 7.6.2005, 09:43 | ||
Voldemar2004
И не верю |
| Автор: Voldemar2004 7.6.2005, 12:54 | ||
Так я ведь бейсик ставил (так же как и удалял впрочем и все другие проги) с помощью Total Uninstaller'а. А он пишет при финализации удаления: файл с расширением таким-то ОС сообщает что он не занят в данный момент - ну так я файлы эти и посносил - сюрпизов потом - ну как я выше рассказал. |
| Автор: Exception 7.6.2005, 15:15 | ||
[offtop] а у тебя он никогда не становился Working Model Edition? У меня становился [/offtop] |
| Автор: Voldemar2004 7.6.2005, 17:04 | ||
Да точно, я имел в виду именно Working Model Edition. А не Control Creation Edition. Вот, надо ж было так перепутать. Извиняйте. |