Текущий архив: 2007.12.02;
Скачать: CL | DM;
Вниз
Как перебрать все объекты типа TEdit на форме?? Найти похожие ветки
← →
Lamer666 (2007-11-06 21:52) [0]Подскажите пожалуйста Как перебрать все объекты типа TEdit на форме??
Спасибо!
← →
Dib@zol © (2007-11-06 22:13) [1]procedure TForm1.FormCreate(Sender: TObject);
const
s = 255;
var
i : Cardinal;
P : PChar;
begin
for i:=0 to ComponentCount-1 do begin
GetMem(P, s);
try
GetClassName((Components[i] as TWinControl).Handle, P, s);
ShowMessage(P);
// ...
// Тут проверяешь на принадлежность класса к TEdit и делаешь что нужно
// ...
FreeMem(P, s);
except end;
end;
end;
← →
palva © (2007-11-06 22:17) [2]
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
begin
for i:=0 to ComponentCount - 1 do
if Components[i].ClassName = "TEdit" then
ShowMessage((Components[i] As TEdit).Text);
end;
← →
DrPass © (2007-11-06 22:18) [3]
> for i:=0 to ComponentCount-1 do begin
> GetMem(P, s);
> try
> GetClassName((Components[i] as TWinControl).Handle,
> P, s);
> ShowMessage(P);
> // ...
> // Тут проверяешь на принадлежность класса к TEdit
> и делаешь что нужно
> // ...
> FreeMem(P, s);
> except end;
> end;
Шо за бред?
for i:=0 to ComponentCount-1 do
if Components[i] is TEdit then ...
и все
← →
Kolan © (2007-11-06 22:27) [4]> Dib@zol © (06.11.07 22:13)
Прикрати маятся. ПЕши хоть на ассемблере в соотв ветке, не трож начинающих. :(
← →
Riply © (2007-11-06 23:53) [5]procedure EnumEditRec(const aComp: TComponent);
var
EnumComp: TComponent;
begin
for EnumComp in aComp do
if EnumComp is TEdit then ShowMessage(EnumComp.Name) else
if EnumComp is TFrame then EnumEditRec(EnumComp);
end;
← →
Tmp (2007-11-07 00:12) [6]Riply © (06.11.07 23:53) [5]
Цэ шо? :)
← →
Riply © (2007-11-07 00:17) [7]> [6] Tmp (07.11.07 00:12)
> Цэ шо? :)
Эта... рекурсивная перебора эдитов однако. :)
← →
Tmp (2007-11-07 00:28) [8]
> Riply © (07.11.07 00:17) [7]
Ээээ.... Нэ работает :(
:)
← →
Riply © (2007-11-07 00:32) [9]Как вызываешь ?
procedure TMainForm.SpeedButton1Click(Sender: TObject);
begin
EnumEditRec(Self);
end;
Может у тебя на форме Edit`ов нет ? :)
← →
guav © (2007-11-07 00:35) [10]> [9] Riply © (07.11.07 00:32)
> Может у тебя на форме Edit`ов нет ? :)
скорее нету фор ич в компиляторе :)
← →
Riply © (2007-11-07 00:42) [11]> [10] guav © (07.11.07 00:35)
Привет !
> скорее нету фор ич в компиляторе :)
Ну так заменить тогда на for i := 0 to
P.S.
> [10] guav
По Вашему заданию сижу и собираю нестандартные случаи :)
← →
DrPass © (2007-11-07 00:43) [12]
> Riply © (06.11.07 23:53) [5]
У парня ж Delphi 7. Не издевайся над человеком
← →
Riply © (2007-11-07 00:45) [13]> [12] DrPass © (07.11.07 00:43)
> У парня ж Delphi 7. Не издевайся над человеком
Sorry... Не знала...
Надо заменить
for EnumComp in aComp do
на
for i:=0 to ComponentCount-1 do
← →
guav © (2007-11-07 00:51) [14]<off>
> Riply ©
ICQ включить можешь ?
</off>
← →
Riply © (2007-11-07 00:56) [15]> [14] guav © (07.11.07 00:51)
<off>
> Riply ©
>ICQ включить можешь ?
Сейчас нет. :(
У меня многое "похоронено" под Убунтей :)
Я вхожу с др. компьютера.
</off>
← →
Tmp (2007-11-07 01:16) [16]
> Riply © (07.11.07 00:32) [9]
> Как вызываешь ?
Если это вопрос мне(что скорее всего) то:
Я никак ее не вызывал, просто посмотрел на "написание" кода и сделал вывод о не работоспособности этого кода в D7
;)
← →
Германн © (2007-11-07 01:34) [17]
> Riply © (06.11.07 23:53) [5]
Когда ты задаёшь свои весьма "продвинутые" вопросы в этой конференции это я понимаю. Но ответы всё же в ней должны быть более простыми или хотя бы должны сопровождаться объяснениями :-)
← →
Riply © (2007-11-07 07:06) [18]>[17] Германн © (07.11.07 01:34)
> Но ответы всё же в ней должны быть более простыми или хотя бы должны сопровождаться объяснениями :-)
Ну вот. Все на меня бедную напали. И ты, Брут. Тьфу - Сергей. :)
За то, что я не учла, что у автора Delphi 7, я уже принесла извинения.
А какие пояснения нужны к этой процедуре, я до сих пор не вижу.
Или надо было нашпиговать три строчки кода фразами типа:
"перебираем компоненты", "проверяем не Edit-ли(не Frame- ли)", "выводим сообщение" ?
:)
← →
Lamer666 (2007-11-07 13:46) [19]Большое спасибо:Dib@zol,palva,DrPass,Kolan,Riply,Tmp,guav,Германн.
С уваженеим Lamer666ДА и еще хотел спросить, а если нужно обратиться к какому-нибудь свойству поля TEDIT, например MaxLength, в этом переборе?
← →
Reindeer Moss Eater © (2007-11-07 13:51) [20]при поиске эдита лучше перебирать не компоненты а контролы
← →
Ega23 © (2007-11-07 13:53) [21]
> при поиске эдита лучше перебирать не компоненты а контролы
Тогда рекурсивная переборка всех контролов, ибо Edit может и на панели лежать, а панель уже на форме.
← →
Lamer666 (2007-11-07 13:57) [22]
> при поиске эдита лучше перебирать не компоненты а контролы
а как присвоить значение в свойство MaxLength? Его нет в списке свойств "контролов"
← →
Lamer666 (2007-11-07 13:59) [23]
> Тогда рекурсивная переборка всех контролов, ибо Edit может
> и на панели лежать, а панель уже на форме.
Есть и такое! : ((
← →
Anatoly Podgoretsky © (2007-11-07 14:04) [24]> Ega23 (07.11.2007 13:53:21) [21]
Но тоже относится и к Components
← →
Reindeer Moss Eater © (2007-11-07 14:04) [25]а как присвоить значение в свойство MaxLength?
Привести найденный контрол к типу TEdit
← →
Lamer666 (2007-11-07 14:44) [26]
> Привести найденный контрол к типу TEdit
: ))
Протите, а как?Controls[i].ClassType:=TEdit;
ругаеться! : (
← →
Reindeer Moss Eater © (2007-11-07 14:49) [27]Ругается потому что это не приведение, а присвоение.
Я тебе про приведение говорил.
← →
Skyle © (2007-11-07 14:50) [28]
> Lamer666 (07.11.07 14:44) [26]
>
> > Привести найденный контрол к типу TEdit
>
> : ))
> Протите, а как?
> Controls[i].ClassType:=TEdit;
> ругаеться! : ((Controls[I] as TEdit).MaxLength
← →
Lamer666 (2007-11-07 14:51) [29]
> Reindeer Moss Eater © (07.11.07 14:49) [27]
> Skyle © (07.11.07 14:50) [28]
Ясно, теперь буд знать! Спасибо!
← →
Ega23 © (2007-11-07 14:53) [30]
> (Controls[I] as TEdit).MaxLength
Если более правильно, тоif (Controls[i] is TEdit) then
TEdit(Controls[i]).MaxLength ....
← →
Kolan © (2007-11-07 14:54) [31]> Ясно, теперь буд знать! Спасибо!
На 95 процентов я уверен что тебе ненадо проходится по всем контролам…
Опеши задачу, мож наталкнём тебя на здравую мысль…
← →
Lamer666 (2007-11-07 14:55) [32]
> Ega23 © (07.11.07 14:53) [30]
: ))) Спасиб!
← →
Skyle © (2007-11-07 14:55) [33]
> Ega23 © (07.11.07 14:53) [30]
Я так понял на тему if Controls[I] is TEdit говорили первые 25 постов, поэтому и не указал...
← →
Lamer666 (2007-11-07 15:02) [34]
> На 95 процентов я уверен что тебе ненадо проходится по всем
> контролам…
> Опеши задачу, мож наталкнём тебя на здравую мысль…
В общем задача такая:
1. На форме есть TEDIT-ы, на форме есть TabSheet-ы на них тоже есть TEDIT-ы.
2. Есть таблица в базе данных на MSSQL сервере, некоторые поля таблицы имеют ограницения, например 12 символов
Ну в общем что бы при выполнении хранимой процедуры не проверять длинну введенного в каждом поле значения, я просто хочу ограничить поля на длинну ввода! Вот!
← →
Ega23 © (2007-11-07 15:04) [35]
> Есть таблица в базе данных на MSSQL сервере, некоторые поля
> таблицы имеют ограницения, например 12 символов
Тип полей char(12) или varchar(12)?
← →
Lamer666 (2007-11-07 15:09) [36]varchar(12)
← →
Kolan © (2007-11-07 15:17) [37]> На форме есть TEDIT-ы,
> некоторые поля таблицы имеют ограницения
Сколько же у тебя этих эдитов?
← →
Ega23 © (2007-11-07 15:20) [38]Хотя без разницы. Сервер автоматом обрежет
← →
Ega23 © (2007-11-07 15:21) [39]
> varchar(12)
Забей болт.
← →
Kolan © (2007-11-07 15:23) [40]> Забей болт.
Ну ты сказал… Люди будут пол дня вводить ничего не подозревая, а сервер будет все резать…
Страницы: 1 2 вся ветка
Текущий архив: 2007.12.02;
Скачать: CL | DM;
Память: 0.54 MB
Время: 0.031 c