Обращение к свойству VCL по указателю.
От: Wazzup  
Дата: 03.09.08 12:41
Оценка:
Всем привет.
Вот не могу понять в чем проблема:

AnsiString *S;
S=&(Edit1->Text);
*S="Text";

Свойство Text не меняется.
Но почему-то это работает нормально:

int i;
i=&(Edit1->Tag);
*i=12345;

Свойство Tag=12345.
Подскажите где собака порылась то...
Re: Обращение к свойству VCL по указателю.
От: Аноним  
Дата: 03.09.08 12:49
Оценка:
Здравствуйте, Wazzup, Вы писали:

W>Всем привет.

W>Вот не могу понять в чем проблема:

W>AnsiString *S;

W>S=&(Edit1->Text);
W>*S="Text";

W>Свойство Text не меняется.

Потому что Свойство это не поле, а расширение борланда. Ваш код примерно нужно читать примерно так:
W>AnsiString *S;
W>S=&(Edit1->GetText());
W>*S="Text";
Что кстати еще и кучу портит потому что временный объект созданный обращением к свойству уже издох.

W>Но почему-то это работает нормально:

W>int i;
W>i=&(Edit1->Tag);
W>*i=12345;
А Tag видимо уже честное поле объекта.
Re[2]: Обращение к свойству VCL по указателю.
От: Wazzup  
Дата: 03.09.08 13:47
Оценка:
Ясно.
Я в итоге получаю адрес временной переменной в которую мне возвращает ф-ция GetText().
А до истинной переменной FText не добраться.
Re[3]: Обращение к свойству VCL по указателю.
От: Аноним  
Дата: 03.09.08 14:28
Оценка:
W>Я в итоге получаю адрес временной переменной в которую мне возвращает ф-ция GetText().
W>А до истинной переменной FText не добраться.

Истинной переменной может и не быть вовсе
Для того свойства и придуманы
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.