На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Компоненты / Показ Memo-поля в DBGrid 2 Сделать домашней страницей Добавить в избранное Написать писмо

Показ Memo-поля в DBGrid 2


Модем с бодуна трубку снимает:
Гав - тьфу б/\я, Мяу - б/\я, Ш-ш-ш, Ой - пи-и-и...

Используйте следующий код для обработки события OnDrawDataCell у TDBGrid. (Перед запуском программы создайте объект TMemoField для memo поля в Fields Editor).


 procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect:
 TRect;
   Field: TField; State: TGridDrawState);
 var
   P: array [0..1023] of Char; { MemoField buffer }
   BS: TBlobStream;
   S: string;
 begin
   if Field is TMemoField then
   with (Sender as TDBGrid).Canvas do
   begin
 { Table1Notes is the TMemoField }
     BS := TBlobStream.Create(Table1Notes, bmRead);
     FillChar(P, SizeOf(P), #0);
     BS.Read(P, SizeOf(P));
     BS.Free;
     S := StrPas(P);
 { remove carriage returns &  line feeds }
     while Pos(#13, S) >  0 do S[Pos(#13, S)] := ' ';
     while Pos(#10, S) >  0 do S[Pos(#10, S)] := ' ';
 { clear the cell }
     FillRect(Rect);
 { fill cell with memo data }
     TextOut(Rect.Left, Rect.Top, S);
   end;
 end;


Copyright ©   "DELPHI WORLD"   E-mail:   delphiworld@mail.ru  http://www.delphiworld.narod.ru
Источник получения информации: http://www.delphiworld.narod.ru
Hosted by uCoz