Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > вопрсы по елементе label


Автор: begun 28.12.2020, 15:26
доброго дня
я ,человек не молодой ,но тянущий к знаниям.
вот нужно мне изучить вижуал бейсик, как самый доступный для понимания, по моему.
естественно, читаю книги, но конечно не легко.
надежда на форумы, что знатоки помогут разобраться , что к чему.
Сам себе ставлю задачи и по возможности стараюсь решать.
На сей раз мне нужно  использовать процедуру clik для лабеля и чтобы он менял свою окраску при каждом клике.
т.е. покликал, он красный. еще раз покликал, он зеленный и так далее(лрасный -зеленный)
ну цвета как присвоить я знаю, но как изменить состояние при каждом клике--вот в чем вопрос.
Option Explicit

Private Sub Label1_Click()
Label1.BackColor = vbBlue
End Sub
заранее извиняюсь за мои вопросы на пути обучения, которые знатокам будут казаться наивными.

Автор: Naghual 28.12.2020, 16:23
Код

If Label1.BackColor = vbBlue Then
    Label1.BackColor = vbRed
Else
    Label1.BackColor = vbBlue
End If

Пишу по памяти, так что не судите строго...

P.S.  Рекомендую посмотреть на PureBasic. На мой взгляд более интересный продукт.

Автор: begun 28.12.2020, 17:23
Naghual,
Спасибо большое. надо же,
так просто когда знаешь.
это для меня большой опыт.
Работает отлично!!

Автор: begun 28.12.2020, 17:47
Naghual,
отдельное спасибо за указание Purebasic.

Автор: begun 29.12.2020, 09:58
Naghual
Я извиняюсь, конечно,но по ходу возникла проблема, которую заранее не смог предугадать,чтобы поставить общий вопрос.
Цвета меняются нормально, но вот когда закрываешь EXE фаил и вновь открываешь, цвет лабеля теряется, а мне нужно, чтобы при открывании,
он оставался  таким, каким  был до закрывания .т.е. сохранил свой цвет. 
Это возможно?, или связанно со сложностями?

Автор: Akina 29.12.2020, 20:29
Цитата(begun @  29.12.2020,  10:58 Найти цитируемый пост)
Это возможно?

Да. Просто нужно где-то сохранять установленное состояние.

Принципиально вариантов два. Первый - внутри Excel-файла (и каждый раз потребуется сохранять при выходе, а если отказаться - потеряется). Второй - снаружи (скажем, в реестре).

В принципе оба варианта несложные. И у каждого свои плюсы и минусы.

Автор: begun 30.12.2020, 08:59
Akina,
благодарю вас.
предпочтение  надо отдать, наверно реестру. 
надо мне, где то найти, как это практический сделать.

Автор: Akina 30.12.2020, 10:46
https://docs.microsoft.com/ru-ru/office/vba/language/reference/user-interface-help/getsetting-function
https://docs.microsoft.com/ru-ru/office/vba/language/reference/user-interface-help/savesetting-statement

Автор: begun 30.12.2020, 21:11
Akina
большое спасибо.

Автор: Naghual 31.12.2020, 21:41
Цитата(begun @ 29.12.2020,  09:58)
Это возможно?

Судя по тому, как я понял задачу, вам будет лучше использовать некий файл настроек. Например, файл INI.
Плюс такого способа : переносимость на другую машину (портабельная версия) и избежание проблем с доступом к реестру от прав пользователя.

Автор: Akina 31.12.2020, 23:11
Цитата(Naghual @  31.12.2020,  22:41 Найти цитируемый пост)
Плюс такого способа : переносимость на другую машину (портабельная версия)

Тогда зачем лишний файл? можно всё хранить прямо в файле Excel - благо там для этого есть место.

Кстати, можно предусмотреть хранение и в реестре, и в файле - например, в файле по отдельному запросу именно для переноса.

Цитата(Naghual @  31.12.2020,  22:41 Найти цитируемый пост)
избежание проблем с доступом к реестру от прав пользователя.

GetSetting/SaveSetting работает с HKCU, к которому доступ должен быть без ограничений (или будут такие проблемы, что станет не до эксельного файла.)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)