Форум: "Прочее";
Текущий архив: 2012.04.15;
Скачать: [xml.tar.bz2];
ВнизСюрпризы от предыдущих разработчиков Найти похожие ветки
← →
ReadOnly (2011-12-09 20:23) [0]Бросаю значиццо на форму TEdit, устанавливаю readOnly в true. Не работает. Все вводится и редактируется. Ищу в коде хоть что-то похожее на ReadOnly - нету ничего. Тупил минут 20, прежде чем догадался посмотреть, а не унаследована ли форма от чего-нибудь этакого. И таки да. А вот интересно, кому в наследство досталась самая удивительная багофича?
← →
asail © (2011-12-09 21:14) [1]
> ReadOnly (09.12.11 20:23)
> прежде чем догадался посмотреть, а не унаследована ли форма
> от чего-нибудь этакого
Неужели от TDBGrid форма унаследована?.. :)
А если серьезно, то в чем сюрприз-то?
← →
ReadOnly (2011-12-09 21:36) [2]>А если серьезно, то в чем сюрприз-то?
В багах компилятора? В глючности IDE? Вопросы, вопросы
← →
SQLEX © (2011-12-09 21:43) [3]
> asail © (09.12.11 21:14) [1]
procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
begin
for i := 0 to ComponentCount - 1 do
begin
if Components[i] is TEdit then
TEdit(Components[i]).ReadOnly := False;
end;
end;
TForm2 = class(TForm1)
как тут edit не настраивай, будет не ридонли
← →
asail © (2011-12-09 22:14) [4]
> SQLEX © (09.12.11 21:43) [3]
Это я понимаю... Я не понимаю, в чем баг? Если в форме-предке есть определенная логика установки того или иного свойства у контролов, то, наследуясь от нее, будь добр ей следовать...
И эта... Никто не мешает сделать так:procedure TForm2.FormCreate(Sender: TObject);
var
i: integer;
begin
inherited;
for i := 0 to ComponentCount - 1 do
begin
if Components[i] is TEdit then
TEdit(Components[i]).ReadOnly := True; //ну или че тебе тут надо
end;
end;
← →
ReadOnly (2011-12-09 22:43) [5]> Если в форме-предке есть определенная логика установки того или иного >свойства у контролов, то, наследуясь от нее, будь добр ей следовать.
Только никто так и не смог вспомнить, а зачем предыдущий разработчик унаследовался именно от этого. А хуже всего: никто не помнит, а зачем оно вообще было сделано именно так.
← →
sniknik © (2011-12-09 23:00) [6]склероз и нежелание/кривое написание комментариев действительно страшный баг... но только при чем здесь компилятор или IDE?
← →
ReadOnly (2011-12-09 23:37) [7]>склероз и нежелание/кривое написание комментариев действительно страшный >баг... но только при чем здесь компилятор или IDE?
А причем тут склероз, ежели я оное на текущей работе увидел впервые. А что касается "компилятор или IDE?", то это ответ asail © . Они в данном случае совершенно ни при чем.
← →
asail © (2011-12-09 23:55) [8]
> ReadOnly (09.12.11 22:43) [5]
Т.е. вся проблема в отсутствии документации и вразумительных комментариев в коде. Так и хде ж сюрприз обещанный? Что в этом такого необычного?
Я это к чему... Сама по себе ситуация, описанная в [0] ничем таким страшным, необычным или неправильным не является. В отличии от отсутствия документации.
← →
Dennis I. Komarov © (2011-12-10 00:03) [9]Indy...
← →
MastaK © (2011-12-10 00:04) [10]Приииз,в студию!!!
← →
Юрий_ (2011-12-10 00:31) [11]С некоторых пор пришел к выводу, что наследование форм в дизайне - очень плохой подход. А если ни дай бог, несколько уровней, то дело совсем дрянь. Именно поэтому - потому, что периодически приходится тратить лишнее время на поиск причин подобных странностей.
А если где-нибудь в предке еще и цикл по компонентам как в [4], ситуация усугубляется.
Корень проблем при таком подходе кроется в невозможности снизить видимость компонентов.
← →
Игорь Шевченко © (2011-12-10 00:34) [12]
> С некоторых пор пришел к выводу, что наследование форм в
> дизайне - очень плохой подход
Странно
← →
Dennis I. Komarov © (2011-12-10 00:37) [13]
> С некоторых пор пришел к выводу, что наследование форм в
> дизайне - очень плохой подход. А если ни дай бог, несколько
> уровней, то дело совсем дрянь.
Весь генофонд тоже люди писали...
← →
Германн © (2011-12-10 00:48) [14]
> Юрий_ (10.12.11 00:31) [11]
>
> С некоторых пор пришел к выводу, что наследование форм в
> дизайне - очень плохой подход.
Чем тебя не устроил репозиторий?
← →
ReadOnly (2011-12-10 01:34) [15]asail © (09.12.11 22:14) [4]
> И эта... Никто не мешает сделать так:
Да так, примерно, и сделал. Тут же не стоит вопрос: "как забороть такое". Есть форма, сделано именно так, нафига - никто не помнит/не знает. А я так вообще ее впервые увидел.
P.S. На форме есть панелька со всякими плюшками. Подозреваю, что унаследовали из-за нее. А вот про штуку с эдитами забыли как-то
← →
* © (2011-12-10 01:41) [16]
> Подозреваю, что унаследовали из-за нее. А вот про штуку
> с эдитами забыли как-то
негодяи
← →
ReadOnly (2011-12-10 02:38) [17]>негодяи
Хуже. Подозреваю заговорЪ. Оне продались мировой закулисе, оно по dfm сразу видно
← →
_Юрий (2011-12-10 12:03) [18]
> Dennis I. Komarov © (10.12.11 00:37) [13]
> Весь генофонд тоже люди писали...
Я про визуальное наследование.
> Германн © (10.12.11 00:48) [14]
> Чем тебя не устроил репозиторий?
Не очень понял, как репозиторий может заменить наследование
← →
Dennis I. Komarov © (2011-12-11 21:48) [19]
> _Юрий (10.12.11 12:03) [18]
> Я про визуальное наследование.
А там мало? Или VCL отдельно? :)
← →
Jeer © (2011-12-11 21:52) [20]
> Юрий_ (10.12.11 00:31) [11]
>
> С некоторых пор пришел к выводу, что наследование форм в
> дизайне - очень плохой подход.
Сколько лет работаю в таком стиле - не обнаружил ничего плохого.
Доходило ло 5 уровней наследования.
Может проблема в "поваре" ?
← →
Юрий Зотов © (2011-12-11 23:07) [21]
> Юрий_ (10.12.11 00:31) [11]
> С некоторых пор пришел к выводу, что наследование форм в
> дизайне - очень плохой подход.
Это потому что:
"Не очень понял, как репозиторий может заменить наследование"
← →
OW © (2011-12-12 10:41) [22]
> asail © (09.12.11 22:14) [4]
> И эта... Никто не мешает сделать так:
никто, и это не глюк, конечно.
но это надо увидеть вовремя.
наследуясь от формы, как правило, что бы общий стиль сохранить. А решаю задачу свою. А если в общей форме датасет анализируется при выходе и что-то там делается с ним, что у меня уже убито благополучно
или на onChange что повешено, что тормоза включает
- вот и засада.
Правда, не на пол-дня, но тоже неприятно.
← →
vuk © (2011-12-12 11:15) [23]to Jeer © (11.12.11 21:52) [20]:
> Сколько лет работаю в таком стиле - не обнаружил ничего
> плохого.Доходило ло 5 уровней наследования.
Ну, тут как сказать... Проблем, самих по себе, конечно, нет. Ну, то есть всё работает. Правда, они могут начаться, если нужно будет поменять что-то в предках. Дело в том, что далеко не все изменения, сделанные в предке повлияют на потомков сразу, в ряде случаев придется принудительно делать в потомках "Revert to inherited". Если где-то были назначены дополнительные обработчики или сделаны изменения свойств - скажите им "до свидания". Собственно говоря, ровно те же проблемы имеем при использовании фреймов. Тут даже наследованием заниматься не обязательно.
Главная причина всего этого - идеология работы со свойствами компонентов (наличие dfm).
← →
Jeer © (2011-12-12 13:16) [24]
> vuk © (12.12.11 11:15) [23]
Ну что делать - есть особенности инструмента, их надо знать.
Да и при вводе, скажем, нового свойства в некий компонент, который уже использован в некотором проекте - тоже грабли.
Это свойство в инспекторе сразу и не увидишь.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2012.04.15;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.003 c