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', то все без проблем.
И еще: можно ли получить хендл контрола на форме, если известен его номер?