Главная страница
    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.038 c
14-1097412598
Вова
2004-10-10 16:49
2004.10.31
Преобразование файлов AVI в MPG или в MPEG


1-1098084343
NewDelpher
2004-10-18 11:25
2004.10.31
Точки останова


1-1097742256
1008
2004-10-14 12:24
2004.10.31
Должно быть несколько форм, но существовать должна одна


1-1097749139
UserUserov
2004-10-14 14:18
2004.10.31
DOS команды


1-1097595647
serg128
2004-10-12 19:40
2004.10.31
Как в TTreeView выбрать нескотько веток?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский