Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Внизпочему не получается получить имя От TComponent Найти похожие ветки
← →
КомофОнСамый (2004-03-09 21:56) [0]
for i:=0 to ComponentCount-1 do
begin
if(Components[i] is TEdit)then
if(Copy((Components[i] as TObject).Name,1,3)="Tax")then
with(Components[i] as TEdit)do
if(Trim(Text)<>"")then
begin
ShowEvent("налоговое поле не должно быть пустым...",1);
SetFocus;
Exit;
end;
end;
делаю такой хитрый фокус - думал что должно сработать ан нет.
задача такая - проверить все TEdit, и если его имя начинается на TaxХХХХХ - то проверить чтоб этот TEdit не был пустым.
← →
Германн © (2004-03-09 22:09) [1]Так ты же пытаешся получить имя не от TComponent ,а от TObject.
← →
Anatoly Podgoretsky © (2004-03-09 22:23) [2]У TObject нет свойства Name
← →
КомофОнСамый (2004-03-10 11:11) [3]на самом деле было TEdit, в поиске решения исправил и вставил сюда не посмотревь.
у меня возникло подозрение - а оператор with не переопределяет ли на свои Component.
просто у меня там такая конструкция:
with(TaxStatus)do
if(Trim(Text)="")or(Trim(Text)="00")then
begin
for i:=0 to ComponentCount-1 do
begin
if(Components[i] is TEdit)then
if(Copy((Components[i] as TEdit).Name,1,3)="Tax")then
with(Components[i] as TEdit)do
if(Trim(Text)<>"")then
begin
ShowEvent("налоговое поле не должно быть пустым...",1);
SetFocus;
Exit;
end;
end;
end;
← →
Внук © (2004-03-10 11:17) [4]Забудьте ж, наконец, про оператор with (крик души). И будет вам счастье. Да, и Copy((Components[i] as TEdit).Name,1,3) можно упростить Copy(Components[i].Name,1,3)
← →
MU (2004-03-10 11:19) [5]//if(Trim(Text)<>"")then
if(Trim(Text)= "")then //!!!
← →
КомофОнСамый (2004-03-10 11:26) [6]2Внук
а почему? у TaxStatus получается что есть свои Components?
2MU
да вы правы, перебиваю пример упростив, на самом деле там
if(Trim(Text)<>"")AND(Trim(Text)<>"00")then
← →
MU (2004-03-10 11:31) [7]Так
if (Trim(Text) = "") OR (Trim(Text)<> "00") then
или
if StrToFloatDef(Trim(Text), 0) = 0 then
← →
КомофОнСамый (2004-03-10 11:53) [8]2MU
без разницы - проблема не в этом
← →
Внук © (2004-03-10 11:53) [9]>>КомофОнСамый (10.03.04 11:26) [6]
>>у TaxStatus получается что есть свои Components?
А я откуда знаю, какого он типа? :)) Вот именно во избежание таких двусмысленностей. Сам-то через месяц сможешь свою программу прочитать?
← →
КомофОнСамый (2004-03-10 15:00) [10]with вроде как уменьшает написание кода
а как переопределить действие with?
← →
Внук © (2004-03-10 15:05) [11]Угу, уменьшает, а еще увеличивает геморрой и затрудняет чтение программы. В каком смысле переопределить?
← →
КомофОнСамый (2004-03-10 15:24) [12]вернее отменить действие with
← →
Кщд (2004-03-10 15:29) [13]явно указать хозяина св-ва ComponentCount
← →
Игорь Шевченко © (2004-03-10 15:53) [14]Внук © (10.03.04 15:05)
Да вроде здесь With правильно указан...
if Components[i] is TEdit then
with TEdit(Components[i]) do
if (Copy(Name,1,3) = "Tax") and (Trim(Text) = "") then
begin
ShowEvent("налоговое поле не должно быть пустым...",1);
SetFocus;
Exit;
end;
← →
sniknik © (2004-03-10 16:25) [15]тоже не люблю with
Игорь Шевченко © (10.03.04 15:53) [14]
а делается это к примеру на onExit их Text.x.
← →
sniknik © (2004-03-10 16:30) [16]сорри немного не в "кассу"(непонятно)
но вот что хотел сказать какой Name возмет для обработки в этой конструкции от компонента или от формы MainForm.Name? непонятки.
← →
Vuk © (2004-03-10 16:38) [17]IMHO with, при понимании, как он работает, конечно, мешает не больше, чем self в методах. Естественно, когда with применяется к нескольким объектам одновременно (или with вложены), то путаница в голове неизбежна, но в этом случае лучше, действительно, with не использовать.
← →
Внук © (2004-03-10 17:09) [18]>>Игорь Шевченко © (10.03.04 15:53) [14]
Скорее всего, правильно. Я к тому, что надо вообще стремиться обходиться без with, кроме самых простейших случаев, оно нагляднее и проще. Это, конечно, только IMHO, но в русской транскрипции :))
← →
Игорь Шевченко © (2004-03-10 17:55) [19]sniknik © (10.03.04 16:25)
> тоже не люблю with
Ну и что ? А вот Borland любит его. Всякий овощ, будучи употребленным к месту и вовремя приносит свою пользу.
> а делается это к примеру на onExit их Text.x.
А как и когда делается - целиком и полностью зависит от задачи. Задача здесь не приведена, гадания бессмысленны.
Внук © (10.03.04 17:09)
> Я к тому, что надо вообще стремиться обходиться без with,
> кроме самых простейших случаев, оно нагляднее и проще
Не скажи, всякая крайность вредна. Писать длинную цепочку методов на немецком языке тоже нечитабельно.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.035 c