Главная страница
    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.043 c
4-1071231196
Talla2k
2003-12-12 15:13
2004.03.28
как скрыть программу


9-1062410426
Cyber Chaynik
2003-09-01 14:00
2004.03.28
3D на основе фото


3-1077370184
Nous Mellon
2004-02-21 16:29
2004.03.28
Сортировка и ADO


1-1079005161
dima_shapkin
2004-03-11 14:39
2004.03.28
Загрузка компонента


1-1078416237
Тамплиер
2004-03-04 19:03
2004.03.28
Проверка версии





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский