Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Delphi | PChar into Cardinal
Показать сообщение отдельно

Аватара для Savant

Старожил


Сообщения: 300
Благодарности: 6

Профиль | Сайт | Отправить PM | Цитировать


Netscaper, спасибо за хелпу, но с той проблемой (EListError) я уже рассчитался. Она происходила при вызове Form1.Controls[i] с несколько превышенным значением i. Соответственно заработали пребразования типов (я, кстати, нашел по ним наконец-то инфу в хелпе, в топике про округление дробных чисел ). Но никак не удается сменить жирность шрифта

Кстати, в чем я тут не прав?
Код: Выделить весь код
procedure TForm1.EditxChange(Sender: TObject);
var
  a,b: Integer; s: String;
begin
//  ShowMessage(IntToStr(Sizeof(s)));  { !REMOVE! : debug info }
  Form1.Controls[Form1.ActiveControl.ComponentIndex].GetTextBuf(PChar(s), SizeOf(s)); { <-- ошибка EAccessViolation in 'user32.dll' }
  Val(s,a,b);
  if b<>0 then Form1.Controls[Form1.ActiveControl.ComponentIndex].SetTextBuf(PChar('0')) else
    if a>999999 then Form1.Controls[Form1.ActiveControl.ComponentIndex].SetTextBuf(PChar('999999'));
end;
В указанном месте возникает ошибка. Если эту строчку закомментировать и подставить какое-нибудь значение s, например s:='123', то все без проблем.

И еще: можно ли получить хендл контрола на форме, если известен его номер?

Отправлено: 23:41, 12-01-2005 | #8

Название темы: Delphi | PChar into Cardinal