Delphi и Visual Basic
Delphi и Visual Basic
1. Есть ли в Delphi эквивалент массива элементов управления из Visual Basic?
Hет. Компоненты Delphi не имеют свойства Index, подобное VB. Однако, имеются три основные причины, почему вы хотите использовать их в VB, и для каждой из них есть решение в Delphi.
Причина 1. Вы хотите использовать один обработчик события для разных компонент на форме.
Это просто. Все, что вы должны сделать — это выбрать тот же самый обработчик для каждой визуальной компоненты. Это лучше, чем в случае с массивом компонент, потому что вы можете одну и ту же процедуру-обработчик события присвоить различным типам компонент; например, кнопка на форме и пункт меню могут вызывать ту же самую функцию для обработки события OnClick.
Причина 2. Вы хотите динамически создавать и уничтожать визуальные компоненты во время выполнения программы.
Это также довольно просто в Delphi. Предположим, что на форме есть кнопка, и, каждый раз когда она нажимается, вы хотите создавать другую кнопку. Следующий пример показывается, как это делать:
procedure TForm1.Button1Click(Sender: TObject);
var
NewButton: TButton;
begin
NewButton := TButton.Create(Self);
NewButton.Parent := Self;
end;
Причина 3. Вам действительно требуется доступ к компонентам по номеру.
Предположим, что вы решили написать игру вроде Реверси в Delphi. Вам нужно разместить 100 объектов TShape на форме, в виде квадрата 10?10. Конечно, размещать каждый элемент вручную на экране — задача трудоемкая и неинтересная, при этом, в декларации формы появляется 100 строк кода, которые, в общем-то, не нужны. Вместо этого можно завести массив вроде
Board: array [1..10, 1..10] of TShape; Далее в программе нужно создать каждый из этих объекты, вызвав TShape.Create(FormXX); указать вручную начальные установки для них. Кроме того, в свойстве Parent каждого объекта из массива нужно указать ту панель (TPanel) или форму, на которой они располагаются. Это нужно для правильной перерисовки объектов.
Если же вы не используете такие большие массивы, т.е., например хотите одинаково реагировать на нажатие 3-5 кнопок с незначительным различием для каждой из них, то можно использовать свойство Tag.
2. Как использовать DLL, написанные в Delphi, например в Visual Basic?
Допустим, вы написали на Delphi DLL и в нем объявили функцию
function DataFileType(lpStr: PChar): Integer; export;
begin
StrPCopy(lpStr, oDataMap.VendorName);
Result := StrLen(lpStr);
end;
в Visual Basic Вы должны подключить ее как:
Declare Function DataFileType Lib "File.dll" (ByVal lpStr As String) As Integer
а в программе на VB использовать следующим образом:
nSize = DataFileType(lpVar)
sVendorName = Mid$(lpVar, 1, nSize)
3. Конвертация TBasicString (VBX) в string.

Я использую VBX и испытываю проблемы с конвертацией TBasicString в string. Как это сделать?

Существует две функции —
• BStrPCopy — принимает Basic string и конвертирует в string
• SetBStr — принимает string и возвращает Basic string Действительно, ссылок на эти функции нет в документации, но имена этих функций можно "обнаружить" в VBXCTRL.DCU.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Visual Basic 6.0
Visual Basic 6.0 В Visual Basic 6.0 в отличие от пятой версии окна Code и Object появляются в нормальном, не в раскрытом виде. И приходится при каждом запуске VB6 раскрывать эти окна. Можно заставить автоматически раскрывать эти окна при каждом запуске. Создайте в соответствующем разделе
Visual Basic
Visual Basic Регистрация dll- и ocx-файловДанная заметка будет полезна разработчикам. Если вам часто приходится работать с ocx-файлами (а также с dll-файлами), которые требуют регистрации в реестре с помощью REGSVR.EXE, то будет гораздо удобнее внести соответствующую запись в реестр, чем
3. Переменные Visual Basic
3. Переменные Visual Basic В Visual Basic переменные накапливают информацию (значения). При их применении Visual Basic занимают область в памяти компьютера, которая предназначена для сохранения этой информации. Имена переменных, составленные из символов, могут иметь длину в 255 символов.
Что визуального в Visual Basic для приложений?
Что визуального в Visual Basic для приложений? К счастью, VBA во многом избавляет от необходимости нудного печатания программного кода. В одних случаях вы записываете команды, которые нужны в приложении, и используете их в качестве отправной точки при создании новой программы.В
VBA против Visual Basic
VBA против Visual Basic Помимо того, что VBA не позволяет вам создавать отдельные приложения, одно из основных отличий состоит в том, что программы, написанные на VBA, работают медленнее, чем программы, написанные на Visual
Почему VBA обычно медленнее, чем Visual Basic
Почему VBA обычно медленнее, чем Visual Basic Кроме того, что вы не можете создавать в VBA отдельные, автономно работающие приложения, между VBA и Visual Basic есть еще одно серьезное отличие- VBA-программы обычно выполняются медленнее.Причина этого обнаруживается просто: VBA-программу
Различия между VBA и Visual Basic
Различия между VBA и Visual Basic VBA имеет очень много общего с Visual Basic, своим старшим братом, предназначенным для создания независимых приложений. А раз языки похожи, вы можете перенести большую часть своих навыков в программировании на VBA в Visual Basic. Однако вам следует помнить о
Вызов редактора Visual Basic
Вызов редактора Visual Basic Редактор Visual Basic служит командным центром для работы в VBA. В нем вы должны находиться при разработке VBA-форм, создании VBA-кода, тестировании и отладке VBA программ. Экспертом по использованию редактора Visual Basic вы станете после прочтения главы 5, а пока
Краткое знакомство с редактором Visual Basic
Краткое знакомство с редактором Visual Basic Первые обращения к редактору Visual Basic могут вас озадачить. Наверное, присутствие меню и панелей инструментов вверху экрана покажется вам привычным, но вот что означает это обилие окон? Предсказать их взаимное расположение
9.3. Редактор Visual Basic
9.3. Редактор Visual Basic После записи рассмотренного выше макроса к шаблону Normal добавился следующий текст макроса: Sub Arial_10_bold() “ “ Arial_10_bold Macro “ Arial 10 Полужирный “ With Selection.Font .Name = "Arial" .Size = 10 .Bold = True .Italic = False .Underline = wdUnderlineNone .UnderlineColor = wdColorAutomatic .StrikeThrough = False .DoubleStrikeThrough = False .Outline =
Подход Visual Basic 6.0
Подход Visual Basic 6.0 Благодаря искреннему желанию насладиться более простой жизнью, многие программисты ушли от "мира каркасов" приложений на базе C(++) к более дружественным языкам, таким, как, например, Visual Basic 6.0 (VB6). Язык VB6 стал популярным благодаря тому, что он дает
Среда разработки eMbedded Visual Basic 3.0
Среда разработки eMbedded Visual Basic 3.0 Для краткости в этой главе для обозначения среды eMbedded Visual Basic 3.0 будет использовано сокращение eVB.Запустить eVB можно либо при помощи команды меню Пуск (Пуск ? Программы ? Microsoft eMbedded Visual Tools ? eMbedded Visual Basic 3.0), либо найти в папке установки
Отличия eVB и Visual Basic для. NET
Отличия eVB и Visual Basic для. NET В основном отличия VB.NET от eVB связаны с интеграцией языка VB с Compact Framework и определяются именно внутренней структурой самой CF.Типы данныхВ eVB был один-единственный тип данных на все случаи жизни, Variant, который достался eVB по наследству от VB Script. Visual
2.4.2. Генерация кода в Visual Basic
2.4.2. Генерация кода в Visual Basic ERwin поддерживает генерацию кода для MS Visual Basic версий 4.0 и 5.0. В качестве источника информации при генерации форм служит модель ERwin. Использование ERwin позволяет одновременно описывать как клиентскую часть (объекты, отображающие данные на экране),