Главная страница
    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
Время: 0.041 c
15-1172948868
Cyrax
2007-03-03 22:07
2007.03.25
Есть ли альтернативы Rasional Rose, реализующие UML...


15-1172502904
IMHO
2007-02-26 18:15
2007.03.25
Посоветуйте утилиту для Интернета


6-1160685177
MrKiLLER
2006-10-13 00:32
2007.03.25
Нужна помощь по программе-клиенту биллингового центра


15-1172930690
Servelat
2007-03-03 17:04
2007.03.25
Ключевое слово "object"


2-1172674149
ds120hp
2007-02-28 17:49
2007.03.25
Связь форм





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