Главная страница
    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.037 c
9-1088745772
X-Disa
2004-07-02 09:22
2004.10.31
Скролл карты


1-1097848708
greenrul
2004-10-15 17:58
2004.10.31
Определение языка системы.


14-1097732763
zsv
2004-10-14 09:46
2004.10.31
Реестр в Win XP


10-1055225989
landy
2003-06-10 10:19
2004.10.31
DCOM в сети без домена


14-1097247361
fag2000
2004-10-08 18:56
2004.10.31
Помогите перевести PHP strftime в человеческие дату и время.





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