32 Урока Borland Delphi

         

и обновление информации при его


Итак, сперва нужно заполнить таблицу:
{создание и инициализация OLE-объекта во время выполнения}
procedure TForm1.OLEInitClick(Sender: TObject);
var
OLE : TOLEContainer;
Info : Pointer;
begin
{создание OLE-контейнера}
OLE:=TOLEContainer.Create(Self);
OLE.Name:='Temp_OLE';
OLE.Parent:=Self;
{вызов диалога инициализации OLE-объекта}
if InsertOLEObjectDlg(Self, 0, Info) then begin
OLE.PInitInfo := Info;
ReleaseOLEInitInfo(Info);
end
else
OLE.Free;
end;
{уничтожение OLE-контейнера}
procedure TForm1.OLEFreeClick(Sender: TObject);
begin
FindComponent('Temp_OLE').Free;
end;
{сохранение OLE-объекта в BLOB поле}
procedure TForm1.InsertClick(Sender: TObject);
var
OLE : TOLEContainer;
TBS : TBlobStream;
begin
OLE:=FindComponent('Temp_OLE') as TOLEContainer;
if Assigned(OLE) then
with OLE do begin
{добавляем в таблицу новую запись}
Table1.Insert;
{создаем поток, связанный с BLOB полем}
TBS:=TBlobStream.Create(Table1.FieldByName('OLE') as
TBLOBField, bmReadWrite);
{сохраняем OLE-объект в поток}
SaveToStream(TBS as TStream);
{уничтожаем поток}
TBS.Free;
Exit;
end;
end;
{завершаем редактирование таблицы}
procedure TForm1.PostClick(Sender: TObject);
begin
if Table1.State <> dsBrowse then Table1.Post;
end;
 
 
 
 
Вторая часть проблемы - чтение OLE-объекта из таблицы и обновление информации при его модификации. Здесь можно предложить динамически создавать OLE-контейнер и считывать OLE-объект из потока, связанного с BLOB полем. И делать это каждый раз при переходе на новую запись (перехватывать для DataSource событие OnDataChange). Либо вытаскивать информацию по запросу пользователя, а уничтожать OLE-контейнер при переходе на новую запись.
{считывание OLE-объекта из таблицы}
procedure TForm1.ViewClick(Sender: TObject);
var
OLE : TOLEContainer;
TBS : TBLOBStream;
begin
{создаем OLE-контейнер}
OLE:=TOLEContainer.Create(Self);
OLE.Parent:=Self;
OLE.Name:='Temp_OLE';
{создаем поток для BLOB поля}
TBS:=TBLOBStream.Create(Table1.FieldByName('OLE') as

Содержание  Назад  Вперед







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий