Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];

Вниз

Как можно задать маску * при поиске в следующем случае...   Найти похожие ветки 

 
vegarulez ©   (2007-03-02 08:39) [0]

Привет всем мастерам!

У меня вот такой вопрос

у меня есть такой код:

 if Panel_Goodies.visible=true then
   with TEdit(FindComponent("E_stock")) do
     begin
        Text:="";
     end;


С помошью которого очишаю поля.
Так вот вопрос состоит в следующем, если допустим у меня появилось множество эдитов с такими именами : E_Edit_*  (шапку привел).

Как мне при поиске всех их отчишать по маске? Вообщем что прибавить к "E_stock"+ *... или что-то типа того...

Подскажите как это можно сделать?
Заранее благодарен.


 
Elen ©   (2007-03-02 08:44) [1]


> vegarulez ©   (02.03.07 08:39)

В цикле проходить каждый компонент и проверять его имя скажем функцией Pos.


 
begin...end ©   (2007-03-02 08:46) [2]

var
 I: Integer;
 C: TComponent;
begin
 ...
 for I := 0 to Pred(ComponentCount) do
 begin
   C := Components[I];
   if (C is TEdit) and (Pos("E_Edit_", C.Name) = 1) then
     TEdit(C).Clear
 end
 ...
end


 
vegarulez ©   (2007-03-02 08:47) [3]

Точно! как я сам об этом не подумал...
спасибо :)


 
ЮЮ ©   (2007-03-02 08:48) [4]

for i := 0 to ComponentCount - 1 do begin
 if SameText(Components[i].Name, 1, 7), "E_stock") and (Components[i] is TEdit) then begin
  TEdit(Components[i]).Text := ...  
 end
end;


 
Аноним   (2007-03-02 09:58) [5]

А еще есть функция MatchesMask, очень удобна для общего случая (unit Masks)

If MatchesMask(Components[I].Name, "E_Edit_*") then ...


 
vegarulez ©   (2007-03-02 10:01) [6]

Ещё попутно вопрос тогда...
а если я хочу перебирать компоненты не во всей форме,а только в одном  из многих  Panel`ов... как это сделать?


 
Аноним   (2007-03-02 10:06) [7]


> а если я хочу перебирать компоненты не во всей форме,а только
> в одном  из многих  Panel`ов... как это сделать?


for I:=0 to Panel1.ControlCount - 1 do
begin
if Controls[I] is TEdit  then...


 
ЮЮ ©   (2007-03-02 10:09) [8]

в одном из многих Panel`ов лежат не компоненты, а контролы:

for i := 0 to Panel.ControlCount - 1 do begin
if SameText(Panel.Control[i].Name, 1, 7), "E_stock") and (Panel.Control[i] is TEdit) then begin
 TEdit(Panel.Control[i]).Text := ...  
end
end;


 
vegarulez ©   (2007-03-02 10:12) [9]

Хор. пасип. поробую.


 
Ega23 ©   (2007-03-02 10:19) [10]


> for I:=0 to Panel1.ControlCount - 1 do
> begin
> if Controls[I] is TEdit  then...
>


Только надо учитывать, что на панели может лежать груп-боскс, в котором уже лежат твои едиты.


 
vegarulez ©   (2007-03-02 12:27) [11]

to ЮЮ

Так SameText он же принимает стринг а не инты...


 
ЮЮ ©   (2007-03-02 12:44) [12]

неужели ", 1, 7)" не невело на мысль об упущенном "Copy(" ? :)

SameText(Copy(Components[i].Name, 1, 7), "E_stock")



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 1.304 c
2-1173068437
vegarulez
2007-03-05 07:20
2007.03.25
Подскажите как правильно воспользоваться стингом в этом случае...


11-1151018833
DevilDevil
2006-06-23 03:27
2007.03.25
Smart-Linking


15-1173018283
arturich
2007-03-04 17:24
2007.03.25
Ошибка компилятора при установке EmbeddedWB


1-1170368901
FAskerQ
2007-02-02 01:28
2007.03.25
Как узнать время создания процесса?


15-1172518296
Rouse_
2007-02-26 22:31
2007.03.25
Новая дырка в ослике и FF (проверьте Оперу и NN)





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