Поддержка / Donate
 

WebMoney

Яндекс.Деньги

SMS.Копилка
Деньги@Mail.ru
Rupay
E-gold
PayPal

 

Благодарю за поддержку!

Лента RSS - Новости сайта Новости сайта
Лента RSS - Новости форума Новости форума
Добавить в закладки и поделиться Bookmark and Share

 

Архив исходников

 


Automatic translation

 
English German French
Italian Spanish Portuguese
Greece Japan Chinese
  Korean  

  

 

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Показ 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;




Источник - Проект "Delphi World" © Выпуск 2002 - 2004
Автор проекта: Акулов Николай



   Rambler's Top100             Яндекс цитирования