Страница: 1 |
Страница: 1 |
Вопрос: Для тех, кто программит на VB.NET
Добавлено: 03.09.06 09:11
Автор вопроса: Calhoon | Web-сайт:
Несколько вопросов:
1. Есть ли в VB.NET поддержка иконок в меню стандартно?
2. Программы поддерживают стиль XP, или тож нужно кидать манифест?
3. Легко ли перейти на .NET с VB6, схожи ли программы, много ли придется переделывать код?
Ответы
Всего ответов: 13
Номер ответа: 1
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #1
Добавлено: 03.09.06 13:52
Ну ниего страшного, сейчас кто-нибудь другой скажет.
Номер ответа: 2
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #2
Добавлено: 03.09.06 14:41
придется переделывать код?
Изменений очень много. Код.. Можно переделывать, можно щапустить
мастер, который сконвертирует код VB6 в код VB .NET. Но работать с
таким кодом уже будет несладко. Если планируется послежующее
сопровождение или выпуск новых версий, то лучше с нуля переписать.
Для облегчения перехода рекомендую книгу Эплмана "Переход на VB .NET:
стратегии, концепции, код".
Номер ответа: 3
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #3
Добавлено: 03.09.06 14:52
Чё мне нравится в .НЕТ так это возможность писать под КПК. Что мне НЕ нравится в .НЕТ, так это реализация.
Если пишешь только под ПК и без особой математики, то всё нормально и дальше можно не читать. (хотя мне ОЧЕНЬ нравится математика в .нет)
Вот какие глюки лезли у меня: (пишу под впечатлением от написания проги для физики)
Один и тот же математический код не только работает по разноиу на разных машинах, но и по разному на одной машине. Проблемы возникают например в том, что компилятор разрешает опарации типа "4"+"5" и результат есть 9 (или "9". Но, как вы догадались, на КПК будет "45".
Точки и запятые это вообще капец - комп поддерживает оба знака, но бывает запятую игнорирует! (2,47=247). Кпк берёт ТОЛЬКО запятую. В результате появились вот такие чере-сж*пу-решённые коды:
Bx = txtBx.Text
By = txtBy.Text
Bz = txtBz.Text
If Not Environment.OSVersion.Platform.ToString = "WinCE" Then
Bx = Replace(txtBx.Text, ",", "."
By = Replace(txtBy.Text, ",", "."
Bz = Replace(txtBz.Text, ",", "."
End If
Val и Replace хотя и работают на ПК, на КПК вылетают сразу. так что сильн не ругайтесь
Так что готовимся к тредностям
Номер ответа: 4
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #4
Добавлено: 03.09.06 15:10
Morpheus: это скорее из-за низкой культуры кодирования
Если бы ты написал "4" + "5", я бы тебя уволил без разговоров
Запятая и точка... .NET их берет исходя из региональных настроек системы. Если на компе в региональных настройках десятичный разделитель - точка, то он бует принимать точку. А если ты в Панели управления разелителем звёздочку поставишь?
Replace, Val - это пережитки VB6. И их вообще не стОит использовать в .NET-приложениях.
Так правильней.
Номер ответа: 5
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #5
Добавлено: 03.09.06 15:47
Павел, ты пример человека, которому мля лишь бы от темы отойти: ну подумай - это ж сколько мне надо выпить чтобы в здравом уме написать цифры в кавычках?!
"4"+"5" никто и не писал вобщем то: так как Val не работает, пришлось складывать .Тексты ТекстБоксов. И на компе работало! Дело даже не в моей неграмотности, а в том , что .НЕТ выполняет код по разному на разных машинах. И уж если я создал СмартДивайсАпликэйшен то почему бы сразу не отрубить эти все функции-пережитки и не создавать иллюзию полной совместимости? Вот о чём я грил.
Номер ответа: 6
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #6
Добавлено: 03.09.06 15:50
п.с. приравнивание Double=String и последующие операции шли безо всяких глюков (кроме опять же точек и запятых, которые на ПК идут почему-то обе, но глючно гы )
Номер ответа: 7
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #7
Добавлено: 03.09.06 16:16
С моей точки зрения это то же самое, что и "4" + "5" и уволил бы всё равно
CDbl("4" или (мне так приятней) CType("4", Double) отменили?
А в идеале надо Double.Parse("4". Или, учитывая, что юзер может вместо числа ввести туфту, даже Double.TryParse.
Учиться надо, учиться!
А все эти Val'ы надо было убить сразу... Хотя MS тут понять можно - этим бы еще больше отпугнули юзеров VB6, которые бы за неимением другой альтернативы просто застрелились
Номер ответа: 8
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #8
Добавлено: 03.09.06 16:21
Да пожалуйста, пусть хоть через Винсок парсят эти типы - главное чтобы работало сталбильно и везде одинаково.
п.с. за CType("4", Double) спасибо - чесно грю - не знал, хотя искал её как раз. Double.TryParse - ну это уж лишнее, так как юзер это я и туфту не буду вводить. А вообще как с этим TryParse работать?
Номер ответа: 9
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #9
Добавлено: 03.09.06 16:31
If Double.TryParse(DiscountTextbox.Text, Discount) = False Then
MessageBox.Show("Эй, дебил, научись десятичные дроби писать!"
Return
End if
'юзаем Discount
Номер ответа: 10
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #10
Добавлено: 03.09.06 18:32
В .NET Framework 1.1 поддержки иконок не было - иконки можно было через API вставлять.
В 2.0 появился класс MenuStrip - сильная штука, в т.ч. можно и иконки туда ставить.
Единственно правильный результат который возможен - это 45, и ничего другого.
Все равно что писать:
и ожидать получить "пять"
Кстати, я только что специально проверил - "4" + "5" при запуске на ПК дает "45", как и ожидалось.
Хочешь получать не 45, а 9 - так складывай не строки, а числа, как Павел уже говорил. Приводи к нужному типу и складывай.
Как иначе компилятор узнает, что ты хочешь чтоб при сложении двух строк они складывались как числа?
Номер ответа: 11
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #11
Добавлено: 04.09.06 12:52
мастер, который сконвертирует код VB6 в код VB .NET.
Номер ответа: 12
Автор ответа:
SkyLiner
Вопросов: 0
Ответов: 11
Профиль | | #12
Добавлено: 13.10.06 20:12
Иконок в меню как небыло и нет. А для стиля ИКСПИ нкжен специальный манифест (в интернете его легко можно найти).
Номер ответа: 13
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #13
Добавлено: 14.10.06 00:54
Иконок как таковых нет, но есть свойство Image, которому можно присвоить изображение в любом формате!! Включая прозрачные gif,png.. Если таковых нет, то кто мешает использовать тот же bmp,jpg с указанием прозрачного цвета??? Вплоть до того, что каждому пункту меню можно задать свой фоновый рисунок.. Как по мне, так этих возможностей более, чем достаточно! Причем так же ОЧЕНЬ удобно реализовано хранение всех этих изображений в общем файле ресурса.. И все эти прелести также поддерживаются в полном объеме в контекстном меню..
А это что за новость?? Если речь идет о стандартном стиле ХР то тут ничего не надо вообще!! (во всяком случае в 2005 студии). Все кнопки и контролы выглядят так же как в самой винде. Если же речь идет о поддержки нестандартных стилей.. разного рода украшательств, то тут ничего определенного сказать не могу, так как не пользуюсь таковыми и посему не имею возможности проверить это..