Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Вниз

Показ Memo-поля в DBGrid   Найти похожие ветки 

 
Брат   (2004-09-30 15:03) [0]

Есть у меня кусок кода, который показывает в DBGrid содержимое мемо-поля:
procedure TfrmMain.DBGridTablesDrawDataCell(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
       // TablesTableName - это TMemoField:
       BS:=TBlobStream.Create(TablesTableName,bmRead);
       FillChar(P,SizeOf(P),#0);
       BS.Read(P,SizeOf(P));
       BS.Free;
       S:=StrPas(P);
       // Заменяем возврат каретки на пробел :
       while Pos(#13,S)>0 do S[Pos(#13,S)]:=" ";
       while Pos(#10,S)>0 do S[Pos(#10,S)]:=" ";
       // Очищаем ячейку:
       FillRect(Rect);
       // Выводим текст в ячейку:
       TextOut(Rect.Left,Rect.Top,S);
     end;
end;

Есть таблица Tables, которая создается динамически с полями:
FieldDefs.Add("TableName",ftMemo,0,true);
FieldDefs.Add("FileName",ftString,30,true);
FieldDefs.Add("Date",ftDate,0,true);

На строке
BS:=TBlobStream.Create(TablesTableName,bmRead);
выдается ошибка, что он не знает что такое TablesTableName
(хотя это ведь я обращаюсь к полю TableName таблицы Tables).

Не пойму в чем дело. Помогите пожалуйста. Заранее благодарен.


 
Ozone ©   (2004-09-30 15:16) [1]

Что за ошибка?


 
Брат   (2004-09-30 15:20) [2]

При компиляции кода:
Undeclared identifier: "TablesTableName"


 
Vlad ©   (2004-09-30 15:25) [3]

а если вместо TablesTableName
написать
Tables.FieldByName("TableName")
?
Если не поможет, то скорее всего Tables лежит в другом модуле, который не прописан в USES


 
roottim ©   (2004-09-30 15:27) [4]

> TablesTableNameя тоже незнаю что такое TablesTableName... нигде в коде его нет, кроме как в Create.. откуда ты вообще его взял ?


 
sniknik ©   (2004-09-30 15:27) [5]

это предопределенное поле (двойной клик на таблице мышкой и по правой кнопке добавить все поля, то что у тебя будет с memo смело вставляй вместо этого)
или можеш заменить на это Tables.fieldbyname("TableName")


 
Брат   (2004-09-30 15:28) [6]

Пробовал, пишет:
Incompatible types: "TBlobField" and "TField"


 
Брат   (2004-09-30 15:30) [7]


> sniknik ©   (30.09.04 15:27) [5]
> это предопределенное поле (двойной клик на таблице мышкой
> и по правой кнопке добавить все поля, то что у тебя будет
> с memo смело вставляй вместо этого)
> или можеш заменить на это Tables.fieldbyname("TableName")

дело в том что "двойной клик" не помогает, т.к. таблица создается динамически...
может кто знает как это действие сделать программно


 
roottim ©   (2004-09-30 15:31) [8]

TBlobField(Tables.FieldByName("TableName"))


 
Vlad ©   (2004-09-30 15:31) [9]


> Брат   (30.09.04 15:28) [6]
> Пробовал, пишет:
> Incompatible types: "TBlobField" and "TField"


> Брат   (30.09.04 15:28) [6]

Ну так преобразуй к TBlobField
TBlobField(Tables.FieldByName...)


 
Ozone ©   (2004-09-30 15:32) [10]

Брат   (30.09.04 15:28) [6]

см. roottim ©   (30.09.04 15:27) [4] он же все ясно написал.


 
Брат   (2004-09-30 15:34) [11]


> roottim ©   (30.09.04 15:31) [8]
> TBlobField(Tables.FieldByName("TableName"))

точно! :)
всем спасибо большое



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.052 c
4-1096195090
tormoz
2004-09-26 14:38
2004.10.31
Работа с модемом


14-1097137982
КаПиБаРа
2004-10-07 12:33
2004.10.31
Пишу ТЗ.


4-1096284308
Rifo
2004-09-27 15:25
2004.10.31
Отключение монитора.


14-1097673993
Ashh
2004-10-13 17:26
2004.10.31
XPManifest


14-1097426125
Beginner707
2004-10-10 20:35
2004.10.31
Создание объектов VCL Run-Time





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский