Мне нужно сделать тест. Базу вопросов хочу хранить как file of record. Проблема заключается в том, что в тесте должны быть картинки. Хотел сделать как поле записи. Но вот проблема: в файл не записывается ни поле :TImage ни :TPicture ни даже :TBitmap. Как это можно осуществить?
А для этого ни разу не надо знать номер строки... Любая операция в Гриде производится с текущей строкой. Для ее удаления можно применить:
DBGrid1.DataSource.DataSet.Delete;
Цитата
Поэтому думал сделать так: если выделена запись, то вывести ее значение поля OLE в Image, который где-то бы на форме находился.
Правильно думал... Я приводил код отображения картинки из БД в TImage... Если его повесить на событие DBGrid->DataSource->OnDataChange, это будет выполнять поставленную задачу:
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField); var bStream: TADOBlobStream; bm: TBitmap; begin if not DBGrid1.DataSource.DataSet.FieldByName('image').IsNull then begin bStream := TADOBlobStream.Create(TBlobField(DBGrid1.DataSource.DataSet.FieldByName('image')), bmRead); try bm := TBitmap.Create; bm.LoadFromStream(bStream); Image2.Picture.Bitmap.Assign(bm); bm.Free; finally bStream.Free; end; end else Image2.Picture := nil; // поле image пустое... Очищаем end;
Это тебе не самописная база, где все пришлось бы делать вручную, и отслеживать текущую запись, и ловить момент перехода по списку записей... В ADO уже все есть...