Tdbf и GetText
Модератор: Модераторы
Tdbf и GetText
Привет...
Почему в лазаре SetText GetText:
{procedure TForm1.Dbf1NAZB1GetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
//
end; }
вызывают ошибку :
Unit1.pas(29,52) Error: Duplicate identifier "Text"
Может есть какой финт???
Почему в лазаре SetText GetText:
{procedure TForm1.Dbf1NAZB1GetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
//
end; }
вызывают ошибку :
Unit1.pas(29,52) Error: Duplicate identifier "Text"
Может есть какой финт???
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
- alexs
- долгожитель
- Сообщения: 4067
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Padre_Mortius писал(а):Потому что Text это зарезервированное слово в Lazarus'е. и Его необходимо заменить на другой идентификатор
не вводите в заблуждение - просто свойство Text есть у самой формы (единственное - оно не опубликованно) - поэтому и дубликат
это глюк объявления типа в модуле DB - просто перепиши процедуру по виду:
Код: Выделить всё
procedure TForm1.Dbf1NAZB1GetText(Sender: TField; var AText: string;DisplayText: Boolean);
и всё заработает
кстати - это скорее глюк дельфи VCL - и по наследству он перекочевал в FCL - на мой взгляд компилятор тут ругается совершенно справедливо
-
Padre_Mortius
- энтузиаст
- Сообщения: 1265
- Зарегистрирован: 29.05.2007 17:38:07
- Откуда: Спб
не вводите в заблуждение - просто свойство Text есть у самой формы (единственное - оно не опубликованно) - поэтому и дубликат
Вот вы как раз и вводите в заблуждение. Такого свойства нет у TForm (можете посмотреть в модуле Forms.pp). Но в любом случае, данная переменная используется Lazarus и подлежит замене.
Lazarus очень не равнодушно относится к таким словам, как Name, Text.
- alexs
- долгожитель
- Сообщения: 4067
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
берём букварь, долго его зубрим насчёт того, от чего происходит наследование TForm, в чём разница между свойстви Text и Caption.
у ЛЮБОГО потомка от TControl есть два свойства Text и Caption - фактически это одно и тоже
просто в зависимости от необходимости от типа компонента публикуется либо то свойство либо то.
в исходниках это объявлено как:
property Caption: TCaption read GetText write SetText stored IsCaptionStored;
property Text: TCaption read GetText write SetText;
у ЛЮБОГО потомка от TControl есть два свойства Text и Caption - фактически это одно и тоже
просто в зависимости от необходимости от типа компонента публикуется либо то свойство либо то.
в исходниках это объявлено как:
property Caption: TCaption read GetText write SetText stored IsCaptionStored;
property Text: TCaption read GetText write SetText;
alexs - спасибо, заработало.....
Вопрос возник из-за перекодировки в компоненте TDBF. Решил пойти через гет и сет... По другому я не знаю как сделать. Знаю, что проблема в лазаре, но какая - еще не дорос
... Форум перелопатил, попалась одна ветка, попробывал, не сработало. Хотя, обидно, в дельфине функция работает....
Вопрос возник из-за перекодировки в компоненте TDBF. Решил пойти через гет и сет... По другому я не знаю как сделать. Знаю, что проблема в лазаре, но какая - еще не дорос
Пробывал: OnTranslate и DBFGlobals и еще разный мазо...зм. Эмоций много, а работа стоит
