здравствуйте!
вопрос у меня такого плана:
когда я создаю программно Label на форме - я не вижу этот самый лэйбл. Почему?
Вроде бы уже и все свойства перебрал прямо или косвенно отвечающие за прорисовку.
Может быть я принципиально что-то делаю не так?
Помогите плиз )
вот пример, при компиляции которого на форме нет лэйбла:
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
22-02-2008 19:03 | Комментарий к предыдущим ответам
>>> а вот
>>> L.Parent := Form1;
>>> действительно помогло
Это грубая ошибка. Вы разрабатываете класс... Правильнее будет так:
L.Parent := Self;
Почему это именно ошибка, а не недочёт, попробуйте ответить сами, сформулировав для себя различия между Form1 и Self
P.S. И старайтесь никогда не использовать автогенерируемые объявления форм. Их лучше удалять сразу после создания формы в дизайнере, чтобы не было соблазна использовать. Про то, что все формы, кроме главной, не должны быть автосоздаваемыми, я даже упоминать не буду... ;)
Это поможет Вам получить ответы на те вопросы по данной тематике, которые перед Вами еще не встали ;-)
* * *
to Shura ???:
>>> после изменения l.Caption, нужно обязательно сделать l.Refresh, иначе ты этого самого Caption не увидешь
Хм... Вы в этом уверены? Я как-то никогда Refresh не делал, но изменения в Caption видел. Или я как-то неправильно Вас понял?
И ещё... у тебя L.AutoSize := True;
Это значит, что ширина контрола будет зависеть от его содержимого. А L.Caption у тебя = '' :)
К тому же, после изменения l.Caption, нужно обязательно сделать l.Refresh, иначе ты этого самого Caption не увидешь.
L := TLabel.Create(Form1);
with L do begin
Caption := '1';
Visible := True;
Transparent := False;
AutoSize := True;
Top := 0;
Left := 0;
Font.Size :=8;
Font.Name := 'MS Sans Serif';
Font.Color := clBlack;
Color := clBlack;
end;//with
то
with Form1.Panel1.Compontnts[0] as TButton do begin
Caption = 'Кнопка';
Left = 10;
Top = 10;
Width = 100;
Height = 20;
end;//with
намного лучше читается.
ЗЫ чрезмерно увлекаться With правда тоже не стоит...
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.