Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

порядок нахождения


Страницы:   1 2

AlexeyShestchenko ©   (2008-02-14 21:41:00) 

Перебыираю все компоненты на чужой форме и если там есть edit то добавляю в него текст. но тут создал для теста форму с 10 эдитами и обнаружил что перебираться эдиты начинаются с последнего и соответстввенно добавляться начинают с последнего и по убывающей что не верно в моем случае, как сделать чтобы перебор был с конца или как решить мой вопрос?
буду благодарен за ответы.
Забыл сказать что использую
EnumChildWindows
proc
GetClassName


Leonid Troyanovsky   (2008-02-25 15:13:00) [1]


> GrayFace   (25.02.08 14:38) [24]

> Не понял, почему i - баг?

Потому, что глобальная переменная.

> Если мне не ходит налево память, у proc должно быть больше
> 1 параметра.

Видимо, вторым идет List1.

--
Regards, LVT.


GrayFace   (2008-02-25 14:38:00) [2]

Не понял, почему i - баг?

> AlexeyShestchenko   (14.02.08 21:58) [3]
Если мне не ходит налево память, у proc должно быть больше 1 параметра.

Получаешь массивхэндлов эдитов и упорядочиваешь его в соответствии с порядком

если (Edit1.Top < Edit2.Top) or (Edit1.Top = Edit2.Top) and (Edit1.Left < Edit2.Left)
то Edit1 < Edit2


AlexeyShestchenko   (2008-02-15 15:50:00) [3]

Это для конкретной программы будет, хотелось сделать более универсальной, похоже нельзя...
Спасибо за ответы!


Leonid Troyanovsky   (2008-02-15 11:00:00) [4]


> AlexeyShestchenko   (14.02.08 23:52) [21]

> Делал так уже,но хотелось конечно все автоматом сделать.

Делов-то.
Если положение контролов неизменно, то для заполняемой формы
достаточно один раз составить карту, а для определения хендлов
контролов использовать ChildWindowFromPoint.

Хранить же хендлы нельзя, бо возможны некие RecreateWnd.
Или, следить за их валидностью с помощью хука.
Хотя без хука, по всей видимости, здесь не обойтись.

--
Regards, LVT.


AlexeyShestchenko   (2008-02-14 23:52:00) [5]

Спасибо за ответ.
Делал так уже,но хотелось конечно все автоматом сделать...


Leonid Troyanovsky   (2008-02-14 23:22:00) [6]


> AlexeyShestchenko   (14.02.08 23:09) [19]

> дело в том что мне надо заполнять сразу все эдиты, а не
> перемещаться курсор к каждому.

Вот для этого оные эдиты и надо идентифицировать.
Например, по их положению.
Или, скажем, пройти их все предварительно мышью и пометить,
скажем, SetProp.

--
Regards, LVT.


AlexeyShestchenko   (2008-02-14 23:09:00) [7]

дело в том что мне надо заполнять сразу все эдиты, а не перемещаться курсор к каждому.


Leonid Troyanovsky   (2008-02-14 22:54:00) [8]


> AlexeyShestchenko   (14.02.08 22:49) [16]

> может по моему вопросу напишите что-нибудь полезное?

Я, например, по любому вопросу пишу (уже давно)
исключительно полезное.

Не все, правда, это могут воспринять :)

--
Regards, LVT.


Leonid Troyanovsky   (2008-02-14 22:51:00) [9]


> AlexeyShestchenko   (14.02.08 22:40) [13]

> 1. Почему i в моем случае баг?

Это в любом случае - баг.
Трудно объяснять, особенно, на таком уровне подготовки.

> при наведении курсора на первый эдит,с которого надо заполнять
> их, получаем его z order и передвигаемся по ним дальше и
> заполняем?

При наведении курсора и заполняем указуемый эдит.
Чего еще более?

--
Regards, LVT.


AlexeyShestchenko   (2008-02-14 22:49:00) [10]

может по моему вопросу напишите что-нибудь полезное?


Leonid Troyanovsky   (2008-02-14 22:45:00) [11]


> tmar ©   (14.02.08 22:41) [14]

> вот йопт. убивать-убивать-убивать…

Да ладно, тут все по-честному.
Ну, или как обещано.

--
Regards, LVT.


ketmar   (2008-02-14 22:41:00) [12]

>[12] Leonid Troyanovsky © (2008-02-14 22:34:00)
вот йопт. убивать-убивать-убивать…

---
Understanding is not required. Only obedience.


AlexeyShestchenko   (2008-02-14 22:40:00) [13]

1. Почему i в моем случае баг?
2. Опишу еще раз задачу: мне нужно заполнить edit'ы в другой чужой программе. Я это вижу так при наведении курсора на первый эдит,с которого надо заполнять их, получаем его z order и передвигаемся по ним дальше и заполняем?


Leonid Troyanovsky   (2008-02-14 22:34:00) [14]


> ketmar ©   (14.02.08 22:24) [9]

> дык всё равно там EDIT внизу? или я не прав?

GetClassName покажет 'TEdit'.
Ну, или то, чем именовали потомка.

--
Regards, LVT.


ketmar   (2008-02-14 22:33:00) [15]

>[10] Leonid Troyanovsky © (2008-02-14 22:31:00)
>так не ясно, нах оный порядок потребовался.

дык. заполнение формы, вестимо (ай, Кэтмар, ай да телепат!)

---
Understanding is not required. Only obedience.


Leonid Troyanovsky   (2008-02-14 22:31:00) [16]


> AlexeyShestchenko   (14.02.08 22:23) [8]

> что то я не нашел инфы по тому как определять у конкретного
> контрола его z-order...может вы знаете?

MSDN тебе в помощь.
Однако, так не ясно, нах оный порядок потребовался.

> а i это номер строки в list := tstringlist.create;

Так и поняли, что это не описка, а баг.

--
Regards, LVT.


ketmar   (2008-02-14 22:24:00) [17]

>[7] Leonid Troyanovsky © (2008-02-14 22:15:00)
дык всё равно там EDIT внизу? или я не прав? (очень могу быть не прав, поправь, если что)

---
Understanding is not required. Only obedience.


AlexeyShestchenko   (2008-02-14 22:23:00) [18]

что то я не нашел инфы по тому как определять у конкретного контрола его z-order...может вы знаете?
ну try except забыл удалить:)
а i это номер строки в list := tstringlist.create;


Leonid Troyanovsky   (2008-02-14 22:15:00) [19]


> ketmar ©   (14.02.08 22:09) [5]

> это что за класс такой — TEdit?

Ну, такой класс есть - дельфийский субкласс EDIT.

--
Regards, LVT.


Leonid Troyanovsky   (2008-02-14 22:13:00) [20]


> AlexeyShestchenko   (14.02.08 21:58) [3]

Да ты, брат, еще и путанник.
Что за нах i.

Про досто верность, я, пожалуй, погорячился :)

--
Regards, LVT.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо