Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-1078416763
AlexLine
2004-03-04 19:12
2004.03.28
Загрузка изображиний в TImage


14-1077711896
Mystic
2004-02-25 15:24
2004.03.28
Работы Р. Пенроуза (атака тайны разума, ИИ)


6-1074541921
Vik_Mix
2004-01-19 22:52
2004.03.28
ServerSocket


9-1049571866
DJ GRAFIKI
2003-04-05 23:44
2004.03.28
Подскажите как установить заголовочные файлы directx 9 на Делфи 7


1-1078870701
tytus
2004-03-10 01:18
2004.03.28
данные в TreeView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский