Light-electric.com

IT Журнал
11 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Программирование на vb6

Основы среды программирования Microsoft Visual Basic 6.0

В данном материале рассмотрены основы программирования на языке Visual Basic, а конкретней в среде программирования Microsoft Visual Basic 6.0. Данная среда программирования и язык Visual Basic является одним из самых легких языков для начинающих программистов. А почему? В этой статье мы с Вами и попробуем разобраться.

Теория по Visual Basic

Вообще цель программирования — это написание команд для компьютера, которые смогут показать ему, что нужно сделать, например, напечатать отчет, подсчитать что-нибудь или просто развеселить Вас.

С самого начало заведено, что программирование в основном служит для написания команд двух типов. Команды первого типа используются для отображения пользовательского интерфейса, а команды второго типа — для самих действий, например для перемножения или открытия файла.

Для большинства людей изучение программирования доставляет определенные трудности. Первая и основная трудность связана с тем, что языки программирования, например C++ или Assembler, слишком сложны для понимания. Попытка изучить язык Assembler часто сравнима с попыткой человека, владеющего русским или немецким, научиться разговаривать и писать на арабском или японском. Вторая трудность состоит в том, что пока Вы пишите команды для создания пользовательского интерфейса, в конце концов, у Вас не останется сил и времени на написание команд, которые и выполняют конкретные действия.

Чтобы решить обе проблемы, компания Microsoft разработала язык Visual Basic, а точнее среду программирования Microsoft Visual Basic, которая объединила в себе язык программирования BASIC и возможности быстрого создания пользовательского интерфейса простыми способами. В отличие от многих других языков программирования, BASIC был специально разработан для обучения основам программирования начинающих пользователей.

Что касается визуальных возможностей среды Visual Basic, то здесь Вы можете создавать свой пользовательский интерфейс без написания отдельных команд. Иными словами, Вы создаете интерфейс, как будто Вы рисуете себе картинку, без всяких проблем.

Начиная писать любую программу, первым делом необходимо решить, что эта программа должна делать. Когда Вы будете точно знать, что Вы хотите от программы и компьютера, Вы без труда сможете определить, какие команды нужно дать компьютеру, чтобы он в точности выполнил Ваши указания.

Не существует уникального способа написания программы. Теоретически существуют возможность с помощью тысячи способов написать одну и ту же программу. Два программиста могут написать программы, которые будут работать абсолютно одинаково, но при этом они будут состоять из совершенно разных кодов и команд. Поэтому не важно, как написана программа и на каком языке. Важно лишь то, что она работает так, как Вы это запланировали. Visual Basic помогает реализовать идею быстрого создания пользовательского интерфейса простым способом. Пользовательский интерфейс служит двум целям: отображает информацию на экране и принимает от пользователя конкретные команды к действию.

Основы среды программирования

В Visual Basic все элементы интерфейса делятся на две группы: формы и объекты.

Форма — это всего лишь прямоугольное окно, отображаемое на экране. Объекты — представляют собой элементы, которые содержатся в форме и служат для отображения или получения информации от пользователя. Объектом может быть текст, кнопка, флажок, опции и т.д.

После того как Вы создали форму и разместили в ней нужные объекты, эту форму и ее объекты нужно подогнать под конкретную программу. С точки зрения Visual Basic, каждый элемент интерфейса имеет набор собственных свойств, который определяет, как этот объект выглядит и что делает. В частности, свойствами определяются такие атрибуты объекта, как размер, размещение на экране, цвет и т.д.

Разные элементы имеют разные свойства. Каждый раз, когда Вы рисуете форму или объект, Visual Basic назначает им свойства, установленные по умолчанию.

В отличие от таких языков программирования как C++, Visual Basic избавляет Вас от необходимости использовать коды для создания пользовательского интерфейса, но эти команды все же необходимы для того, чтобы Ваша программа заработала. В мире Visual Basic команды (коды) служат двум целям: делают пользовательский интерфейс рабочим, а также обрабатывают различные данные, с тем, чтобы вернуть пользователю полезный результат.

Даже если Вы с помощью Visual Basic создали какой-то интерфейс, он не будет работать до тех пор, пока программист не напишет ему действия, которые объяснят компьютеру, что нужно делать, если пользователь, скажем, щелкнул на кнопке. Каждый раз, когда пользователь двигает курсором, нажимает кнопку или щелкает кнопкой мыши, т.е. выполняет действие, таковое рассматривается компьютером как команда к действию. Когда такое событие происходит, компьютер обращается к командам BASIC, с тем чтобы они объяснили, как на это нужно реагировать.

Слово Basic, в названии Microsoft Visual Basic 6.0., указывает лишь на то, что синтаксис программ и операторы ссылаются на язык высокого уровня Basic (Beginners Atlpurpose Symbolic Instruction Code). Но если Вы знаете обычный Basic, то очень скоро убедитесь, что Visual Basic заметно от него отличается.

Если Вас интересует вопрос что такое Visual Basic — компилятор или интерпретатор, можно смело сказать: «И тем, и другим». Его нельзя на сто процентов отнести ни к компиляторам, ни к интерпретаторам.

Основным признаком интерпретатора Visual Basic является то, что созданные с помощью него программы выполняются только в среде разработки. Программу можно запустить непосредственно из среды и если в ней есть ошибки, они сразу же распознаются. Все это наблюдается и в Visual Basic, где можно запустить приложение непосредственно в среде программирования. При этом Visual Basic использует технологию Threaded-p-Code, при которой каждая написанная строка кода преобразуется в промежуточный код — Threaded-p-Code. Не путайте это не машинный код, но такой код выполняется быстрее, чем при работе с обычным интерпретатором. Во-первых, Visual Basic сразу же проверяет синтаксис программы и выдает сообщение, если присутствует ошибка. Также можно самим искать эти ошибки.

При этом Visual Basic — не просто интерпретатор, так как это означало бы, что приложения выполняются только в среде Visual Basic. Эта среда программирования предоставляет возможность создавать и исполняемые ЕХЕ-файлы, поэтому она относится и к компиляторам.

Visual Basic нельзя назвать чистым компилятором, так как в отличие, например, от Visual C++, Visual Basic не создает исполняемый файл сразу же при запуске из среды разработки. Для создания такого файла необходимо сделать это явно (команда FileMake ***.EXE). Начиная с пятой версии, Visual Basic обладает так называемым «Native Compiler», т.е. компилятором, который может создавать машинный код. Таким образом, Visual Basic объединяет в себе возможности, как интерпретатора, так и компилятора. И это имеет больше преимуществ, чем недостатков.

Теперь давайте поближе познакомимся со средой программирования Microsoft Visual Basic. При открытие самой среды программирования у Вас появляется окно «Новый проект», в котором и нужно выбрать какой проект мы будим создавать, для начала мы создадим простой проект, а точнее стандартный, «Standard EXE» это — стандартное выполняемое приложение. В дальнейшем, когда Вы уже научитесь работать в этой среде можете пробовать создавать и другие проекты, например ActiveX DLL — динамическая библиотека ActiveX.

После того как Вы нажали создать (открыть) новый проект, у Вас появится сама среда программирования Visual Basic, а точнее форма, но пока в ней ничего нет, и она ничего делать не умеет. Для любопытства можете нажать команду меню run->start (запустить) или просто выбрать в быстром меню кнопку «старт», у Вас запустится программа, но как я уже сказал, она ничего не делает, это просто пустая форма. Закройте это окошко и давайте наполним нашу программу пользовательским интерфейсом и программным кодом.

Пример программы на VB

Для начала мы с Вами сделаем простенькую программу.

Поместите на форму следующие объекты: 2 кнопки CommandButton (Кнопка управления) и одно текстовое поле TextBox (Текстовое поле). Они расположены слева и называются «Кнопки панели элементов управления». Теперь когда у Вас они расположены на форме, можете, как угодно их поместить, растянуть, и даже задать какие-нибудь свойства, которые расположены справа. Мы с Вами зададим всего лишь их название, для этого выделите кнопку Command1 (просто нажав на нее) и с права в окне свойств найдите поле Caption и задайте название этой кнопки (измените Command1 например на «Выполнить»). Теперь выделим Command2 и зададим ей название «Выход».
Теперь, когда у нас есть объекты на форме, давайте зададим им действия, которые они должны выполнять. Щелкните 2 раза по кнопки Command1 (или как у нас уже «Выполнить») и у Вас откроется окно кода где написано:

Вы напишите между этими строками вот что, и должно получиться вот так:

Здесь мы задали, что при нажатие этой кнопки в текстовом поле будет появляться эта надпись.
Можете закрыть по крестику окно кода, и щелкнуть 2 раза по кнопке Command2 (у нас «Выход»), появляется то же самое окно, но уже готовое, для того чтобы задать действие для второй кнопки пишем вот что:

Мы здесь написали команду END, которая обозначает, что программа заканчивает свою работу.

Все можете запустить Вашу первую программу и попробовать, как она работает, но это конечно все только начало т.к. на Visual Basic можно написать такие серьезные программы которые не уступят таким программам, которые написаны, например, на языке C++.

Надеюсь, Вы теперь понимаете, почему этот язык является одним из самых легких (если не самым легкий) языков программирования. А начинать с него или не с него, то это только Ваш выбор.

Все, удачи в освоение Visual Basic, начинающим рекомендую начать свой путь программиста именно с этого языка.

Урок 3. Создание проекта в Visual Basic.net

Урок из серии «Программирование на Bisual Basic.NET для школьников».

В этом уроке мы создадим наш первый проект под названием «Hello World» .

Этот проект после щелчка на кнопке ОК выводит в поле надписи приветствие: «Hello, World» («Здравствуй, мир!»).

На этом несложном примере мы познакомимся со всеми этапами создания проекта в среде программирования Visual basic.NET, научимся их запускать.

Справочная информация

Для проекта, который мы задумали, необходимо всего два элемента управления: Label (Надпись) и Button (Кнопка).

Элемент управления Label (Надпись) отображает данные, которые нельзя изменить в процессе выполнения проекта, используется для вывода различных надписей, располагаемых рядом с другими объектами, нуждающимися в пояснениях.

Основные свойства надписи

Событие по умолчанию — Click (щелчок по надписи).

Элемент управления Кнопка (Button) используется, когда пользователю нужно получить простейший отклик. Нажимая на кнопку, пользователь просит программу немедленно выполнить некоторое действие.
В терминах Visual Basic пользователь, нажимая на кнопку, создает событие, которое требуется обработать в программе.

Читать еще:  Теория программирования c

Основные свойства такие же, как у элемента управления Надпись.

Событие по умолчанию — Click (щелчок по кнопке).

Из прошлого урока вы уже знаете, чтобы создать проект с самого начала, необходимо выполнить на Visual Basic четыре основных шага:

  1. Создание нового проекта
  2. Создание пользовательского интерфейса c помощью элементов управления из Области элементов Visual Studio (Мы создадим два объекта: текстовое поле и кнопку).
  3. Настройка свойства этих элементов управления (Зададим два свойства).
  4. Написание кода программы, который определит, что будет делать наша программа (Введем одну строку кода).

Создание нового проекта

  1. Запустите Visual Studio.
  2. На начальной странице Visual Studio на вкладке Проекты нажмите кнопку Создать проект. Новый проект можно начать и в меню Файл, выбрав в нем Создать — Проект. Появиться диалоговое окно Создать проект.
  3. В этом окне нужно указать тип проекта, который необходимо создать, шаблон, который будет использоваться, имя проекта и расположение файлов.
    • В списке Типы проектов выберите папку Проекты VisualBasic.
    • В окне Шаблоны выберите шаблон Приложение для Windows. Visual Studio настроит среду разработки для программирования Windows-приложения на Visual Basic.NET.
    • В текстовом поле Имя введите Hello_World в качестве имени проекта (в имени проекта лучше не использовать пробелы)
    • В поле Расположение укажите путь для хранения файлов проекта. Выберите свою личную папку. В ней будет создана новая папка Hello_World, и проект «Hello_World» будет сохранен в созданной папке.
    • Чтобы выбрать папку на диске, можно нажать кнопку Обзор.
    • Нажмите ОК. Откроется новый созданный проект и на экране будет отображена пустая графическая форма Windows (обычно имеющая название Form1), на основе которой можно создавать интерфейс для пользователя вашего приложения.
  4. Теперь мы увеличим форму, а затем создадим на ней надпись и кнопку.

Создание пользовательского интерфейса проекта

  1. В Области элементов нажмите на элемент управления Label (Надпись), который находиться на закладке Windows Forms.
  2. Нарисуйте Надпись. В этой программе поле Надпись используется для показа сообщения «Hello, world!» по нажатию на кнопку. Давайте добавим кнопку.
  3. В Области элементов выберите элемент управления Button (Кнопка).
  4. На форме ниже текстового поля нарисуйте кнопку. Форма должна выглядеть примерно так.


    Характеристики любой кнопки (как и всех объектов) можно изменить с помощью настройки свойств или обращения к её объекту в коде программы. В этом проекте мы будем настраивать свойства кнопки с помощью окна Свойства

Настройка свойств объектов

В Visual Basic все объекты, значит текстовое поле и кнопка тоже объекты. Текст в текстовом поле и надпись на кнопке — это свойства этих объектов. Для просмотра свойства объекта и их редактирования используется окно Свойства.

Окно Свойства находится в правой части экрана и отображает свойства выделенного объекта. По умолчанию — это сама форма. Чтобы отобразить свойства того объекта, который вы хотите редактировать, нужно его выделить щелчком.

Совет. Если окно свойств скрыто, вберите в меню Вид команду Окно свойств или нажмите клавишу F4.

Итак, вернемся к нашей задаче.

    В окне Свойства задайте для текстового поля и кнопки приведенные ниже свойства. Значение «пусто» для TextBox1 означает, что вы должны удалить имеющееся значение и оставить свойство пустым. Установки, которые нужно ввести, показаны в кавычках. Сами кавычки вводить не нужно.

Создание программного кода проекта

Для ввода и редактирования операторов в программе на Visual Basic используется Редактор кода. Редактор кода открывается двойным щелчком на объекте.

По условию задачи нам нужно, чтобы после щелчка на кнопке ОК в текстовое поле вывелось сообщение «Hello, World». Для этого напишем программный код в теле процедуры Button1Click() (обработчике события щелчок на кнопке).

  1. В поле формы дважды щелкните на кнопке OK. В центральном окне среды разработки VisualStudio появиться Редактор кода, как показано ниже.
    В окне редактора кода находится текст программы, связанный с текущей графической формой.Те выражения, которые вместе выполняют некоторое действие, обычно группируются в программные конструкции под названием процедуры. Когда процедура связана с конкретным объектом и событием, она называется обработчиком события или процедурой события.Процедуры начинаются с ключевого слова Sub в первой строке и заканчиваются словом End Sub.
  2. Когда кнопка Ok (объект «Button1») была помещена на поле формы, VisualStudio.Net автоматически добавил к коду этой формы процедуру Button1_Click для обработки основного для кнопки события — щелчок на кнопке.Процедура пустая, содержит только заголовок и оператор конца процедуры.В редакторе кода видны и другие строки программы, которые среда VisualStudio добавила автоматически. Эти операторы находятся под общим заголовком «Код, автоматически созданный конструктором форм Windows». Пока что не обращайте на эти строки внимание и не изменяйте их.
  3. Итак, тело процедуры должно находиться между строками:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVale As System.EventArgs) Handles Button2.Click

    EndSub

  4. Наберите перед строкой EndSub следующий программный код:

Нажмите клавишу со стрелкой вниз, код, связанный с кнопкой Ok написан.

Совет. После того, как вы наберете имя объекта Label1 и точку, Visual Studio покажет список всех свойств объекта надпись. Вы можете выбрать свойство из этого списка, дважды щелкнув на нем мышью, или набрать самостоятельно.

  • Во время выполнения программы оператор, который вы ввели, по нажатию на кнопку изменит свойство Text надписи на «Hello, World!».
  • Теперь программу Hello World можно запускать.
  • Запуск программы Hello World.

    Теперь давайте запустим нашу программу.

    1. Выберите из меню Отладка команду Начать (или на стандартной панели инструментов нажмите кнопку Начать, или нажмите на клавиатуре клавишу ).
    2. Программа будет скомпилирована и запустится в среде разработки Visual Studio.
    3. Нажмите кнопку ОК. Программа покажет в поле надписи приветствие «Hello, world!». Когда вы нажали ОК, код программы изменил свойство Text пустой надписи Label1 на текст ‘Hello, World!» и показал этот текст в поле.
    4. Чтобы сохранить изменения, на стандартной панели инструментов нажмите кнопку Сохранить все.

    На этом урок закончен.

    Вы создали свой первый проект. Для этого выполнили все необходимые этапы построения нового проекта.

    На следующем уроке мы более подробно остановимся на программном коде проекта.

    До встречи на следующем уроке.

    Вы может посмотреть этот урок в видеоформате

    Оставить комментарий Вы можете в форме, которая расположена ниже.

    Программирование на VB6 (FAQ)

    FAQ (июнь-июль 2003)

    Данный материал предоставлен журналом CODE

    Программирование на VB6

    Q. Могу ли я в своей программе использовать процедуры написанные на других языках программирования не включая их в DLL или ActiveX контрол?

    G.M. Довольно странный вопрос и я к сожалению, не смог получить уточнения. Надеюсь, что Вы, прочитав эти строки, напишете мне, и я смогу ответить на поставленный вами вопрос.

    Но, так или иначе, я задался целью исследовать поставленную задачу, в результате чего я обнаружил один нетривиальный способ использования уже скомпилированных функций, написанных на языке Assembler. Этот метод был найден мной в работе clsASMpic 1.0 на сайте http://www.pscode.com. Код на языке ассемблера написан Робертом Рейментом (Robert Rayment).

    Суть метода заключается в том, чтобы хранить уже скомпилированный код в виде константы. Каким образом это реализуется? Ниже приведена измененная мною выдержка из кода с моими пояснениями.

    Листинг — пример использования хранимых функций

    Private Const ASMCode As String = «5589E581EC780000005756538B5D0 . » ‘шестнадцатеричное значение сильно сокращено с целью экономии места

    Call LoadMCodeFromString (MyFunc, ASMCode) ‘ вызов функции преобразования

    ‘ Так как VB по умолчанию передает параметры ByRef — мы получаем массив MyFunc

    Private Function LoadMCodeFromString(asm_code_ARRAY() As Byte, MCODE As String)

    Dim i As Long, aSize As Long

    aSize = Len(MCODE) ‘ размер кода

    Debug.Assert Not aSize And 1 ‘ число не может быть четным

    aSize = aSize 2

    ReDim Preserve asm_code_ARRAY(0 To aSize — 1) ‘ подготавливаем массив

    For i = 0 To aSize — 1

    asm_code_ARRAY(i) = Val(«&H» & Mid$(MCODE, i * 2 + 1, 2)) ‘создаем массив

    ptMf = VarPtr(MyFunc(0)) ‘ получаем адрес первого элемента, он же и будет адресом нашей процедуры

    CallWindowProc pMf, . параметры

    Как вы можете убедиться — решение весьма элегантно. Строковая переменная содержит код, который потом загружается в память в виде массива байтов. Для получения адреса процедуры используется встроенная функция VB — VarPtr — возвращающая указатель на переменную. И обычный вызов с помощью Win API — CallWindowProc.

    Подробнее вы можете рассмотреть этот пример на сайте www.pscode.com.

    Q. В моей программе я использую CommonControls. Для поддержки визуальных стилей WindowsXP я добавляю к своему e xe файлу — файл exe. manifest. Программа действительно отображается в стиле XP, но почему-то все c heck и option закрашены черным цветом. Как этого избежать?

    G.M. Чтобы эти элементы отображались на форме в WindowsXP так, какими вы хотите их видеть достаточно поместить их на какой-нибудь контрол-контейнер, например Frame или Picture.

    Q. Как можно дописать в скомпилированный exe файл какую-то информацию, так чтобы он продолжал запускаться как всегда? И вообще, можно ли это сделать.

    G.M. Можно. Действительно, любые записанная в конец exe файла данные будут игнорироваться загрузчиком ОС, поэтому вы можете свободно писать и читать добавленные данные, при условии, что, он доступен на чтение и запись. Приведу простой пример — мы имеем exe файл определенного размера (известный заранее) и другую программу с формой, текстовым полем и кнопкой. Содержимое файла, который мы будем использовать как хранилище данных, нас не интересует.

    Private Sub Command1_Click()

    Dim f As Integer

    f = FreeFile ‘ получаем свободный id

    Open «test.exe» For Binary As #f ‘ открываем файл

    Put #f, file_size, Text1.Text ‘ Помещаем содержимое Text1 в конец файла

    Теперь откройте файл любым редактором и посмотрите в его конец. Вы увидите именно тот текст, который был введен в поле Text1. Теперь двойным щелчком запустите файл — вы убедитесь в его работоспособности.

    Q. Как получить информацию о PE файле из VB? Т.е. прочитать заголовки и получить нужную информацию?

    G.M. Для этого необходимо объявить соответствующие типы, описывающие PE заголовки и заполнить их данными из открытого файла. Для примера приведу код получающий данные из DOSHEADER и NTHEADER.

    Объявление соответствующих структур:

    Public Type IMAGEDOSHEADER

    e_magic As String * 2

    e_cblp As Integer

    e_cp As Integer

    e_crlc As Integer

    e_cparhdr As Integer

    e_minalloc As Integer

    e_maxalloc As Integer

    e_ss As Integer

    e_sp As Integer

    e_csum As Integer

    e_ip As Integer

    e_cs As Integer

    e_lfarlc As Integer

    e_ovno As Integer

    e_res(1 To 4) As Integer

    e_oemid As Integer

    e_oeminfo As Integer

    e_res2(1 To 10) As Integer

    e_lfanew As Long

    Public Type IMAGE_FILE_HEADER

    Machine As Integer

    NumberOfSections As Integer

    TimeDateStamp As Long

    PointerToSymbolTable As Long

    NumberOfSymbols As Long

    SizeOfOptionalHeader As Integer

    Characteristics As Integer

    Public Type IMAGE_DATA_DIRECTORY

    VirtualAddress As Long

    Public Type IMAGE_OPTIONAL_HEADER

    Magic As Integer

    MajorLinkerVersion As Byte

    MinorLinkerVersion As Byte

    SizeOfCode As Long

    SizeOfInitializedData As Long

    SizeOfUninitializedData As Long

    AddressOfEntryPoint As Long

    BaseOfCode As Long

    BaseOfData As Long

    ImageBase As Long

    SectionAlignment As Long

    FileAlignment As Long

    MajorOperatingSystemVersion As Integer

    MinorOperatingSystemVersion As Integer

    MajorImageVersion As Integer

    MinorImageVersion As Integer

    MajorSubsystemVersion As Integer

    MinorSubsystemVersion As Integer

    Win32VersionValue As Long

    SizeOfImage As Long

    SizeOfHeaders As Long

    CheckSum As Long

    Subsystem As Integer

    DllCharacteristics As Integer

    SizeOfStackReserve As Long

    SizeOfStackCommit As Long

    SizeOfHeapReserve As Long

    SizeOfHeapCommit As Long

    LoaderFlags As Long

    NumberOfRvaAndSizes As Long

    DataDirectory(0 To 15) As IMAGE_DATA_DIRECTORY

    Public Type IMAGE_NT_HEADERS

    Signature As String * 4

    FileHeader As IMAGE_FILE_HEADER

    OptionalHeader As IMAGE_OPTIONAL_HEADER

    Public DOSHEADER As IMAGEDOSHEADER

    Public NTHEADER As IMAGE_NT_HEADERS

    ‘ Нам понадобится эта функция для копирования данных в структуры

    Public Declare Sub CopyMemory Lib «kernel32» Alias «RtlMoveMemory» _

    (pDst As Any, pSrc As Any, ByVal ByteLen As Long)

    Прочитаем содержимое файла в массив бинарных данных:

    Код для процедуры в форме

    Dim PEDATA() As Byte

    fH = FreeFile ‘Лучше получать свободное значение, чем использовать число, например 1

    Open «c:winntexplorer.exe» For Binary As #fH ‘Не забудьте исправить путь

    ReDim PEDATA(LOF(fH) — 1) ‘ Определяем размер массива под данные

    Get #fH, , PEDATA ‘ Считываем файл

    CopyMemory DOSHEADER, DATA(CNT), Len(DOSHEADER)

    CopyMemory NTHEADER, DATA(DOSHEADER.e_lfanew), Len(NTHEADER)

    ‘ Все данные загружены, теперь можно получать любую информацию

    MsgBox «Machine: » & NTHEADER.FileHeader.Machine & vbCrLf & _

    «Minor OS Version: » & _

    NTHEADER.OptionalHeader.MinorOperatingSystemVersion & vbCrLf & _

    В общем случае, этот метод подходит для любого файла, описываемого соответствующими ему структурами, частным случаем которого является файл формата PE. В качестве упражнения рекомендую взять описание любого формата, например ICO, и попытаться получить данные из файлов в директории Windows.

    Q. В своем приложении я использую глобальную переменную $_SESSION, где храню данные пользовательских сеансов. Не может ли взломщик передать ее содержимое в строке GET запроса?

    G.M. Подобные вопросы проще разрешить самостоятельно протестировав свое приложение. Я понимаю, что ввело вас в заблуждение. Чтобы показать, что ваши опасения напрасны, рассмотрим следующие два примера. Создадим простое приложение, которое выводит содержимое переменной в броузер.

    Запустим эту программу и передав подобный GET запрос: /test1.php?_SESSION[test]=Hi. Вы можете убедиться, что он проходит и программа выводит ожидаемое слово «Hi». Возможно, что именно это вас и смутило. Но теперь рассмотрим другой пример:

    Теперь, сколько бы мы не нажимали Refresh (‘Обновить’) в броузере, придумывая самые неимоверные GET запросы с вариациями на тему передачи содержимого в $_SESSION, да и любую другую подобную переменную, ничего не получится. Можете спасть спокойно, авторы PHP предусмотрели такую маленькую хитрость.

    Q. В моем сценарии на PHP 4.0 обрабатывается форма содержащая флажки выбора. Проблема заключается в том, что значение передается сценарию только тогда, когда флажок выбран. Но хотелось бы получить значение и тогда, когда флажок не выбран. Как решить эту задачу?

    G.M. Просто. Так как броузер отправляет значение value флажка лишь если он выбран, то можно перед самим элементом checkbox поместить элемент hidden с тем же значением name. При этом, если флажок будет выбран пользователем, то значение этой переменной примет указанное в value значения checkbox — PHP подставит переменной $check1 последнее значение в запросе (GET или POST).

    Q. Мне необходимо получить в моем сценарии содержимое странички выдаваемое программой, расположенным на удаленном хосте при передаче ему параметров. Например: http://myhost/index.php?page=1.

    G.M. Благодаря тому, что в PHP предусмотрена работа с удаленными файлами так же, как если бы они были расположены на вашем хосте, то можно легко получить ответ программы с удаленного хоста:

    Q. Поможет ли популярности нашего веб-сайта оригинальный и нестандартный дизайн. Отказ от стандартных форм?

    G.M. Как это обычно бывает — у медали две стороны. На первый взгляд — оригинальности и нестандартность дизайна определенно привлечет внимание пользователей, но по статистике, если пользователь в течение короткого времени не сможет разобраться с тем, как работают веб-приложения на вашем сайте — он покинет ваш ресурс. Поэтому необходимо найти оптимальное решение — совместить нестандартность и простоту работы. Представьте себя начинающим пользователем Интернет, знакомым лишь с простыми Windows приложениями и не желающего вникать в тонкости вашего подхода. Оцените свой ресурс, представив себя на его месте.

    Q. Что лучше — использование стандартных элементов веб-форм или использование собственных ActiveX элементов и Java апплетов?

    G.M. На мой взгляд, использование ActiveX и Java, конечно, сильно расширяет функциональность ваших веб-приложений и характеризует ресурс как созданный профессиональными программистами, но с другой стороны требует от клиента загрузки контролов и аппетов и выполнение их. При этом следует учесть, что клиент может обладать сильно устаревшим «железом» и «софтом», что сведет все ваши усилия на нет. Лично я стараюсь использовать простой HTML везде, где это возможно.

    Q. Насколько выгодно использовать в своих приложениях компоненты, разработанные по принципу «открытого кода»?

    G.M. Все зависит от того, какую цель вы преследуете. По моему личному опыту в подобных компонентах достаточно часто встречаются трудно исправимые ошибки. Поэтому прежде чем принимать подобное ПО в рассмотрение — пройдите все этапы тестирования и оцените насколько трудоемко изменение обнаруженных ошибок и приведение к необходимому вам виду. Обычно очень трудно убедить менеджера (или, как это сейчас модно, архитектора) проекта, что использование open source компонентов поможет сократить расходы на разработку.

    Q. Необходима ли сайту система управления содержимым?

    G.M. Прежде всего подумайте, стоит ли на вашем сайте размещать подобную систему? Я могу привести несколько вариантов, когда использование такой системы сильно облегчит поддержание ресурса:

    1. Сайт представляет собой часто обновляемый информационный портал с большим количеством информации

    2. Сайт разрабатывается более чем одним человеком — чтобы содержимое было структурировано, то необходимо разработать правила публикации, либо использовать единую систему управления контентом.

    Если же это домашняя страничка или «визитная карточка» — сайты на которых информация обновляется крайне редко, то установка такой системы неоправданна — вы потратите больше времени на установку, настройку и обслуживание системы.

    Школа программирования. Основы программирования на Visual Basic

    Н.М. Тимофеева,
    г. Обнинск Калужской обл.

    Продолжение. Начало см. “В мир информатики” № 69-70 (“Информатика” №4-5/2006)

    Пример программирования № 2 “Преобразование температур”

    Напишите программу для преобразования температур в диапазоне от –200 до 500 градусов по шкале Цельсия в значения по шкале Фаренгейта и наоборот.

    На рис. 1 показан предлагаемый дизайн экрана:

    Назначение каждого элемента управления:

    1) горизонтальная полоса прокрутки — инструмент для изменения значения температур;

    2) надписи — для вывода подписей и для показа вычисленных значений температур;

    3) кнопка — для завершения программы по щелчку на ней.

    N–S-диаграммы для разработки подпрограмм:

    Напомним (см. предыдущий выпуск), что решение задачи осуществляется в 5 этапов:

    1. Создание интерфейса.

    2. Установка начальных значений свойств элементов управления.

    3. Написание кода.

    4. Сохранение проекта на диске.

    5. Тестирование приложения.

    Разместите четыре надписи, горизонтальную полосу прокрутки и кнопку на форме, как показано на рис. 2. Полосу прокрутки нужно немного увеличить. Напоминаем, что проще всего поместить элемент управления на форму двойным щелчком по нему в блоке элементов управления.

    В результате вы получите следующий вид:

    Напишите следующий код для горизонтальной полосы прокрутки:

    Private Sub hsbТемпература_Change()
    ‘Присвоить значение полосы прокрутки
    ‘надписи lblЦельсий
    lblЦельсий.Caption = hsbТемпература.Value
    ‘Вычислить и отформатировать значение
    ‘температуры по Фаренгейту
    lblФаренгейт.Caption =
    Format(9 / 5 * hsbТемпература.Value + 32, «0.0»)
    End Sub

    Напишите следующий код для кнопки Выход:

    Private Sub cmdВыход_Click()
    End ‘Закончить программу
    End Sub

    Создайте папку ПРИМЕР2 и сохраните в ней форму и проект под именами Температура.frm и Температура.vbp.

    Перемещайте ползунок на полосе прокрутки или щелкайте по ее кнопкам с правой и левой стрелками. Какому значению по Фаренгейту соответствует 0°С? При какой температуре обе шкалы равны?

    Проверьте, что программа выполняет все, что было задано при постановке задачи. Как вы думаете, хотел бы пользователь сразу знать, как пользоваться полосой прокрутки? Как бы вы могли помочь пользователю? Если вы решитесь на некоторые изменения, то проверьте после этого еще раз ваши шаги.

    1. При установке значений свойств Max и Min полосы прокрутки соответственно в 500 и –200 устанавливаются максимальная и минимальная температура по шкале Цельсия. Использование полосы прокрутки в этом приложении обеспечивает надежный ввод данных. Пользователь при этом не сможет ввести неверные данные (уже заданы и тип данных, и допустимый диапазон).

    2. Для показа температур были использованы надписи ( Label ), а не текстовые окна ( TextBox ), потому что текст на надписи (значение свойства Caption ) не может быть изменен пользователем кроме как с помощью полосы прокрутки. А вот содержимое текстовых окон может быть “переписано” пользователем, поэтому они не подходят для этого случая. Следует обеспечить пользователю уверенность в том, что он не допустит ошибок.

    3. Температура по Фаренгейту вычисляется по формуле:

    Вы можете заметить, что в соответствующем фрагменте кода присутствует символ “*”. Это символ умножения. Если в алгебре позволительно опускать знак умножения, то в Visual Basic это недопустимо. Символ “/” соответствует знаку деления. Поэтому формула в коде процедуры hsbТемпература_Change имеет вид:

    4. Знак равенства (=), как он используется в коде только что упомянутой процедуры, нужен для того, чтобы присвоить значения свойству Caption надписей. Присваивание — это “предоставление” значения. Эти строки кода известны как операторы присваивания. В N–8-диаграммах присваивание обозначается стрелкой (), указывающей на объект, который принимает значение.

    5. В Visual Basic есть две разновидности операции деления. Так называемый “правый слеш” используется для вещественного деления. Кроме того, существует операция целочисленного деления, вычисляющая целую часть частного от деления. Знак этой операции — “” (обратный слеш). Предусмотрена также операция определения остатка от деления одного целого числа на другое. Ее знак обозначается mod . Несколько примеров:

    6. Текст, который следует после апострофа (‘), — это комментарий. Комментарии не выполняются транслятором1 как часть кода. Они необходимы вам или кому-нибудь еще, кому нужно будет прочитать и понять написанный код. Важно, чтобы написание комментариев вошло в привычку при разработке кода.

    7. Форматирование результата по Фаренгейту до одного десятичного знака после десятичной точки достигается применением функции Format (см. код процедуры hsbТемпература_Change выше). Эта функция определяет, как может быть представлено многообразие значений величины. У нее два параметра. Первый — величина или выражение, значение которого выводится. Во втором параметре символы в кавычках — это закодированный способ выражения конкретного формата. В данном случае — одна цифра после десятичной точки (символ “0” представляет цифру, которая должна быть отображена). Также может быть использован символ “#” для представления необязательных цифр (если в разряде, в котором записан этот символ, цифра имеется, она отображается, если нет — в этой позиции ничего не отображается).

    Мы изучим еще несколько стандартных функций Visual Basic в следующих примерах. А сейчас коротко: все функции имеют имя, и в операторах присваивания они всегда стоят справа от знака равенства.

    8. Значения почти всех свойств элементов управления могут быть изменены во время выполнения программы. По этой причине эти значения являются переменными. В нашей программе меняются значения свойств Caption у надписей, и также изменяется значение свойства Value у полосы прокрутки.

    9. Значения свойств могут быть числовыми или символьными. Тип значения, которое может быть присвоено, называется типом данных. Каждое свойство имеет конкретный тип данных.

    10. Значение свойства Caption надписи может принимать числовое или символьное значение. В Visual Basic для этого предусмотрен очень удобный тип данных, называемый Varian t .

    Вопросы и задания для проверки знаний

    1. Для чего в коде присутствуют комментарии?

    2. Определите результат следующих операций:

    3. Если сегодня четверг, то как можно с помощью операции определения остатка вычислить, какой день будет через 200 дней?

    4. В чем различие между знаками деления “/” и “”?

    5. Что вы получите в результате:

    б) Format (5/8, “0.0000”);

    в) Format (5/8, “#.0000”);

    6. Почему свойства элементов управления рассматриваются как переменные?

    7. Приведите примеры нескольких свойств, которые имеют числовые значения.

    8. Напишите код для присваивания значения свойства Text текстового окна с именем txtВвод значению свойству Caption надписи с именем lblФамилия .

    9. Разработайте интерфейс для приложения, которое бы преобразовывало вес на Земле в вес на Луне (земной вес — от 0 до 200 кг), зная, что сила тяжести на Луне составляет примерно 0,165 от земной. Округлите лунный вес до одного знака после десятичной точки.

    10. Создайте приложение на Visual Basic по разработанному интерфейсу. Самостоятельно установите значения свойств и напишите код. Проверьте, как работает ваше приложение.

    11. Разработайте приложение, которое преобразует минуты (от 0 до 5000) в часы и минуты.

    От редакции. Пожалуйста, присылайте разработанные проекты и ответы на вопросы в редакцию. Ваша активность будет учтена при подведении итогов учебного года в нашей газете.

    1 Транслятор — системная программа, переводящая прикладную программу, написанную на языке программирования высокого уровня, на машинный язык. — Ред.

    Урок 3. Создание проекта в Visual Basic.net

    Урок из серии «Программирование на Bisual Basic.NET для школьников».

    В этом уроке мы создадим наш первый проект под названием «Hello World» .

    Этот проект после щелчка на кнопке ОК выводит в поле надписи приветствие: «Hello, World» («Здравствуй, мир!»).

    На этом несложном примере мы познакомимся со всеми этапами создания проекта в среде программирования Visual basic.NET, научимся их запускать.

    Справочная информация

    Для проекта, который мы задумали, необходимо всего два элемента управления: Label (Надпись) и Button (Кнопка).

    Элемент управления Label (Надпись) отображает данные, которые нельзя изменить в процессе выполнения проекта, используется для вывода различных надписей, располагаемых рядом с другими объектами, нуждающимися в пояснениях.

    Основные свойства надписи

    Событие по умолчанию — Click (щелчок по надписи).

    Элемент управления Кнопка (Button) используется, когда пользователю нужно получить простейший отклик. Нажимая на кнопку, пользователь просит программу немедленно выполнить некоторое действие.
    В терминах Visual Basic пользователь, нажимая на кнопку, создает событие, которое требуется обработать в программе.

    Основные свойства такие же, как у элемента управления Надпись.

    Событие по умолчанию — Click (щелчок по кнопке).

    Из прошлого урока вы уже знаете, чтобы создать проект с самого начала, необходимо выполнить на Visual Basic четыре основных шага:

    1. Создание нового проекта
    2. Создание пользовательского интерфейса c помощью элементов управления из Области элементов Visual Studio (Мы создадим два объекта: текстовое поле и кнопку).
    3. Настройка свойства этих элементов управления (Зададим два свойства).
    4. Написание кода программы, который определит, что будет делать наша программа (Введем одну строку кода).

    Создание нового проекта

    1. Запустите Visual Studio.
    2. На начальной странице Visual Studio на вкладке Проекты нажмите кнопку Создать проект. Новый проект можно начать и в меню Файл, выбрав в нем Создать — Проект. Появиться диалоговое окно Создать проект.
    3. В этом окне нужно указать тип проекта, который необходимо создать, шаблон, который будет использоваться, имя проекта и расположение файлов.
      • В списке Типы проектов выберите папку Проекты VisualBasic.
      • В окне Шаблоны выберите шаблон Приложение для Windows. Visual Studio настроит среду разработки для программирования Windows-приложения на Visual Basic.NET.
      • В текстовом поле Имя введите Hello_World в качестве имени проекта (в имени проекта лучше не использовать пробелы)
      • В поле Расположение укажите путь для хранения файлов проекта. Выберите свою личную папку. В ней будет создана новая папка Hello_World, и проект «Hello_World» будет сохранен в созданной папке.
      • Чтобы выбрать папку на диске, можно нажать кнопку Обзор.
      • Нажмите ОК. Откроется новый созданный проект и на экране будет отображена пустая графическая форма Windows (обычно имеющая название Form1), на основе которой можно создавать интерфейс для пользователя вашего приложения.
    4. Теперь мы увеличим форму, а затем создадим на ней надпись и кнопку.

    Создание пользовательского интерфейса проекта

    1. В Области элементов нажмите на элемент управления Label (Надпись), который находиться на закладке Windows Forms.
    2. Нарисуйте Надпись. В этой программе поле Надпись используется для показа сообщения «Hello, world!» по нажатию на кнопку. Давайте добавим кнопку.
    3. В Области элементов выберите элемент управления Button (Кнопка).
    4. На форме ниже текстового поля нарисуйте кнопку. Форма должна выглядеть примерно так.


      Характеристики любой кнопки (как и всех объектов) можно изменить с помощью настройки свойств или обращения к её объекту в коде программы. В этом проекте мы будем настраивать свойства кнопки с помощью окна Свойства

    Настройка свойств объектов

    В Visual Basic все объекты, значит текстовое поле и кнопка тоже объекты. Текст в текстовом поле и надпись на кнопке — это свойства этих объектов. Для просмотра свойства объекта и их редактирования используется окно Свойства.

    Окно Свойства находится в правой части экрана и отображает свойства выделенного объекта. По умолчанию — это сама форма. Чтобы отобразить свойства того объекта, который вы хотите редактировать, нужно его выделить щелчком.

    Совет. Если окно свойств скрыто, вберите в меню Вид команду Окно свойств или нажмите клавишу F4.

    Итак, вернемся к нашей задаче.

      В окне Свойства задайте для текстового поля и кнопки приведенные ниже свойства. Значение «пусто» для TextBox1 означает, что вы должны удалить имеющееся значение и оставить свойство пустым. Установки, которые нужно ввести, показаны в кавычках. Сами кавычки вводить не нужно.

    Создание программного кода проекта

    Для ввода и редактирования операторов в программе на Visual Basic используется Редактор кода. Редактор кода открывается двойным щелчком на объекте.

    По условию задачи нам нужно, чтобы после щелчка на кнопке ОК в текстовое поле вывелось сообщение «Hello, World». Для этого напишем программный код в теле процедуры Button1Click() (обработчике события щелчок на кнопке).

    1. В поле формы дважды щелкните на кнопке OK. В центральном окне среды разработки VisualStudio появиться Редактор кода, как показано ниже.
      В окне редактора кода находится текст программы, связанный с текущей графической формой.Те выражения, которые вместе выполняют некоторое действие, обычно группируются в программные конструкции под названием процедуры. Когда процедура связана с конкретным объектом и событием, она называется обработчиком события или процедурой события.Процедуры начинаются с ключевого слова Sub в первой строке и заканчиваются словом End Sub.
    2. Когда кнопка Ok (объект «Button1») была помещена на поле формы, VisualStudio.Net автоматически добавил к коду этой формы процедуру Button1_Click для обработки основного для кнопки события — щелчок на кнопке.Процедура пустая, содержит только заголовок и оператор конца процедуры.В редакторе кода видны и другие строки программы, которые среда VisualStudio добавила автоматически. Эти операторы находятся под общим заголовком «Код, автоматически созданный конструктором форм Windows». Пока что не обращайте на эти строки внимание и не изменяйте их.
    3. Итак, тело процедуры должно находиться между строками:
      Private Sub Button1_Click(ByVal sender As System.Object, ByVale As System.EventArgs) Handles Button2.Click

      EndSub

    4. Наберите перед строкой EndSub следующий программный код:

    Нажмите клавишу со стрелкой вниз, код, связанный с кнопкой Ok написан.

    Совет. После того, как вы наберете имя объекта Label1 и точку, Visual Studio покажет список всех свойств объекта надпись. Вы можете выбрать свойство из этого списка, дважды щелкнув на нем мышью, или набрать самостоятельно.

  • Во время выполнения программы оператор, который вы ввели, по нажатию на кнопку изменит свойство Text надписи на «Hello, World!».
  • Теперь программу Hello World можно запускать.
  • Запуск программы Hello World.

    Теперь давайте запустим нашу программу.

    1. Выберите из меню Отладка команду Начать (или на стандартной панели инструментов нажмите кнопку Начать, или нажмите на клавиатуре клавишу ).
    2. Программа будет скомпилирована и запустится в среде разработки Visual Studio.
    3. Нажмите кнопку ОК. Программа покажет в поле надписи приветствие «Hello, world!». Когда вы нажали ОК, код программы изменил свойство Text пустой надписи Label1 на текст ‘Hello, World!» и показал этот текст в поле.
    4. Чтобы сохранить изменения, на стандартной панели инструментов нажмите кнопку Сохранить все.

    На этом урок закончен.

    Вы создали свой первый проект. Для этого выполнили все необходимые этапы построения нового проекта.

    На следующем уроке мы более подробно остановимся на программном коде проекта.

    До встречи на следующем уроке.

    Вы может посмотреть этот урок в видеоформате

    Оставить комментарий Вы можете в форме, которая расположена ниже.

    Ссылка на основную публикацию
    ВсеИнструменты
    Adblock
    detector