VBNet
VBMania
Голосование: Голосования сайта VBNet.Ru. Результаты голосований передаются на сайт. Проследите, что есть соединение с интернетом. Ссылки: |
Господа!!! читайте MSDN!!! Несколько слов от автора:
Новый выпуск..
Читайте! Содержание выпуска
Как в VB при нажатии Enter, перевести фокус на TextBox? Вопрос: Скажите как в VB cделать так, чтобы при нажатии на клавишу Enter, курсор переходил из одного TextBox в другой? Ответ: Пусть первый TextBox с именем Text1, а второй - Text2. Пишем такой код: Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then Text2.SetFocus End Sub Stasila наверх Как в VBA открыть текстовый файл и отобразить его в TextBox'е? Вопрос: Как в VBA открыть нужный текстовой файл и содержимое файла отобразить в TextBox? Ответ: Dim iFileNo As Integer Dim sFileName As String sFileName = "C:\cofig.sys" 'помещаешь сюда имя файла iFileNo = FreeFile Open sFileName For Input As fileno Text1.Text = Input(LOF(fileno), fileno) Close fileno В TextBox не может помещаться больше 64 К. Для больших файлов надо использовать RichTextBox, к тому же он позволяет форматировать, выделять, подчеркивать, раскаршивать, но, естественно, больше весит. Дмитрий Данелия наверх Как сформировать popup menu? Вопрос: Как сформировать popup menu? Ответ: Делаешь элемент меню верхнего уровня MyPopupMenu - снимаешь галочку с опции Visible (оно должно быть невидимым). В этом, невидимом пункте делаешь свое меню, какое тебе нужно. Например, надо вызвать меню по клику правой кнопкой мыши на форме: Private Sub Form1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbRightButton Then PopupMenu MyPopupMenu End If End Sub Дмитрий Данелия наверх Как учтановить через ADO значение поля Identity (счётчик) в БД? Вопрос: Кто знает как вставить новую строку в ADODB.RecordSet, открытый как adCmdTableDirect, если там (в table) есть поле IDENTITY (счетчик) и в него надо вставить свое значение. При вызове .addnew и присвоении этому полю значения - он ругается. Ответ: Разве можно что-то вставить в поле типа счётчик? Это поле должно формироваться автоматически. ADO его само поставит. И вообще, как Вы можете сами его ставить, если оно должно быть уникально для каждой записи? Если хотите сами делать счетчик, то не просите об этом ADO, сделайте этому полю тип, например, Long, и сами им занимайтесь. Шатрыкин Иван наверх Как скопировать текст в буфер обмена? Вопрос: Я работаю над созданием программы на VB 6.0. Как сделать так, чтобы текст из текстового файла копировался в буфер обмена? Ответ: Есть такой объект, называется Clipboard. Есть методы SetText и GetText, ну, и конечно же Clear. Открой свой файл как текстовый, можешь читать хоть построчно, слей в переменную, желательно строковую. А потом вызвать метод SetText объекта Clipboard. Dim sFileName As String, sText As String Dim iFileNo As Integer Private Sub Form_Load() sFileName = "c:\config.sys" iFileNo = FreeFile Open sFileName For Input As iFileNo sText = Input(LOF(iFileNo), iFileNo) Close iFileNo Clipboard.SetText sText End Sub ' Получить текст из Буфера Обмена Private Sub Form_Click() Text1.Text = Clipboard.GetText End Sub Sergey Y. Tkachev, Дмитрий Данелия наверх Вопрос/Ответ Здесь Вы можете задать вопрос, или ответить на уже имеющиеся вопросы. Вопросы:Автор вопроса: Space Ответ ожидается по этому адресу Как сшить два файла в один, и обращаться из одного к другому. Например: рисунок и мой проект, при этом если на кнопке кликнуть, то рисунок покажется в image. Или wav файл, сшитый с моей прогой и если кликнуть "играть", то будет играть этот файл! Автор вопроса: .::neo::. Ответ ожидается по этому адресу Вопрос по .NET: Как поменять цвет текста в заголовке формы...? Автор вопроса: Владимир Ответ ожидается по этому адресу Подскажите пожалуйста почему в RichTextBox при вставке *.bmp файла параллельно запускается и сам файл в Paint. Код для вставки: Private Sub Command1_Click() a = RichTextBox1.SelStart RichTextBox1.OLEObjects.Add , , "\\4\add_pictures_to_richtextbox\smile.bmp" RichTextBox1.SelStart = a + 1 RichTextBox1.SetFocus End Sub Private Sub Form_Load() RichTextBox1.OLEObjects.Clear End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) RichTextBox1.OLEObjects.Clear End Sub Автор вопроса: Alex Ответ ожидается по этому адресу Подскажите, каким образом можно произвести отбор файлов по маске *.doc и *.xls с условие контекстного поиска. Т.е. мне нужно, указав кусок текста, найти файлы, содержащие его, и вывести все найденные файлы в ListBox. Ответы: Вопрос: Как мне можно определить версию Bios? Ответ: Автор ответа: •Creator• Как узнать версию не знаю, а вот дату пожалуйста... Type BIOS_DATE s As String * 8 End Type Declare Sub CopyMemory Lib "Kernel32" Alias "RtlMoveMemory" _ (pDest As Any, pSource As Any, ByVal ByteLen As Long) Public Function BIOS() As Long Dim sDB As BIOS_DATE CopyMemory sDB, ByVal &HFFFF5, 8& BIOS = DateSerial(Mid(sDB.s, 7, 2), Mid(sDB.s, 1, 2), Mid(sDB.s, 4, 2)) End Function Вопрос: В VB6 создаю объект EXCEL, добавляю лист, вношу данные, выставляю эти данные жирным шрифтом но у меня не получается выставить центровкуэтих данных в ячейке по горизонтале. При попытке выставить свойство myExcelObject.Sheets("Лист1").Range("A1:E1").HorizontalAlignment = xlCenter, или myExcelObject.Sheets("Лист1").Cells(1, 1).HorizontalAlignment = xlCenter выдается сообщение об ошибке Run-time error '1004': Нельзя установить свойство HorizontalAlignment класса Range Что не так? Помогите, пожалуйста. Ответ: Автор ответа: bagira1975 Скорее всего используешь не те константы. В VBA для горизонтального выравнивания есть констата xlHAlignCenter, скорее всего в VB аналагично, правда сам не проверял. Вопрос: Как реализовать выполнение команд DOS (dir, rename и др.)? Ответ: Автор ответа: Пащенко А. Для выполнения комант DOS необходимо запустить "command.com" (в NT-системах лучше cmd.exe) с параметром - "/c xxx", где xxx - команда DOS. Например: Shell "cmd /c pause" Ответ: Автор ответа: Веселов Даниил Анатольевич Shell "command.com DOS-комманда" Например: Shell "command.com dir /?" Вопрос: Как сделать так чтобы при загрузки формы проигрывался звук? Если можно намыльте исходничек по проще. Ответ: Автор ответа: Веселов Даниил Анатольевич Есть много способов, я опишу 3. 1. Можно поместить на форму объект OLE. Появится окно Вставка объедка нада выбрать создать из файла и прикрепить к нему звуковой фаил, а в коде прописать:) Private Sub Form_Load() OLE1.DoVerb End Sub 2. Можно проще... Private Sub Form_Load() Shell "SNDREC32.EXE /play /close путь и имя зв. файла" End Sub Например :-0 Private Sub Form_Load() Shell"SNDREC32.EXE /play c:\windows\media\chimes.wav" End Sub Но пункты 1 и 2 съедают очень много памяти поэтому я использую... 3. Здесь используется WinApi функция. Из вышесказого следует нижеследующие... Короче надо создать модуль и написать Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long Апосля надо в коде формы написать Private Sub Form_Load() Dim cooller As Long cooller = sndPlaySound("путь и имя файла", 1) End Sub Вопрос: Я уже задавал вопрос :-( см. от Andr: В подпрограмме есть N-подпрограмм (для GOSUB). ... :-) Но то ли не понятно написал, то ли это не реально для возможностей VB. Хотя, вроде-бы-как и WinAPI и VarPtr() и коллекции объектов можно использовать. Есть даже слух, что в VB есть функция вставки кода на ASM ;-) Попытаюсь прояснить свой вопрос на примере двух приблизительных подпрограмм на VB. На Vijual Kod выглядит просто: Kod=>eBx -eBx=Kod =>[ebx] -переход по адресу в eBx ------- два примерных варианта на VB (нереальных) ---- Public Function kod_ObrabotkaKoda(Kod0_255&)as long Dim S$ Const cS$="Metka" S=cS+Ttrim$(Str$(Kod0_255))'Создать имя метки GoSub к имени метки находящейся в строковой переменной S exit Function '==== Metka1: код подрограммы return Metka2: код подрограммы return Metka3: код подрограммы return ..... Metka255: код подрограммы return End function ---- или типа этого (по адресу метки) ----- Public Function kod_ObrabotkaKoda(Kod0_255&)as long Dim i& Static masAdr$(255),F& if F=0 then F=1 For i=0 to 255 'естественно, что функции adress() не существует 'а VarPtr() здесь "выходной" masAdr(i)=adress("Metka"+Ttrim$(Str$(i)))'получить адрес метки next i endif GoSub к метке по адресу в masAdr(Kod0_255) ' exit Function '==== Metka0: код подрограммы return Metka1: код подрограммы return Metka2: код подрограммы return Metka3: код подрограммы return ...................... Metka255: код подрограммы return End function Может кто из профессионалов подскажет, как решить эту проблемму. P.S. А может использовать отдельные подпрограммы - для них можно получить адрес... Думаю, интересно будет не мне одному... Ответ: Автор ответа: Артем Кривокрисенко Че-то ты сильно намудрил... Может, тебе поможет такой синтаксис: On i Goto Metka1, Metka2, Metka3, ..., Metka 255 Где i - это номер нужной метки из списка (начиная с 1). Например, чтоб пойти к метке 4 напиши: i=4 On i Goto Metka1, Metka2, Metka3, ..., Metka 255 и все будет путем. Ответ: Автор ответа: Alexander Ну, хорошо. Уговорили на тему. Во-первых, в VB6 есть средства для получения адреса и обращения функции по адресу (MSDN: "Passing Function Pointers to DLL Procedures and Type Libraries"). Это функция, оператор и ключевое слово AddressOf. В VB они широко используются обычно для реализации "обратных вызовов". Это даёт возможность теоретически реализовать ваш подход. Конечно, адреса переходов вычислите заранее. Во-вторых, конечно учесть, высокое быстродействие инструкции Call по сравнению Goto (Pentium оптимизирован под Call и эта инструкция работает быстрее Goto, как это ни парадоксально). В третьих, очень хитрые вещи делает Windows на процедуре связывания COM-объектов, что положено в основу фантастического быстродействия VB NET по сравнению с VB6. Советую познакомиться поближе. Вопрос: Как определить размер любой папки и диска? Ответ: Автор ответа: Alexander Прочесть пример и справку в MSDN (об это пишется всегда в начале этой рассылки) об объектах FSO, например. Вопрос: Как разрешить использование .mdb Файла из программы VB и запретить доступ в него другими способами? Ответ: Автор ответа: Sergey Поставь пароль на базу. И указывай его в строке подключения. Ответ: Автор ответа: Alexander Прочесть соответствующую справку в Access. Там всё понятно. И о группах, и об ADMIN... Можете заполнить эту форму, либо отослать вопрос СЮДА Форма для добавления нового вопроса в этот раздел. Информация отсылается по E-mail владельцу сайта. |
Выпуск подготовили: |
Сурменок Павел |