Форум: "Начинающим";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];
ВнизОдинаковое значение свойств у всех Edit-ов Найти похожие ветки
← →
programmer90 (2008-05-30 19:04) [0]Здравствуйте уважаемые участники форума. У меня такой вопрос: Как задать одно и то же значение свойства всем обектам данного типа на форме. Пример : я хочу чтобы при к-л событии (неважно каком) всем Еdit-ам формы придать одинаковое значение Text-a. Чесно говоря видел где-то, но забыл где...Зарание всем спасибо.
← →
nimble_ (2008-05-30 19:11) [1]procedure SetProperties(ClassName, SomeProperty: string; Value: Integer);
var
i: integer;
PropInfo: PPropInfo;
Component: TComponent;
begin
for i := 0 to ComponentCount - 1 do
begin
Component := Components[i];
if (Component is TControl) and ((Component.ClassName = ClassName)
or (ClassName = "AllComponents")) then
begin
PropInfo := GetPropInfo(Component.ClassInfo, SomeProperty);
if Assigned(PropInfo) then
SetOrdProp(Component, PropInfo, Integer(Value));
end;
end;
end;
Пример использования:
procedure TForm1.Button1Click(Sender: TObject);
begin
// Make all components readonly
SetProperties("AllComponents", "readonly", 1);
// Make all components of Class TEdit invisible
SetProperties("TEdit", "visible", 0);
// Set the Height Property of all TLabels
SetProperties("TLabel", "Height", 30);
// Set ShowHint to false for all components
SetProperties("AllComponents", "ShowHint", 0);
// Disable all TMemo Components
SetProperties("TMemo", "Enabled", 0);
// Set Autosize to true for all TLabels
SetProperties("TLabel", "Autosize", 1);
end;
← →
Reindeer Moss Eater © (2008-05-30 19:14) [2]Выделить всех шифтом и присвоить свойство в инспекторе объектов
← →
Palladin © (2008-05-30 20:18) [3]
>nimble_ (30.05.08 19:11) [1]
по моему у тебя параноя ) и в следствии этого искаженное восприятие информации на входе
← →
ZENsan © (2008-05-30 20:22) [4]for i := 0 to ComponentCount - 1 do
if Components[i] is TEdit then
TEdit(Components[i]).Text := "Kakoj-to tekst";
← →
nimble_ (2008-05-30 20:25) [5]Ну если так, то не у меня одного ;) Нас уже двое
А вообще, автор точно не указал, что именно ему нужно: то ли перед компиляцией свойства менять, то ли после. ХЗ )
"видел где-то но забыл". я расценил это как изменение свойств компонентов уже запущенной проги. а то shift больна проста :)
← →
ZENsan © (2008-05-30 20:28) [6]Да нее... ты просто слишком заумно человеку показываешь. Он про такие вещи спрашивает, а ты ему даже не написал что пришлось бы подключить модуль TypInfo.
← →
ZENsan © (2008-05-30 20:30) [7]Integer(Value)?, когда ...; Value: Integer);...
:)
← →
programmer90 (2008-05-30 20:36) [8]У меня на форме только 23 едита(так нужно) впринципе их можно ctrl+a и присвоить свойство в инспекторе объектов :) надо "из-под программы".
Palladin © (30.05.08 20:18) [3]- мне как новичку очень интересно что написал nimble_
nimble_ (30.05.08 19:11) [1] - Очень подробно написано,
,я уверен в ближайшем будущем пригодится.
ZENsan © (30.05.08 20:22) [4]--Спасибо это то что мне нужно
← →
ZENsan © (2008-05-30 20:42) [9]Кстати.. бывает случай когда можно и так:
for i := 1 to 23 do
TEdit(FindComponent("Edit" + IntToStr(i))).Text := "Kakoj-to tekst";
← →
Palladin © (2008-05-30 20:53) [10]ну да... в ближайшем будущем... когда через 2 может и поймешь, что же есть RTTI, и чем порочен приведенный код для задачи назначения одинаковоназванного published свойства разным классам...
← →
programmer90 (2008-05-30 20:56) [11]
> ZENsan © (30.05.08 20:42) [9]
> Кстати.. бывает случай когда можно и так:for i := 1 to 23
> do TEdit(FindComponent("Edit" + IntToStr(i))).Text := "Kakoj-
> to tekst";
Вы прям мои мысли читате :) , я над этим достаточно долго думал...
даже пытался так: for i := 1 to 23 do
Edit[i].Text:="Kakoj-to";
естесственно потом понял что это совсем неправильно, так как это не нумеративная величина, и не массив, а TCaption ... ну вы сами знаете.
Большое спасибо ZENsan © , nimble_.
← →
nimble_ (2008-05-30 20:57) [12]Публично признаю, что ступил. Рву волосы) Ну да ладно, мож кому ещё нужно будет
← →
programmer90 (2008-05-30 21:01) [13]
> Palladin © (30.05.08 20:53) [10]
> ну да... в ближайшем будущем... когда через 2 может и поймешь
надеюсь что не "через 2 века" имели ввиду.
← →
Сергей М. © (2008-05-30 21:08) [14]
> programmer90
Что ж ты такое гениальное разрабатываешь ?
С учетом http://delphimaster.net/view/2-1212160292/ и 23-х Edit"ов, которые ты засандалил на форму и теперь не знаешь как с ними уравляться разом ?
← →
programmer90 (2008-05-30 21:09) [15]nimble_ (30.05.08 20:57) [12]
Публично признаю, что ступил. Рву волосы) Ну да ладно, мож кому ещё нужно будет
в любом случае если бы
> пришлось бы подключить модуль TypInfo
я бы всё равно догадался, поскольку без подключенного модуля он был выдал ошибку, после чего , я бы поинтерисовался бы синтаксисом , нажав к ctrl+click накой-нить процедуру и функцию я бы наверняка вышел бы на модуль Typinfo(я всё-таки думаю что Typeinfo, возможно я ошибаюсь).
так что не всё так страшно. Спасибо всем.
← →
ZENsan © (2008-05-30 21:24) [16]
> и чем порочен приведенный код для задачи назначения одинаковоназванного
> published свойства разным классам...
Если ты про мой код, то это пример именно для его случая, но никак не универсальный.
← →
programmer90 (2008-05-30 21:25) [17]
> Сергей М. © (30.05.08 21:08) [14]
> > programmer90Что ж ты такое гениальное разрабатываешь ?
> С учетом http://delphimaster.net/view/2-1212160292/
> и 23-х Edit"ов, которые ты засандалил на форму и теперь
> не знаешь как с ними уравляться разом ?
Хорошо я раскрою секрет, я разрабатываю форму которая подобна форме накладной, которая обычно пишется вручную.так как я IBM-совместимый человек , решил облегчить труд, не писать всё вручную и печатать при помощи procedure form1.print; ну и принтера конечно:);.
Как вы поняли 23 едита это есть места для набора текста. на самом деле, надо не только "попасть" чтобы координаты на форме, соответствовали бы на бумажке. Код поучился достаточно большим, так как кроме "попадания",нужно ещё облегчить труд а не усложнять.
Там есть пару полей для ввода имен, всёго имен 15, это наши производители, я сделал так от 1-15 набираем и автоматически кэпшну присваивается соот. цифре имя, это ещё цветочки, пришлось узнать как сделать многострочный хинт для подсказок, можно комбобокс но у него там стрелка справа, при печяти эта стрелка нафиг не нужна, и бордерстайл и едит -ов ноне делаю чтобы не печатал лишнее короче, очень много всего.
Пришлось это всё на CodeGear Rad Studio 2007 делать так как D7 криво поддеживает интернациональные символы, кjроче долгая история....
← →
ZENsan © (2008-05-30 21:26) [18]Нет именно TypInfo, потому что функцию так назвали TypeInfo.
← →
programmer90 (2008-05-30 21:28) [19]Сергей М. © (30.05.08 21:08) [14]
> > С учетом http://delphimaster.net/view/2-1212160292/
Это уже совсем другая история...
← →
Palladin © (2008-05-30 21:29) [20]
>я бы поинтерисовался бы синтаксисом , нажав к ctrl+click накой-нить процедуру и функцию я бы наверняка вышел бы на модуль Typinfo
наивный... ну попробуй... нажми волшебное сочетание... да и парень совсем не по этому признает, что его пост не адекватен, а по тому что и я сказал...
а 2 - это 2 года ) хотя прогноз примерный... может и 4 года... раз ктрл+клик решенье всех проблем...
← →
programmer90 (2008-05-30 21:29) [21]
> ZENsan © (30.05.08 21:26) [18]
> Нет именно TypInfo, потому что функцию так назвали TypeInfo.
>
А теперь понял...
← →
Сергей М. © (2008-05-30 21:31) [22]О боже ...
Ты что же, дружок, выводишь на принтер изображение формы ввода данных ?!
← →
programmer90 (2008-05-30 21:31) [23]Palladin ©
> хотя прогноз примерный... может и 4 года... раз ктрл+клик
> решенье всех проблем...
Спасибо за критику , вам виднее..
← →
programmer90 (2008-05-30 21:32) [24]
> Сергей М. © (30.05.08 21:31) [22]
> О боже ...Ты что же, дружок, выводишь на принтер изображение
> формы ввода данных ?!
Ага :),а есть другие варианты про которые я незнаю?
← →
Сергей М. © (2008-05-30 21:34) [25]
> я IBM-совместимый человек
Ты просто полный дилетант, а не "совместимый человек")
Существует огромное кол-во генераторов отчетов, ты про них хоть что-нибудь слышал ?
← →
nimble_ (2008-05-30 21:35) [26]> я разрабатываю форму которая подобна форме накладной,
Первое, что вспоминается из "умных книжек": создать doc иил xls файл (шаблон), со вставками вида #Edit1Text, #Edit2Text, а потом просто заменять эти вставки на нужный текст. Правда, придётся работать с офисом, но я бы лучше пошёл этим путём: если форма док-а чуть-чуть изменится, поправить doc значительно легче переставления эдитов на форме
← →
Сергей М. © (2008-05-30 21:35) [27]
> есть другие варианты про которые я незнаю?
Миллионы оных !)
← →
nimble_ (2008-05-30 21:36) [28]> я разрабатываю форму которая подобна форме накладной,
Первое, что вспоминается из "умных книжек": создать doc иил xls файл (шаблон), со вставками вида #Edit1Text, #Edit2Text, а потом просто заменять эти вставки на нужный текст. Правда, придётся работать с офисом, но я бы лучше пошёл этим путём: если форма док-а чуть-чуть изменится, поправить doc значительно легче переставления эдитов на форме
← →
Palladin © (2008-05-30 21:37) [29]
>ZENsan © (30.05.08 21:24) [16]
да ты то тут причем... с тобой в этой ветке все нормально... )
← →
programmer90 (2008-05-30 21:40) [30]Сергей М. © ,nimble_
Ладно всё ясно , существует огромное кол-во вариантов, хорошо как же их осуществить может они больше подойдут мне,пжлст дайте пару примерчиков ,чтоб я понял генераторов отчетов и про всё остальное...
← →
Сергей М. © (2008-05-30 21:45) [31]
> programmer90 (30.05.08 21:40) [30]
http://www.fast-report.com/ru/
← →
nimble_ (2008-05-30 21:45) [32]Sorry за дубляж предыдущего поста. и-тить мой enter (
Пример? Ну вот самый примитивный примерчик для моего варианта с вордом:
var
Word: Variant;
begin
Word := CreateOleObject("Word.Basic");
with Word do
begin {Затем следуют "чистые" команды WordBASIC...}
FileNew("Normal");
Insert("Это первая строчка"#13);
Insert("Это вторая строчка"#13);
FileSaveAs("c:\temp\test.txt", 3);
end;
end;
В Uses я не написал что надо прописать, сразу говорю)
← →
programmer90 (2008-05-30 21:47) [33]Сергей М. © (30.05.08 21:45) [31]
всё понятно будем читать...
← →
nimble_ (2008-05-30 21:48) [34]Вот про замену строк в doc (http://delphiworld.narod.ru/base/msword_replace_strs.html)
Пока, думаю, хватит
← →
programmer90 (2008-05-30 21:50) [35]
> Пока, думаю, хватит
Я тоже так думаю, разберемся с тем что у нас есть и будем думать что делать дальше
← →
Сергей М. © (2008-05-30 21:50) [36]
> В Uses я не написал что надо прописать, сразу говорю
Ах ты ж - вот обидно-то !
Ценнейшее дополнение)
Хрен с ними, с "координатами" - главное чтобы uses "не парил" !)
← →
nimble_ (2008-05-30 21:57) [37]> Ах ты ж - вот обидно-то !
> Ценнейшее дополнение)
Да ComObj, ComObj :))) И хрен с ними!
← →
Сергей М. © (2008-05-30 21:59) [38]
> Да ComObj, ComObj
А что так мало ?
А где юниты, которые сами по себе (!?) творят чудеса с координатами, которыми столь озабочен Автор ?
← →
nimble_ (2008-05-30 22:14) [39]> чудеса с координатами
Да что координаты, кординаты. Таблицу запихать туда и всё! А потом по ячейкам шагать
← →
Сергей М. © (2008-05-30 22:21) [40]
> Таблицу запихать туда и всё! А потом по ячейкам шагать
В сад.
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.05 c