Вниз
Скачать: CL | DM;

Еще один банальный вопрос...   Найти похожие ветки 

 
Ahmad ©   (2002-09-27 23:25) [0]

Допустим у меня в проге 100 TEdit"ов, для каждого из них мне нужно написать одно и тоже действие, например:
Edit1.Font.Size:=10;
но возникает проблема у разных Edit"ов разные имена, значит придется писать под каждый едит процедуру или можно попроще?


 
EleKtroNik ©   (2002-09-27 23:31) [1]

Попробуй воспользоватся Action"ом


 
EleKtroNik ©   (2002-09-27 23:39) [2]

PS: TActionList.
Там на мутишь, потом свойству Action кнопки
Имя листа бацаешь.
Удачи.


 
KaPaT ©   (2002-09-27 23:52) [3]

сегодня только писал....

begin
For i:=Form.ComponentCount-1 downto do
If Form.Component[i] is TEdit then
TEdit(Form.Component[i]).Font.Size := 10


 
KaPaT ©   (2002-09-27 23:54) [4]

ээ....downto 0 надо =)


 
EleKtroNik ©   (2002-09-27 23:58) [5]

Ahmad
Сори поспешил.
Но может тебе и это пригодится.


 
Kotka ©   (2002-09-28 00:34) [6]

А можно и так:
for i:=1 to 100 do
tedit(findcomponent("Edit"+inttostr(i))).font...


 
Aleks1   (2002-09-28 03:47) [7]

А не проще ли продумать прогу так, чтобы можно было у всех "100 TEdit"ов" поставить ParentFont = True и в дальнейшем, по необходимости писать MyForm.Font.Size:=10?


 
Ahmad ©   (2002-09-28 20:05) [8]


> Попробуй воспользоватся Action"ом

Пробовал, но тут проблема в названиях компанентов, так что не поможет, но спасибо что напомнил про ActionList давненько я им не пользовался.

> begin
> For i:=Form.ComponentCount-1 downto do
> If Form.Component[i] is TEdit then
> TEdit(Form.Component[i]).Font.Size := 10

Он у меня выдает ошибку [Error] : Undeclared identifier: "Component" там где нах-ся Component[i]
Я вместо Component вводил Edit, но он выдает тоже самое.


> for i:=1 to 100 do
> tedit(findcomponent("Edit"+inttostr(i))).font...

В этом случае он изменяет щрифт всех 100 компанентов на форме.

> А не проще ли продумать прогу так, чтобы можно было у всех
> "100 TEdit"ов" поставить ParentFont = True и в дальнейшем,
> по необходимости писать MyForm.Font.Size:=10?

Вопрос не щрифте, щрифт это просто пример(наверное, неудачный), мне нужно просто чтобы имя менялось на имя действующего компонента и чтобы не надо было для этого писать до 100 эвентов.


 
фффф   (2002-09-28 20:09) [9]

писать хотяб научись


 
Kotka ©   (2002-09-29 00:46) [10]

>Ahmad © (28.09.02 20:05)
> В этом случае он изменяет щрифт всех 100 компанентов на форме.
Так а что тебе надо было???
Допустим у меня в проге 100 TEdit"ов, для каждого из них мне нужно написать одно и тоже действие, например:
Edit1.Font.Size:=10;
но возникает проблема у разных Edit"ов разные имена, значит придется писать под каждый едит процедуру или можно попроще?

Либо я совсем тупой, либо тебе надо было именно это!
Но если изменить число 100 на 50, то не все 100 компонентов будут изменяться, а только 50!!! :-)))



 
Begin ©   (2002-09-29 02:52) [11]

Ahmad, милай !!!! Так ты эта... попробуй, значить, вынуть одну строчку из цикла та... Оно, глядишь, и заработаить ... Вот так вот, к примеру, сделай...

TEdit(FindComponent("Edit"+IntToStr(<а тута напиши намбер, какой тебе нужон... тада все сто не откликнуться>))).font...

(с) А.Н. Б.Н. Стругацкие


:)))


 
Kotka ©   (2002-09-29 23:47) [12]

МММММММММмм! Так вот че те надо было!!!!!!!!!!!!!!
Да! В следующий раз пиши как есть, а не какую-то там чушь неси!
В этом случае тебе сюды
http://www.delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1033232538&n=0


 
infinity ©   (2002-09-30 00:43) [13]

Просто ЛОЛ


 
Ahmad ©   (2002-09-30 22:59) [14]


> Либо я совсем тупой, либо тебе надо было именно это!

Нет, ты навуерное не такой тупой, я просто не правельно задал вопрос... :)
> Ahmad, милай !!!! Так ты эта... попробуй, значить, вынуть
> одну строчку из цикла та... Оно, глядишь, и заработаить
> ... Вот так вот, к примеру, сделай...
>
> TEdit(FindComponent("Edit"+IntToStr(<а тута напиши намбер,
> какой тебе нужон... тада все сто не откликнуться>))).font...

А заешь как можно полегче сделать?!
Вот как:
TEdit(sender).Font.Size:=10;
прописываешь эту процедуру на изменение одного едита и обращаешь все остальные едиты к этой процедуре, в результате, если я начинаю изменять любой едит, то у меня меняется размер щрифта именно в этом едите а не во всех. А самое главное до этого я дополз "методом русского научного тыка" . :-)

> В этом случае тебе сюды

Нее... массивы слишком запутанное дело лучше как я предлагаю ваше. Но спасибо, хотя бы вспомнил про массивы. :-)


 
Begin ©   (2002-10-01 02:01) [15]


> А заешь как можно полегче сделать?!
> Вот как:
> TEdit(sender).Font.Size:=10;


Таки никто и не спорит... Только так тебе каждому Edit"у придется евент сделать, или обязательно назначать их до момента первого применения... а так можно по мере необходимости свойства изменять.... Но эт кому как больше нравиться...


 
Dm9   (2002-10-04 13:24) [16]

>For i:=Form.ComponentCount-1 downto do
>If Form.Component[i] is TEdit then
> TEdit(Form.Component[i]).Font.Size := 10

Видимо, всё-таки это выглядит так:
For i:=Form.ControlCount-1 downto 0 do
If Form.Controls[i] is TEdit
then TEdit(Form.Controls[i]).Font.Size := 10



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

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.015 c
14-45498
Digitman
2002-09-17 12:01
2002.10.14
Офисная мини-ATC Panasonic KX-T1232100DB


1-45359
^SANYA
2002-10-05 01:15
2002.10.14
Шифрование...


14-45555
Grifon
2002-09-20 09:13
2002.10.14
Троянские лошади...


1-45340
maxinfosoft
2002-10-05 15:46
2002.10.14
Как вставить кнопку в MS Word и обработать нажитие на нее?


1-45310
Demon[DZ]
2002-10-04 20:48
2002.10.14
DrawGrid




   Наверх