| Главная | Загрузить | Регистрация | Отзывы | Тех.поддержка |
|
|
VintaSoftTwain ActiveX компонент Для каких целей могу я использовать VintaSoftTwain ActiveX компонент? Данный ActiveX компонент может использоваться для управления работой сканеров, цифровых и веб камер и любых других устройств, которые поддерживают TWAIN стандарт. В каких языках программирования могу я использовать это ActiveX компонент? Лицензия разработчика и лицензия для компании позволяют использовать компонент в: Лицензия для сервера позволяет использовать компонент в: Какие ограничения имеет незарегистрированная версия компонента? Ограничения незарегистрированной версии: Все эти ограничения удалены в зарегистрированной версии компонента. Я не нашел ответа на свой вопрос. Что мне делать? Информация по большинству вопросов может быть найдена в документации к компоненту или в этом FAQ. Если Вы не нашли ответа на свой вопрос, тогда напишите письмо в службу технической поддержки. Могу я распространять этот ActiveX компонент вместе с моим приложением? Да, Вы можете распространять компонент вместе со своим приложением. Вы платите только за первоначальную регистрацию. Лицензия для компании и для сервера не имеют ограничений в распространении. Лицензия разработчика имеет некоторые ограничения в распространении. Пожалуйста смотрите лицензионное соглашение. Какие файлы мне нужно включать в дистрибутив моей программы? Вам нужно включить в дистрибутив Вашей программы только один файл: vstwain.dll. После установки Вашей программы на компьютер, пожалуйста зарегистрируйте ActiveX компонент с помощью программы regsvr32.exe (regsvr32.exe vstwain.dll). Я создал программу в Visual Studio .NET. Какие шаги должен я выполнить для корректной установки моей программы на компьютере клиента? Перед распространением Вашей программы: Во время распространения Вашей программы: При регистрации ActiveX в Windows 98 я получаю сообщение об ошибке. Что мне делать? Эта проблема связана с отсутствием необходимых библиотек в системе. Для работы ActiveX необходимы следующие библиотеки: Пожалуйста установите пакет "Visual C++ run time files" на компьютер - это должно решить проблему. Я создал программу в Delphi. Программа работает корректно, если она запущена с правами администратора, но если запустить программу с правами Гостя, то возникает следующее сообщение "Exception EOleSysError in module...". Как решить эту проблему? Прежде всего необходимо зарегистрировать ActiveX в системе с помощью программы register32.exe - эта операция должна быть выполнена с администраторскими полномочиями. Далее необходимо использовать следующий код в Вашей программе:
program Simple;
uses
Forms,
Windows, Registry, Dialogs, ActiveX,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
function IsVSTwainRegistered : Boolean;
var Reg:TRegistry;
begin
Reg:=TRegistry.Create;
try
Reg.RootKey:=HKEY_CLASSES_ROOT;
Result:=Reg.OpenKey('CLSID\{1169E0CD-9E76-11D7-B1D8-FB63945DE96D}',False);
if Result then Reg.CloseKey;
finally
Reg.Free;
end;
end;
begin
if not IsVSTwainRegistered() then
begin
ShowMessage('VintaSoftTwain ActiveX is not registered!');
Exit;
end;
OleInitialize(nil);
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
OleUninitialize;
end.
Как мне добавить объект VintaSoftTwain на форму в проекте VB.NET? Необходимо выполнить следующие шаги для добавления объекта VintaSoftTain на форму приложения:
Я хочу использовать ActiveX в Delphi 2005, но дизайнер форм не позволяет добавлять ActiveX компоненты на форму приложения. Возникает следующая ошибка "Failed to add a reference to the ActiveX type library. Ensure that it is properly registered. ...". Как решить эту проблему? Вот список шагов позволяющих решить данную проблему: Как мне динамически добавить VintaSoftTwain объект в мой проект на VB? Необходимо сделать следующее: 1. Открыть пункт меню "Project -> References". 2. В открывшемся окне добавить ссылку на объект "VintaSoftTwain ActiveX Control". 3. Далее нужно добавить следующий код к проекту:
Option Explicit
Dim WithEvents VSTwain1 As VSTWAINLib.VintaSoftTwain
Private Sub StartScan_Click()
Set VSTwain1 = New VSTWAINLib.VintaSoftTwain
With VSTwain1
.StartDevice
If .SelectSource = 1 Then
.showUI = True
.Acquire
End If
End With
End Sub
Private Sub VSTwain1_PostScan(ByVal flag As Long)
If flag <> 0 Then
If VSTwain1.errorCode <> 0 Then
MsgBox VSTwain1.errorString
End If
Else
Set Image1.Picture = VSTwain1.GetCurrentImage
VSTwain1.tiffCompression = 10
VSTwain1.SaveImage 0, "c:\test.tif"
End If
End Sub
Я пытаюсь использовать ActiveX в среде Windows 2003 Server, но возникает ошибка "Error at loading the TWAIN_32.DLL". Как решить эту проблему? Версия Windows 2003 Server которую Вы используете имеет ошибку в конфигурации: Функция GetWindowsDirectory возвращает некорректный путь к директории Windows, а именно "C:\Documents and Settings\User\Windows\" вместо "C:\Windows\". Данная статья поможет Вам решить проблему: http://support.microsoft.com/kb/832048. Мне не удается добавить объект VintaSoftTwain на форму приложения в среде VS .NET 2005. Как решить эту проблему? Вы должны добавить к своему проекту ссылку на библиотеку "stdole" перед добавлением объекта VintaSoftTwain на форму приложения. Вот список необходимых шагов:
После этих шагов Вы можете добавить объект VintaSoftTwain на форму Вашего приложения без каких либо проблем. Как мне подписать мою копию компонента, чтобы использовать его на моей веб странице? VintaSoftTwain ActiveX подписан цифровым сертификатом от Thawte. Пожалуста сообщите нам, если Вы хотите подписать VintaSoftTwain ActiveX своим собственным сертификатом. Какие шаги мне нужно выполнить чтобы добавить ActiveX к моему интернет проекту? Вам необходимо выполнить следующие шаги: 1. Добавить файл vstwain.dll на сервер. 2. В HTML коде исправить следующие строки.
// В коде примера:
<OBJECT ID="VSTwain1" WIDTH=1 HEIGHT=1
CLASSID="CLSID:1169E0CD-9E76-11D7-B1D8-FB63945DE96D"
CODEBASE="">
</OBJECT>
// Должно быть в Вашем коде:
<OBJECT ID="VSTwain1" WIDTH=1 HEIGHT=1
CLASSID="CLSID:1169E0CD-9E76-11D7-B1D8-FB63945DE96D"
CODEBASE="http://www.your-server.ru/activex/vstwain.dll#version=4,0,0,3">
</OBJECT>
После всех этих шагов Вам не придется устанавливать ActiveX компонент
на всех компьютерах Вашей организации. Когда пользователь откроет
страницу с компонентом ему будет выдан запрос на установку компонента
на его компьютер. Если он согласится на установку, то компонент
будет автоматически установлен на его компьютер и он сможет работать
с Вашей веб страницей.Если необходимо, то ActiveX можно поместить в CAB файл: (CODEBASE="http://www.your-server.ru/activex/vstwain.cab"). Как могу я загрузить изображение полученное со сканера на веб сервер? Протокол HTTP не позволяет напрямую загружать изображения на Веб (HTTP) сервер. Для решения этой проблемы можно использовать специальный веб-скрипт, который должен быть помещен на сервер. Вы можете найти множество скриптов в интернете или использовать один из следующих: ASP script, Perl script. Для загрузки изображений на сервер через скрипт необходимо знать какие поля содержит скрипт. ASP скрипт содержит следующие поля: и для загрузки изображений через этот скрипт необходимо использовать следующий код:
If VSTwain1.SetHttpServerParams("http://www.your-server.ru/clsUploadTest.asp",
"http://www.your-server.ru/clsUploadTest.asp", 4) = 0 Then
MsgBox VSTwain1.errorString
Else
VSTwain1.SetHttpFormField "Demo", "Demo string"
VSTwain1.SetHttpFormField "cmdSubmit", "SUBMIT"
If VSTwain1.SaveImageToHttp(0, "txtFile", "demo.jpg") = 0 Then
MsgBox VSTwain1.errorString
Else
Timer.Interval = 10
End If
End If
Perl скрипт содержит следующие поля:
и для загрузки изображений через этот скрипт необходимо использовать следующий код:
If VSTwain1.SetHttpServerParams("http://www.your-server.ru/cgi/upload.cgi",
"http://www.your-server.ru/upload.html", 4) = 0 Then
MsgBox VSTwain1.errorString
Else
VSTwain1.SetHttpFormField "login", "guest"
VSTwain1.SetHttpFormField "pass", "guest"
If VSTwain1.SaveImageToHttp(0, "file", "demo.jpg") = 0 Then
MsgBox VSTwain1.errorString
Else
Timer.Interval = 10
End If
End If
Я пытаюсь выбрать устройство с помощью свойства sourceIndex в Internet Explorer, но получаю ошибку. Почему? Каждый объект на веб странице в Internet Explorer имеет предопределенное свойство sourceIndex - это свойство доступно только для чтения. Вы должны использовать следующий код чтобы работать с свойством sourceIndex объекта VSTwain в JavaScript или VBScript: VSTwain1.StartDevice() VSTwain1.object.sourceIndex = 1 ' второе устройство VSTwain1.Acquire() Как мне получить черно-белые изображения (документы)? Вот пример кода для получения черно-белых изображений:
Private Sub StartScan()
VSTwain1.StartDevice()
If VSTwain1.SelectSource() = 1 Then
VSTwain1.OpenDataSource()
VSTwain1.pixelType = 0 ' Тип изображений: 0-ч/б, 1-серые, 2-RGB
VSTwain1.Acquire()
End If
End Sub
Язык программирования который я использую не поддерживает работу с массивами. Как мне обойти эту проблему? Если Вам необходимо получить массив значений с помощью методов GetPageSizes, GetPixelTypes, GetResolutions, GetUnitsOfMeasure, но используемый Вами язык программирования не поддерживает работу с массивами, тогда Вы можете использовать следующий метод:
' Этот пример показывает как получить типы изображений поддерживаемых устройством
VSTwain1.StartDevice()
VSTwain1.OpenDataSource()
bSupportBW = 0
VSTwain1.pixelType = 0 ' черно-белые изображения (1 бит на пиксел)
If VSTwain1.errorCode = 0 Then ' черно-белые изображения поддерживаются устройством
bSupportBW = 1
End If
bSupportGray = 0
VSTwain1.pixelType = 1 ' серые изображения (8 бит на пиксел)
If VSTwain1.errorCode = 0 Then ' серые изображения поддерживаются устройством
bSupportGray = 1
End If
bSupportRGB = 0
VSTwain1.pixelType = 2 ' RGB (24 бита на пиксел)
If VSTwain1.errorCode = 0 Then ' цветные (RGB) изображения поддерживаются устройством
bSupportRGB = 1
End If
...................
Могу я управлять лотком автоматической подачи документов без пользовательского интерфейса? Вот пример показывающий как можно управлять работой сканера с лотком автоматической подачи документов без пользовательского интерфейса:
Private Sub StartScan()
VSTwain1.StartDevice()
If VSTwain1.SelectSource() = 1 Then ' если пользователь выбрал устройство
VSTwain1.showUI = False ' выключить пользов.интерфейс
VSTwain1.disableAfterAcquire = True
VSTwain1.maxImages = 1
VSTwain1.autoCleanBuffer = True
VSTwain1.tiffMultiPage = True ' создавать много страничный TIFF файл
VSTwain1.tiffCompression = 10 ' автоматически определять лучший алг.сжатия
If VSTwain1.OpenDataSource() = 1 Then
VSTwain1.unitOfMeasure = 0 ' дюймы как основная един.измерений
VSTwain1.pixelType = 0 ' сканировать черно-белые изображения
VSTwain1.resolution = 200 ' разрешение - 200 dpi
If VSTwain1.feederPresent = 1 Then
VSTwain1.feederEnabled = True
If VSTwain1.duplex <> 0 Then
VSTwain1.duplexEnabled = True
End If
If VSTwain1.feederLoaded = 1 Then
VSTwain1.xferCount = -1
VSTwain1.autoFeed = True
VSTwain1.Acquire()
End If
End If
End If
End If
End Sub
Private Sub VSTwain1_PostScan(ByVal flag As Long)
If flag <> 0 Then
If VSTwain1.errorCode <> 0 Then
MsgBox VSTwain1.errorString
End If
Else
VStwain1.SaveImage VSTwain1.NumImages-1, "c:\test.tiff"
If VSTwain1.dataSourceState = 0 Then
VSTwain1.StopDevice()
MsgBox "Scan completed."
End if
End If
End Sub
Можно ли создать консольное приложение используя этот ActiveX компонент? Используя этот ActiveX компонент нельзя создать консольное приложение. Приложение должно иметь собственное окно для работы с компонентом. Могу я выбрать нужное мне устройство без стандартного диалога выбора устройства? Да. Можно использовать следующий код для нумерации устройств:
VSTwain1.StartDevice
For i = 0 To (VSTwain1.sourcesCount - 1)
MsgBox VSTwain1.GetSourceProductName(i)
Next
А этот код для выбора первого устройства:
VSTwain1.StartDevice VSTwain1.sourceIndex = 0 ..... VSTwain1.AcquireХотя самый лучший вариант следующий:
VSTwain1.StartDevice
For i = 0 To (VSTwain1.sourcesCount - 1)
If VSTwain1.GetSourceProductName(i) = "Your device name" Then
VSTwain1.sourceIndex = i
Exit For
End If
Next
.....
В этом случае необходимо знать правильное название устройства.Как мне отключить окно индикатора процесса сканирования при получении изображений без пользовательского интерфейса? Стандарт TWAIN позволяет отключать окно индикатора процесса сканирования, если пользовательский интерфейс не используется (showUI=False). Это можно сделать следующим образом: VSTwain1.StartDevice VSTwain1.showUI = False VSTwain1.disableAfterAcquire = True VSTwain1.maxImages = 1 VSTwain1.OpenDataSource VSTwain1.showIndicators = 0 VSTwain1.Acquire Мне нужно отсканировать только часть изображения. Как это сделать? Используйте следующий код чтобы получить часть изображения ограниченную прямоугольником (0.2,0.2) - (8.3,10.8) VSTwain1.StartDevice() VSTwain1.showUI = False VSTwain1.OpenDataSource() ............. VSTwain1.unitOfMeasure = 0 ' дюймы VSTwain1.SetImageLayout(0.2,0.2,8.3,10.8) VSTwain1.Acquire() Как мне установить разное разрешение для оси X и Y во время сканирования изображений? Вот пример в котором разрешение по оси X устанавливается равным 4800 dpi, а по оси Y равным 9600 dpi: VSTwain1.StartDevice VSTwain1.showUI = False VSTwain1.disableAfterAcquire = True VSTwain1.maxImages = 1 VSTwain1.OpenDataSource VSTwain1.unitOfMeasure = 0 ' дюймы VSTwain1.capability = 4376 ' ICAP_XRESOLUTION (0x1118) VSTwain1.capType = 1 VSTwain1.capValue = 4800 ' 4800 dpi VSTwain1.SetCap VSTwain1.capability = 4377 ' ICAP_YRESOLUTION (0x1119) VSTwain1.capType = 1 VSTwain1.capValue = 9600 ' 9600 dpi VSTwain1.SetCap VSTwain1.Acquire Как мне выбрать ориентацию изображения при сканировании? Вы можете выбрать ориентацию изображения при сканировании только если сканер поддерживает данную возможность: .....
VSTwain1.OpenDataSource
VSTwain1.capability = 4368 ' ICAP_ORIENTATION (0x1110)
If VSTwain1.IsCapSupported Then
VSTwain1.capType = 1 ' one value
VSTwain1.capValue = 3 ' Landscape
VSTwain1.SetCap
End If
.....
Возможные значения для ориентации:0 Книжная ориентация, поворот на 0 градусов 1 Поворот на 90 градусов 2 Поворот на 180 градусов 3 Альбомная ориентация, поворот на 270 градусов Наша организация испрользует сетевой сканер с автоматической подачей листов (ADF) и мы обрабатываем множество документов каждый день. Как мы можем автоматизировать нашу работу? Хотелось бы сохранять каждый документ в отдельном файле. Вы можете использовать пустую страницу как разделитель документов и определять пустые страницы с помощью метода IsBlankPage. Вот пример:
Dim documentsCounter as Integer
............
documentsCounter = 0
............
Private Sub StartScan()
VSTwain1.StartDevice()
If VSTwain1.SelectSource() = 1 Then ' выбор устройства
VSTwain1.showUI = False ' отключение польз.интерф.
VSTwain1.disableAfterAcquire = True
VSTwain1.maxImages = 1
VSTwain1.autoCleanBuffer = True
VSTwain1.tiffMultiPage = True
VSTwain1.tiffCompression = 10
If VSTwain1.OpenDataSource() = 1 Then
VSTwain1.unitOfMeasure = 0
VSTwain1.pixelType = 0
VSTwain1.resolution = 200
If VSTwain1.duplex <> 0 Then
VSTwain1.duplexEnabled = True
End If
If VSTwain1.feederPresent = 1 Then
VSTwain1.xferCount = -1
VSTwain1.feederEnabled = True
VSTwain1.autoFeed = True
If VSTwain1.feederLoaded = 1 Then
VSTwain1.Acquire()
End If
End If
End If
End If
End Sub
Private Sub VSTwain1_PostScan(ByVal flag As Long)
If flag <> 0 Then
If VSTwain1.errorCode <> 0 Then
MsgBox VSTwain1.errorString
End If
Else
If VSTwain1.IsBlankImage(0) = 1 Then
documentsCounter = documentsCounter + 1
End If
If VStwain1.SaveImage(0,"c:\documents\doc"+
Str(documentsCounter)+".tiff") = 0 Then
MsgBox VSTwain1.errorString
End If
If VSTwain1.dataSourceState = 0 Then
VSTwain1.StopDevice()
MsgBox "Scan completed."
End if
End If
End Sub
Могу я использовать patch-коды для разделения пакетных заданий? Если да, как мне определить конец пакетного заания? Вы можете разделять пакетные задания, если будете использовать возможность CAP_JOBCONTROL. Вот пример для Visual Basic:
Dim jobsCounter As Integer
Private Sub Form_Load()
jobsCounter = -1
End Sub
Private Sub Scan_Click()
VSTwain1.StartDevice
VSTwain1.maxImages = 1
VSTwain1.showUI = 0
VSTwain1.disableAfterAcquire = 1
VSTwain1.tiffMultiPage = 1
VSTwain1.OpenDataSource
' 1 - Detect and include job separator and continue scanning.
' 3 - Detect and exclude job separator and continue scanning.
VSTwain1.jobControl = 1
jobsCounter = jobsCounter + 1
VSTwain1.Acquire
End Sub
Private Sub VSTwain1_PostScan(ByVal flag As Long)
If flag <> 0 Then
If VSTwain1.errorCode <> 0 Then
MsgBox (VSTwain1.errorString)
End If
Else
If VSTwain1.endOfJob = 1 Then
jobsCounter = jobsCounter + 1
Else
VSTwain1.SaveImage 0, "c:\job"+Str(jobsCounter)+".tif"
End If
End If
End Sub
.....
Я должен знать когда изображение будет получено в программе, но я не могу использовать событие PostScan. Как мне решить эту проблему? Начиная с версии 3.0 Вы можете воспользоваться методом AcquireModal чтобы решить эту проблему. Вот пример для Visual Basic:
VSTwain1.appProductName = "MyTwainApplication"
If VSTwain1.StartDevice() Then
VSTwain1.SelectSource
VSTwain1.showUI = True
While VSTwain1.AcquireModal() = 1
Set Image1.Picture = VSTwain1.GetCurrentImage()
If VSTwain1.SaveImage(0, "c:\test.tiff") = 0 Then
MsgBox (VSTwain1.errorString)
End If
Wend
Else
MsgBox VSTwain1.errorString
End If
Могу я получить изображения с глубиной цвета в 48 бит на пиксел? Да. Начиная с версии 3.0 появилась возможность получать цветные изображения с глубиной цвета в 48 бит на пиксел и серые изображения с глубиной цвета в 16 бит на пиксел. Эти изображения могут быть сохранены без потери глубины цвета только в файлах формата TIFF. Когда я использую сканер HP ScanJet теряется пол дюйма в верхней части изображения и добавляется черный прямоугольник высотой в пол дюйма в нижней части изображения. Почему? Для решения этой проблемы Вам нужно изменить значение свойства pageSize с A4 на USLETTER. Могу я сохранить полученные изображения в OLE-поле таблицы MS Access? Да. Вы можете сделать это. Для этого необходимо использовать метод GetImageAsDIB. Вот пример для MS Access ("OrderImage" это OLE-поле таблицы):
Option Compare Database
Option Explicit
Private Sub Form_AfterUpdate()
On Error GoTo error1
Image1.PictureData = Me![OrderImage]
Exit Sub
error1:
Image1.Picture = ""
End Sub
Private Sub Form_Current()
On Error GoTo error1
Image1.PictureData = Me![OrderImage]
Exit Sub
error1:
Image1.Picture = ""
End Sub
Private Sub BAcquire_Click()
With VSTwain1
.StartDevice
If .SelectSource = 1 Then
.autoCleanBuffer = 1
.maxImages = 1
.showUI = 1
.Acquire
End If
End With
End Sub
Private Sub VSTwain1_PostScan(ByVal flag As Long)
If flag <> 0 Then
If VSTwain1.errorCode <> 0 Then
MsgBox VSTwain1.errorString
End If
Else
If VSTwain1.numImages > 0 Then
If IsNull(Me!OrderName) Then ' новая запись?
Me![OrderName] = " "
Me![OrderName] = "Order N" + Str(Me!Index)
End If
Me![OrderImage] = VSTwain1.GetImageAsDIB(0)
If VSTwain1.errorCode <> 0 Then
MsgBox VSTwain1.errorString
End If
Form.Refresh
End If
End If
End Sub
Могу я сохранять полученные изображения в таблице MS SQL сервера? Да. Вы можете сделать это. Для этого необходимо использовать метод GetImageAsDIB. Вот пример для C# как сохранить изображение в таблицу SQL сервера:
private void SaveToSql_Click(object sender, System.EventArgs e)
{
byte[] dib = (byte[]) VSTwain1.GetImageAsDIB(0);
int imageSize = 14 + dib.Length;
int imageOffset = 14 + 40;
int imageBPP = VSTwain1.GetImageBPP(0);
if (imageBPP == 1) imageOffset += 2*4;
else if (imageBPP == 8) imageOffset += 256*4;
byte[] image = new byte[imageSize];
Array.Clear(image,0,imageSize);
// BITMAPFILEHEADER
image[0] = (byte)'B';
image[1] = (byte)'M';
image[2] = (byte)(imageSize&0xFF);
image[3] = (byte)((imageSize&0xFF00)>>8);
image[4] = (byte)((imageSize&0xFF0000)>>16);
image[5] = (byte)((imageSize&0xFF000000)>>24);
image[10] = (byte)(imageOffset&0xFF);
image[11] = (byte)((imageOffset&0xFF00)>>8);
image[12] = (byte)((imageOffset&0xFF0000)>>16);
image[13] = (byte)((imageOffset&0xFF000000)>>24);
Array.Copy(dib,0,image,14,dib.Length);
// Insert the image into the database
SqlConnection myConnection = new SqlConnection (@"server=(local);
database=northwind;uid=sa;pwd=");
try
{
myConnection.Open();
SqlCommand myCommand = new SqlCommand("DELETE FROM Images WHERE ImageID=1",
myConnection);
myCommand.ExecuteNonQuery();
myCommand = new SqlCommand ("INSERT INTO Images "
+ "(Image, ImageID) VALUES (@Image, @ImageID)", myConnection);
myCommand.Parameters.Add("@Image", image);
myCommand.Parameters.Add("@ImageID", 1);
myCommand.ExecuteNonQuery();
MessageBox.Show("Image is saved successfully.");
}
finally
{
myConnection.Close();
}
}
А вот пример для C# как получить ранее сохраненное изображение из таблицы SQL сервера:
private void BGetImageFromSql_Click(object sender, System.EventArgs e)
{
SqlConnection myConnection = null;
try
{
myConnection = new SqlConnection(@"server=(local);
database=northwind;uid=sa;pwd=");
SqlCommand myCommand = new SqlCommand("SELECT Image FROM Images
WHERE ImageID=1", myConnection);
myConnection.Open();
// Get the image from the database.
byte[] imagedata = (byte[])myCommand.ExecuteScalar();
if (imagedata != null)
{
if (pictureBox1.Image != null)
{
pictureBox1.Image.Dispose();
pictureBox1.Image = null;
}
MemoryStream stream = new MemoryStream(imagedata);
pictureBox1.Image = new Bitmap(stream);
MessageBox.Show("Image is loaded successfully.");
}
else
{
MessageBox.Show("Image does not exist in database.");
}
}
finally
{
myConnection.Close();
}
}
Я использую Visual FoxPro и у меня не возникает событие PostScan. Почему? Для решения этой проблемы необходимо добавить команду Application.AutoYield = .F. в начало приложения. |
|