Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2009, 09:30   #1
nusik
Форумчанин
 
Регистрация: 13.04.2009
Сообщений: 117
По умолчанию Ошибка Constant object cannot be passed as var parameter

Здравствуйте.
Выскакивает ошибка Constant object cannot be passed as var parameter.
Необходимо создать переменную и через неё работать.
Есть ли другой вариант?
Спасибо.
nusik вне форума Ответить с цитированием
Старый 15.05.2009, 09:32   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Приведите фрагмент кода на которую ругается Делфи. Чем Вам не нравится дополнительная промежуточная переменная?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 15.05.2009, 09:39   #3
nusik
Форумчанин
 
Регистрация: 13.04.2009
Сообщений: 117
По умолчанию

Вот фрагмент:
Код:
Delete(RichEdit1.Hint,1,1);
nusik вне форума Ответить с цитированием
Старый 15.05.2009, 09:51   #4
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Hint хоть и имеет тип string, но не поддается прямому редактированию.
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 15.05.2009, 11:44   #5
nusik
Форумчанин
 
Регистрация: 13.04.2009
Сообщений: 117
По умолчанию

например когда я в своей процедуре в качестве параметра пишу
Код:
var s:string
; тогда тоже может возникунуть ошибка, а если ,без вар то всё хорошо.
nusik вне форума Ответить с цитированием
Старый 15.05.2009, 11:49   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
например когда я в своей процедуре в качестве параметра пишу
Код в студию.
А с методами и свойствами так поступать негоже, ибо Hint это фактически процедура а не простая переменка.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.05.2009, 12:05   #7
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Чтобы не было ошибки сделайте так:
Код:
Procedure TForm1.Button1Click(Sender: TObject);
Var
S: String;
Begin
S:=RichEdit1.Hint;
Delete(S,1,1);
RichEdit1.Hint:=S;
End;
А прямое изменение не прокатит. И не только с RichEdit.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 15.05.2009, 21:00   #8
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Stilet прав. Класс содержит поля, методы и свойства. Вы напоролись не на поле, а на свойство. А свойства существуют как раз для того, чтобы грамотно осуществлять доступ к полям класса. Иными словами в Вашем случае Hint сделан свойством как раз для того, что бы Вы так и не смогли поступить.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка - [Error] GraphUnit.pas(104): Types of actual and formal var parameters must be identical Ash Общие вопросы Delphi 8 30.10.2012 21:01
Var Черничный Общие вопросы Delphi 4 17.07.2008 00:44
Помогите найти ошибку Constant object cannot be passed as var parameter N!ckeL Общие вопросы Delphi 2 18.04.2008 15:36
Ошибка! ActiveX component can't create object! Insainer Microsoft Office Access 0 27.01.2008 11:13
как получить Enhanced Disk Parameter Table(EDPT)? _alex_k Win Api 2 13.12.2007 18:13