Tdbf и GetText

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Tdbf и GetText

Сообщение amateur » 09.08.2007 17:37:28

Привет...
Почему в лазаре SetText GetText:
{procedure TForm1.Dbf1NAZB1GetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
//
end; }

вызывают ошибку :

Unit1.pas(29,52) Error: Duplicate identifier "Text"

Может есть какой финт???
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Сообщение Padre_Mortius » 09.08.2007 17:55:43

Потому что Text это зарезервированное слово в Lazarus'е. и Его необходимо заменить на другой идентификатор.
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение alexs » 09.08.2007 20:56:29

Padre_Mortius писал(а):Потому что Text это зарезервированное слово в Lazarus'е. и Его необходимо заменить на другой идентификатор

не вводите в заблуждение - просто свойство Text есть у самой формы (единственное - оно не опубликованно) - поэтому и дубликат

это глюк объявления типа в модуле DB - просто перепиши процедуру по виду:
Код: Выделить всё
procedure TForm1.Dbf1NAZB1GetText(Sender: TField; var AText: string;DisplayText: Boolean);

и всё заработает
кстати - это скорее глюк дельфи VCL - и по наследству он перекочевал в FCL - на мой взгляд компилятор тут ругается совершенно справедливо
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение Padre_Mortius » 10.08.2007 12:42:02

не вводите в заблуждение - просто свойство Text есть у самой формы (единственное - оно не опубликованно) - поэтому и дубликат

Вот вы как раз и вводите в заблуждение. Такого свойства нет у TForm (можете посмотреть в модуле Forms.pp). Но в любом случае, данная переменная используется Lazarus и подлежит замене.

Lazarus очень не равнодушно относится к таким словам, как Name, Text.
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение alexs » 10.08.2007 18:58:30

берём букварь, долго его зубрим насчёт того, от чего происходит наследование TForm, в чём разница между свойстви Text и Caption.

у ЛЮБОГО потомка от TControl есть два свойства Text и Caption - фактически это одно и тоже
просто в зависимости от необходимости от типа компонента публикуется либо то свойство либо то.
в исходниках это объявлено как:
property Caption: TCaption read GetText write SetText stored IsCaptionStored;
property Text: TCaption read GetText write SetText;
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение amateur » 15.08.2007 15:23:55

alexs - спасибо, заработало.....

Вопрос возник из-за перекодировки в компоненте TDBF. Решил пойти через гет и сет... По другому я не знаю как сделать. Знаю, что проблема в лазаре, но какая - еще не дорос :(... Форум перелопатил, попалась одна ветка, попробывал, не сработало. Хотя, обидно, в дельфине функция работает....
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Сообщение alexs » 15.08.2007 15:27:50

какая операционка?
в какой локале создан DBF
в какой локале запускается программа?

но в принципе направление верное
TDbf практически не умеет изменять локали текста
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение amateur » 15.08.2007 15:35:19

fpc-2.1.5-20070808-win32

DBF:
версия - 3
кодировка - дос

Жаль альтернативы нет :(. Сам компонент сравнительно нормальный, токо не хватает маленького свойства :). В одних компонентах доступа (название не помню) - красота: кодировку модна выбирать. И ему одинаково. Но это в дельфине:(.
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32

Сообщение alexs » 15.08.2007 15:48:25

поробуй свойство OnTranslate
я правдо не уверен что оно работает как надо
но в коде вроде используется даже :-)
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение amateur » 15.08.2007 17:16:18

:) :) :) :) я и скудноватую книжку прочитал. Фишка в том, что в дельфине все работает, а лазарь не очень хочет делать подобное.
Пробывал: OnTranslate и DBFGlobals и еще разный мазо...зм. Эмоций много, а работа стоит :(. Решил сделать все оочень простым способом.... (Хочу присмотреться к лазарю и потом перейти в лин... А для работы нуно обращаться к дбфникам да еще и в досе. Дык что пока, радосной новости себе я не устрою.) Дело хлопотное, но интересное :).
Аватара пользователя
amateur
энтузиаст
 
Сообщения: 552
Зарегистрирован: 03.08.2007 10:15:32


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29

Рейтинг@Mail.ru