![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
with
100% © (2006-11-05 20:45:00)Смотрел справку и не понял. Возможноли использовать with в такой ситуации:
with Edit1, Edit2, Edit3, Memo1, Label1 do
Enabled := False;
У меня не получается, реагирует только последний контролл (Label1).
?
KilkennyCat (2006-11-05 23:41:00) [21]> koha © (05.11.06 23:36)
у меня исчо два замечания:
с чего Вы предположили, что данный код работает не со своей формой?
Зачем использовать сложную конструкцию if..then..if..then, если выполнение условия - логическое состояние?
Суслик (2006-11-05 23:40:00) [22]я бы явно в коде сделал
А.enabled := false;
B.enable := false;
и т.д.
Так понятней, когда в будущем код бущешь читать.
Но, конечно, во всем нужна мера. Прежде чем писать так или иначе нужно представлять целевое назначение кода. Также попытаться представить дальнейшую судьбу кода. Возможно код никто и никогда более не увидит - тогда пиши как тебе нравится и как быстрее. Возможно, что код будет поддерживаться, например, будут добавляться новые сущности, которым нужно выставлять Enabled. Далее также есть несколько вариантов - добавление контролов происходит раз в 3 года или каждые 2 недели. В первом случае в любом случае ты за 3 года забудешь все нафиг. Тебе все равно нужно будет читать и разбираться в коде (можно, конечно доку написать, которая поможет разобраться быстрее, но написание доки, которая будет понятна через несколько лет тоже задача непростая). Во втором случае, если тебе нужно править каждые 2 недели, то может стоит придумать какое-то обобщение - каким-то образом задавать все контролы, у которых нужно выставлять Enabled.
Одним словом, тут большое поле для творчества и... для накопления опыта (иногда придумаешь что-то офигительно красивое и "правильное" с программисткой точки зрения, но более никогда это не пригождается).
koha (2006-11-05 23:36:00) [23]> Percent (05.11.06 23:28) [11]
> Душевно...
Можно было и явно:
(form1.Controls[i] as TControl)..Enabled:=false;
И сверавно работало бы
KilkennyCat (2006-11-05 23:28:00) [24]> [9] koha © (05.11.06 23:25)
Ну, Леонид это уже предложил, во-первых, а во-вторых именно ТАК не надо.
Percent (2006-11-05 23:28:00) [25][9] koha © (05.11.06 23:25)
TControl(form1.Controls[i])
Душевно...
koha (2006-11-05 23:25:00) [26]Если так уж хочется все компоненты без разбору уныкнуть то можно сделать приблизительно так:
for I := 0 to Form1.ControlCount -1 do TControl(form1.Controls[i]).Enabled:=false;
или так:
for I := 0 to Form1.ComponentCount - 1 do begin
if TComponent(Form1.Components[i]).GetParentComponent = ClassName then
if Form1.Components[i] is Tcontrol then TControl(form1.Components[i]).Enabled:=false;
end;
Leonid Troyanovsky (2006-11-05 22:53:00) [27]
> KilkennyCat © (05.11.06 22:10) [7]
> А вот объединить их по общему признаку вполне возможно.
Пуркуа па?
Например, по общему паренту.
--
Regards, LVT.
KilkennyCat (2006-11-05 22:10:00) [28]> [6] Leonid Troyanovsky © (05.11.06 21:34)
Наверное, все-таки не самый лучший вариант, и далеко не всегда возможный.
А вот объединить их по общему признаку вполне возможно.
Leonid Troyanovsky (2006-11-05 21:34:00) [29]
> 100% (05.11.06 20:54) [3]
> Мне нужно все перечисленные.
Перечисленные поместить на панель,
которой и сделать Enabled.
--
Regards, LVT.
Anatoly Podgoretsky (2006-11-05 21:04:00) [30]> 100% (05.11.2006 20:54:03) [3]
Это обоснованные высказывания, у тебя дыра в знания, ты просто не знаешь как
работает Паскаль, оператор with и видимо справку не желаешь прочитать. Все
работает правильно в соответсвии с написаным кодом.
А насчет конференции, конечно обратил, иначе бы просто сообщение было бы
переправлено сюда.
Учи язык. Научись правильно задавать вопросы. Люби справку как отца своего.
Будут конкретные вопросы - можно будет поговорить.
Суслик (2006-11-05 21:02:00) [31]
> Мне нужно все перечисленные.
Т.е. нужно установить Enabled у всех перечисленных компонентов?
Так *точно* нельзя.
Пиши для каждого присвоение явно и дело с концом.
100% (2006-11-05 20:54:00) [32]Я не понимаю смысла вашего поста, исключительно какие-то необоснованные высказывания в сторону моей головы. Обратите внимание на то, в какую конференцию я пишу.
Мне нужно все перечисленные.
Anatoly Podgoretsky (2006-11-05 20:52:00) [33]> 100% (05.11.2006 20:45:00) [0]
А тебе на какой надо, смени порядок, чтобы он последним был.
Anatoly Podgoretsky (2006-11-05 20:51:00) [34]> 100% (05.11.2006 20:45:00) [0]
Возможно, но голову такую дурную надо, какие в природе не встречаются.
А диагноз простой, у тебя дырка в голове. Все работает в соответствии с
написаным и в соответствии с документацией.