Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Visual Basic для новичков и профессионалов #35 (повторный выпуск)


Информационный Канал Subscribe.Ru

Visual Basic для новичков и профессионалов

Visual Basic для новичков и профессионалов #35

Сегодня в выпуске
>
Новости сайта
>
Новое на форуме
>
Вопросы и ответы
>
Курс обучения для начинающих
>
Компоненты, контролы, исходники
>
Статья выпуска
>
Наши партнеры
Бред автора

Здравствуйте уважаемые подписчики!

Опять таки по многочисленным просьбам изменился дизайн рассылки.

Продолжается работа над новым сайтом на новом домене. Что будет нового? Узнаете в скором времени!

Правила рассылки
1. Вопросы, касающиеся другой сферы программирования, а также сферы ПО - НЕ ПРИНИМАЮТСЯ!
2. Письма с указанием ссылок на какой-либо ресурс или сайт будут отвергнуты, либо ссылкы будут заменены на <РЕКЛАМА> и не будут опубликованы в рассылке!
3. Используйте текстовый формат письма при написании вопроса или ответа.
Новости сайта www.basic.webhost.ru

Нет новостей. Продолжается работа над сайтом.

Вопросы и ответы

Место
Имя
Баллы
1
*Casper*
86
2
HouseBugs
28
3
Андрей (now@...)
24
4
Андрей Е.
18
5
Гарвинев Олег
12

Новые вопросы


74/ Как сделать хороший менеджер закачек с использованием DirectPlay? Желательно исходник [Ответить]
75/ Здравствуйте! Помогите начинающему в программировании VB!
Использую VB встроенный в EXEL. Для постижения сей науки читаю спец литературу, но инфа там очень скудная, или в некотором роде для меня ещё не понятная.
Написал макрос:
Sub SaveAS()
frm5.Show
ChDir "C:\My" FName = Application.GetSaveAsFilename
If FName = False Then Else ActiveWorkbook.SaveAS
FileName:=FName, FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False
End If
End Sub
Нужно: При нажатии созданной Нн-ой кнопки : Проверить создана ли директория, если не создана , вывести форму (создать?, нет?), Если "нет" прекратить выполнение макроса, если "да" создать директорию ( MkDir "C:\My") и продолжить написанное. Заранее благодарен. [Ответить]

76/ podskazhite pozhalusta, kak pravil'nee pristupit' k sozdaniu tablic i kakogo roda tablica nujna dlya vvoda, obrabotki i rascheta dannix, na VB.net. mne bazu sozdavat' ne nado. Zaranee spasibo [Ответить]
Для тех, кто не может прочитать (от автора рассылки):
Подскажите пожалуйста, как правильнее приступить к созданию таблиц и какого рода таблица нужна для ввода, обработки и расчета данных, на VB.NET. Мне базу создавать не надо. Заранее спасибо.
77/ Как в текстовом поле вывести знак " (кавычки) [Ответить]
Вопросы без ответа

28/ Как вывести все иконки ассоциативных файлов (как в проводнике) [Ответить]
40/ Здраствуйте ! У меня к вам будет один вопрос. Можно ли на ВБ (у меня установлена 6-я версия программы) сделать поиск подключенных компьютеров по локальной сети.Мне нужно узнать их ай-пи адрес и желательно имя компьютера. Я начинающий программист, если можно, обьясните более подробно. Заранее спасибо [Ответить]
41/ А возможноли сделать на VB трех мерный кубик-рубик. Похожий на этот "http://conus-video.zp.ua/img/rubik.zip". Или хотя бы подскажите, где можно взять исходник к такой игре. [Ответить]
43/ Здравствуйте уважаемые програмисты. Смотрю я на это дело, сайт развивается, рассылка стала хорошей. То есть объемной. Я конечно не надеялся получать тут ответы, но смотрю, что после прекращения рассылки Visual Basic: "новости сайтов, советы, примеры кодов". Вижу что часть писателей теперб здесь. У меня к вам такой вопрос. Видел программу типа Чатер Бокс. Смысл простой я звоню со своего компа на другой имеющий эту же прогу. Она соединяется. Вся суть в том что можно переслать файлы или написать текст. Если кто знает как это сделать на VB. Как открыть порт и набрать номер я знаю. А дальше? [Ответить]
49/ Тут такая проблема... Я собрался изучить базы данных, а вот хелп не могу найти, в частности по MSH FlexGrid, если у вас есть хелп по контролам вы бы не смогли бы мне прислать или подсказать как с ним работать. Зарание благодарю!!!! [Ответить]
54/ Как сделать турнирную таблицу (Как в футболе). Самое главное - это сортировка. Заранее спасибо! [Ответить]
57/ Здравствуйте. Уважаемы програмисты, я не программирую на VB. Недавно появилась задачка, которую я предполагаю как можно решить, но не знаю как реализовать. Исходные данные. Есть сетевой принтер с возможностью двухсторонней печати. Пользователи работают с MS Word. На печать посылаются задания из n листов. При этом, листы с 1 по n-2 должны быть напечатаны с одной стороны. Лист n-1 является последним листом документа, а лист n оборотной стороной листа n-1. Предпологаемое решение. По нажатию кнопки "Печать1" из переменной "Количество листов в документе" извлекается заначение n и если n<2 выводится на экран сообщение "Печать с оборотом не возможна" и производится выход из программы, если n>2 вызывается на исполнение функция печати, которой в параметрах передается: 1. Печатать листы с 1 по n-2; 2. Печатать без оборота. Вызывается на исполнение функция печати, которой в параметрах передается: 1. Печатать листы n-1, n; 2. Печатать с оборотом. При этом желательно сделать так, чтобы между вызовами функций печати в очередь печати не проскочило какое-нибудь задание. Естественно, все это оформить в виде макроса. Прошу Вас помочь мне. [Ответить]
59/
Доброго здоровья всем читателям рассылки! У меня есть один вопрос. Имеются два BMP рисунка разного размера, необходимо наложить на рисунок большего размера рисунок меньшего размера строго по заданным координатам, сохранить полученный рисунок. Буду благодарен за любые мысли. [Ответить]

60/ Здравствуйте уважаемые программисты! Может кто-нибудь знает,как работать с модемом в VB. Хотя бы номер набирать. Киньте исходничок на мыло, кому не лень. Спасёте меня по-крупному! perekladov_vova@mail.ru [Ответить]
62/ Здравствуйте уважаемуе программисты. Подскажите принцип работы с объектом phone. Вопрос жизни и смерти. [Ответить]
63/ Здравствуйте! Как сделать столбец для таблицы с помощью VB который будет показывать номера кварталов с min зарплатой(в таблице 4 квартала). Другой столбец - Динамика изменения средней зарплаты по кварталам (рост, падение, колебание, постоянно)\ нужно найти среднее знаение среди записей каждого отдела и чтобы написал динамику изменени, то что напискано в скобках, одно слово. [Ответить]
67/ Здравствуйте! У меня к Вам два вопроса по VBA.
1. Мне часто приходится выполнять расчеты в Excel по формулам. Каким образом можно организовать вычисление в цикле так, чтобы после каждого следующего обращения формулы к ячейке X ее содержимое изменялось бы с определенным шагом?
2. При поиске в таблице базы данных какого-либо значения я пользуюсь формулами "ВПР" или "ГПР". Как можно сделать, чтобы при нахождении приближенного значения функция возвращала наименьшее из наибольших значений в строке или столбце списка, а не наибольшее из наименьших, как заложено в формулах?
Заранее благодарю. Александр. [Ответить]

68/ Как поменять рисунок рабочего стола? SystemParametersInfo работает только с bmp файлами, а как применить jpg или gif? [Ответить]
70/ Здраствуйте, подскажите пожалуйсто как наложить на большую картинку меньшую по определенным координатам, при этом результат сохранить в графический файл (bmp). [Ответить]
71/ Например есть соединение с интернетом и локальной сетью - как можно средствами VB6 узнать кол-во принятых и отправленых байт? Меня интересует конкректный пример, но можно хоть что-нибудь - если это вообще возможно. Заранее благодарю. [Ответить]
73/ Как узнать свой Ip адрес? [Ответить]
Полученные ответы на вопросы рассылки


54/ Как сделать турнирную таблицу (Как в футболе). Самое главное - это сортировка. Заранее спасибо! [Ответить]

Отвечает: Lora

Работаем в Excel. Создать таблицу, внести рез-ты
Подсчитать набранные участником или командой очки (значок автосуммы или функция СУММ )
Далее надо эти рез-ты проранжировать.
Но, прежде всего надо выявить, есть ли в полученных данных одинаковые результаты.
Для этого скопируем значения столбца ОЧКИ в буфер и за пределами таблицы в любую свободнцю ячейку вставим эти данные "КАК ЗНАЧЕНИЯ".
Теперь сортируем эти данные по убыванию. Выделяем цветами разных заливок одинаковые реультаты. Из опыта : заливкой выделять в стрессовых условиях подведения итогов соревнования (всё надо делать быстро !) гораздо надежнее, чем цветом шрифта.
Далее возвращаемся в таблицу, к верхней пустой ячейке столбца МЕСТО, используем функцию РАНГ для определения места первого результата столбца ОЧКИ. При этом, указывая диапазон в окне Мастера функций, делаем ссылку АБСОЛЮТНОЙ, чтобы диапазон ячеек не менялся при копировании. КОПИРУЕМ эту формулу в нижележащие ячейки столбца МЕСТО.
Что получим ? Проранжированные резельтаты. Что и требовалось. Но, ТЕПЕРЬ БУДЬТЕ ВНИМАТЕЛЬНЫ ....
РС (машина!) при наличии таковых, присвоит одинаковым результатам одинаковые места (ранги), а в спорте, как правило, одинаковые места не присуждаются (хотя, бывали и такие случаи .....)
Например, РС присвоит два третьих места, а следующему по величине результату присвоит 5, те "пропустит" один ранговый номер.
Теперь надо обязательно прочитать в "Положении о соревнованиях" как присваиваются места при равенстве результатов (важно !)
Чаще всего при равенстве мест места либо делятся между участниками, либо более высокое место присуждается участнику, имеющему бОльшее количество побед на чужом игровом поле. И, теперь, оприраясь на "Положение", выставить вручную "правильные места" для одинаковых результатах, не забывая снимать заливку для тех ячеек вспомогательного столбца , результатам которых места. уже выставлены По оончании работы удалим вспомогательнвй столбец. Не забудьте проверить свою работу
Надеюсь, что понятно. Удачи в работе


Оценка за ответ: 2 Примечание автора: Все описанное не относится к программированию.
59/ Доброго здоровья всем читателям рассылки! У меня есть один вопрос. Имеются два BMP рисунка разного размера, необходимо наложить на рисунок большего размера рисунок меньшего размера строго по заданным координатам, сохранить полученный рисунок. Буду благодарен за любые мысли. [Ответить]

Отвечает: Lora

Нет проблем!!! Работа проходит в 2 этапа.
Пишу, как сделать эту работу в Paint. Можно и в других, юолее продвинутых программах, типа Photoshop, но, беру ориентир на "массовую", имеющемся в каждом компе
1. Открываете при помощи Paint МАЛЕНЬКИЙ рисунок. Выделяем всё, копируем. Или - при необходимости выделяем только часть рисунка - имплантанта (назовем его так) и копируем в буфер. Закрыть маленький рисунок
2. Открываем "принимающий" , БОЛЬШОЙ рисунок. Идем в меню ПРАВКА. Команда ВСТАВИТЬ. На большом рисунке в левом верхнем углу появиться изображение малого, обведенного рамкой выделения и при наведении на него, курсор имеет вид равнонаправленной стрелки (маркер перемещения). Теперь подхватываем мышью имплантант и перетаскиваем его в нужное место большого рисунка. Работа окончена. "Сохранить как ....." - дать новому файлу новое имя. Вдруг Вам еще понадобятся исходные файлы в первозданном виде.
Понятно? Тогда за работу


Оценка за ответ: 2 Примечание автора: Все описанное не относится к программированию.
59/ Здравствуйте уважаемые программисты! Может кто-нибудь знает,как работать с модемом в VB. Хотя бы номер набирать. Киньте исходничок на мыло, кому не лень. Спасёте меня по-крупному! perekladov_vova@mail.ru [Ответить]

Отвечает: Вячеслав

Привет
Напиши мне slavaprof@bk.ru вышлю полный исходник звонилки


Оценка за ответ: 3
64/ Как зафиксировать утопленную кнопку на форме средствами VB? [Ответить]

Отвечает: vadim

С помощью SendMessage и константы BM_SETSTATE.
Пример:
Private Const BM_SETSTATE = &HF3
Private Const BM_GETSTATE = &HF2
Private Declare Function SendMessageBynum Lib "user32" Alias
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam
As Long, ByVal lParam As Long) As Long
Dim t As Long
Private Sub Command1_Click()
t = Not (t)
‘Если t = -1 – оставить нажатой
‘Если t = 0 – отжать
Call SendMessageBynum(Command1.hwnd, BM_SETSTATE, t, 0)
End Sub


Оценка за ответ: 4 (скачать пример программы)

Отвечает: Копылов Сергей

Создать CheckBox и свойство Style установить в Graphical


Оценка за ответ: 4
69/ Добрый день уважаемые программисты!
Подскажите, какой функцией конвертировать цвет, выдаваемый оператором POINT в вид RGB. Заранее спасибо! [Ответить]

Отвечает: vadim

Конвертирование цвета, выдаваемого оператором POINT, в RGB делается
элементарно! Один из вариантов тупо скопировать «Long» в 4 переменные
«Byte» (верней в структуру) с помощью API-функции CopyMemory. Можно
пойти и другим путём: целочисленно делить ваш POINT на 2^16, 2^8;
остатки от деления … Пример 1:
‘T_rgbR - textbox
‘T_rgbG - textbox
‘T_rgbB - textbox
Private Sub Command1_Click()
Dim pColor As Long
pColor = Val(T_Color.Text)
T_rgbB.Text = (pColor \ (2 ^ 16))
pColor = (pColor Mod (2 ^ 16))
T_rgbG.Text = (pColor \ 2 ^ 8)
pColor = (pColor Mod 2 ^ 8)
T_rgbR.Text = pColor
End Sub

Но всё же сделать такую фичу с CopyMemory мне удобнее и проще. Пример
2:
Private Type RGBTYPE
tR As Byte
tG As Byte
tB As Byte
zReserved As Byte
End Type
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory"
(Destination As Any, Source As Long, ByVal Length As Long)
Private Sub Command1_Click()
Dim fColor As Long
Dim st_RGBTYPE As RGBTYPE
fColor = Val(T_Color.Text)
CopyMemory st_RGBTYPE, fColor, 4
T_rgbR.Text = st_RGBTYPE.tR
T_rgbG.Text = st_RGBTYPE.tG
T_rgbB.Text = st_RGBTYPE.tB
End Sub

После этого у вас может возникнуть вопрос: “А КАК КОНВЕРТИРОВАТЬ POINT
в HLS?” – с помощью ColorRGBToHLS(fColor, st_H, st_L, st_S)


Оценка за ответ: 5 (скачать пример программы)

Отвечает: OverKill

Dim Pixel as Long – здесь храниться значение POINT
R, G, B – тип Integer, здесь хранятся значения Красного, Зеленого и Синего составляющих соответственно.
picImage – PictureBox, здесь храниться изображение.

Pixel = picImage.Point(x, y)
R = Pixel Mod 256
G = ((Pixel And &HFF00) / 256) Mod 256
B = (Pixel And &HFF0000) / 65536

Вроде всё!


Оценка за ответ: 5
72/ Как можно средствами VB прописать программу в автозагрузку, и как можно будет оттуда её убрать? [Ответить]

Отвечает: Андрей

Через реестр в ключе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run.


Оценка за ответ: 3

Отвечает: OverKill

Следующий код удобно использовать где-нибудь в «Настройках программы»:

//////Код модуля/////////
Public RunAtStartUp As Long
/////////////////////////////////

Необходимо создать форму с кнопкой «применить» (cmdApply)

//////////////////////////Код формы/////////////////////////
Private Sub cmdApply_Click()
If RunAtStartUp = 1 Then
Dim Result As Long
Dim RetVal As Long
Dim sPath As String
If Right(App.Path, 1) = "\" Then
sPath = App.Path & App.EXEName & ".exe"
Else
sPath = App.Path & "\" & App.EXEName & ".exe"
End If
RetVal = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run", 0, KEY_ALL_ACCESS, Result)
'Запись в автозагрузку
RegSetValueEx Result, App.Title, 0, REG_SZ, ByVal sPath, Len(sPath)
'закрытие ключа
RegCloseKey Result
Else
Dim Resultat As Long
RetVal = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run", 0, KEY_ALL_ACCESS, Resultat)
'Удаление параметра
RegDeleteValue Resultat, App.Title
RegCloseKey Resultat
End If
///////////////////////////////////////////////////////////////

Далее можно установить на форму CheckBox, например «chkStartAtStartUp» и написать следующий код:

Private Sub chkStartAtStartUp_Click()
RunAtStartUp = chkStartAtStartUp
End Sub

Вроде всё.


Оценка за ответ: 5
73/ Как узнать свой Ip адрес? [Ответить]

Отвечает: Lora

Открыть Outlook. Сервис - Учетные записи. На вкладке ПОЧТА справа есть кнопка СВОЙСТВА. В диалоговом окне "Свойства" на вкладке СЕРЕВЕРЫ в окнах "входящая" и "исходящая" почта указан IP-адрес


Оценка за ответ: 2 Примечание автора: Все описанное не относится к программированию.
Обучение для новичков

На данный моменд раздел приостановлен в связи с переездом на другой домен. Приносим свои извинения.

Задать вопрос>>>

Компоненты, контролы, исходники

Буква (M) означает, что данный архив содержит только модуль.

Примеры и модули
Ссылка
Описание
Ссылка
Описание
about.zip Стандартное окно About в VB (4.2KB) OpenCD.zip Управление CD (M) (1KB)
anigif.zip Анимация в VB (5KB) progressbar.zip Progress Bar в трее (4KB)
appprioritet.zip Устанавливаем приоритет в приложении (1.8KB) randomform.zip Разные формы (M) (2KB)
biosinfo.zip Просматривает ифрормацию о БИОСе (5.5KB) RandomForms.zip Разные формы (1KB)
cd-rom.zip Работа с CD-ROM (1.6KB) Reestr.zip Работа с реестром (2.5KB)
commondialog.zip Диалог открытия файла без контрола (1.9KB) registry.zip Регистрация в реестре (9.5KB)
coolvbmenu.zip Клевое меню в VB (14KB) resource.zip Просмоторщик ресурсов проги (46.6KB)
disableendtasks.zip Запрет нажатия Ctrl+Alt+Del (1.8KB) RU_EN.zip Переключение языка программно (M) (1KB)
File_size.zip Определяет размер файла (M) (1KB) sharp.zip Пример часиков (2.1KB)
fso.zip Работа с FSO (File System Object) (101KB) ShutDown.zip Шатдаун компьютера (M) (1KB)
HDD_info.zip Информация о диске (M) (1KB) sort.zip Сортировка массива за 0.2 секунды! (M) (1KB)
hddserial.zip Серийный номер диска (24KB) Standart.zip Стандартные диалоги и окна (M) (1KB)
Hibernate.zip Выключение и перезагрузка ПК (M) (1KB) systrayicon.zip Иконка в трее (21KB)
lines2000.zip Пример игры Lines (74KB) transparent.zip Прозрачность окна (M) (1KB)
manifest.zip ХР стиль в аппликухе (2.5KB) Tray_icon2.zip Икнока в трее 2 (M) (1KB)
mdlMain.zip ХР стиль в приложении (M) (1KB) Tray_icon.zip Иконка в трее (M) (1KB)
winwordorfo.zip Проверка орфографии с помощью Word'а (1.9KB)    

Компоненты:

Ссылка
Описание
Ссылка
Описание
Кнопка с текстовым полем Двухцветный прогресс бар
Электронные часы Бегущая строка
Компонент редактирования даты Иконка в трее
Кнопка в стиле XP, Office, и др. TextBox вмещающий более 65КБ текста
Прогресс Бар в классическом стиле Вертикальный лейбл
Кнопка Плейер
Компонент для создания гиперссылок Программное создание иконки NEW!!!
Статья

Есть вопросы относительно статьи, задавайте!

Выравнивание меню

Добавьте на форму CommandButton и Menu
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Const MIIM_TYPE = &H10
Const MFT_RIGHTJUSTIFY = &H4000
Const MFT_STRING = &H0&
Private Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal b As Boolean, lpMenuItemInfo As MENUITEMINFO) As Long
Private Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, lpcMenuItemInfo As MENUITEMINFO) As Long
Private Type MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wID As Long
hSubMenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As String
cch As Long
End Type
Private Sub Command1_Click()
Dim MnuInfo As MENUITEMINFO
mnuH& = GetMenu(Me.hwnd)
MnuInfo.cbSize = Len(MnuInfo)
MnuInfo.fMask = MIIM_TYPE
'If you want to align to right only few menus, and leave the rest in left side,
'Replace the '0' below and the '0' two lines above the 'End Sub' with the number
'of menus you want to leave in the left side.
myTemp& = GetMenuItemInfo(mnuH&, 0, True, MnuInfo)
MnuInfo.fType = MFT_RIGHTJUSTIFY Or MFT_STRING
'Replace all 'MenuCaption' below with the caption of the first menu from left.
MnuInfo.cch = Len("MenuCaption")
MnuInfo.dwTypeData = "MenuCaption"
MnuInfo.cbSize = Len(MnuInfo)
myTemp& = SetMenuItemInfo(mnuH&, 0, True, MnuInfo)
myTemp& = DrawMenuBar(Me.hwnd)
End Sub

Дружественные сайты

http://infomania2004.webhost.ru. Этот сайт создан для того, чтобы вы могли получить интересующую вас информацию с минимальными затратами сил и времени. Если вы не нашли здесь нужной информации, оставьте заявку..."

Все о Динамо - www.DinamoMania.ru На этом сайте вы найдете все новости и интервью ВСЕХ видов спорта Динамо. Также на сайте есть таблицы всех видов спорта. Видео и Фото материалы. И все это на одном сайте - www.DinamoMania.ru Это первый и единственный сайт, который освещает все виды одного клуба.

Юмор

Фирмой Microsoft объявлен конкурс для тестирования последней версии Windows.
Требования: блондинки.

***

Если нельзя грязно выругаться,
остается только чисто материться.

Наши партнеры
Рассылки Subscribe.Ru
Visual Basic для новичков и профессионалов
Программирование на Delphi

Хотите стать нашим партнером? Пишите сюда.


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.vbforbeginprof
Отписаться
Вспомнить пароль

В избранное