Вопрос № 18283: Как программно узнать какие пользователи подключины к БД (Interbase) и активны в текущий момент?
Всем СПАСИБО....Вопрос № 18298: Здравствуйте!
Есть следующая задача: необходимо для каждого контрола на форме выполнить определенные действия, для этого нужно итеративно пройтись по всем контролам. Но проблема в том, что Код 1, который приведен в приложении работает только для ...Вопрос № 18324: Здравствуйте!
Еще один вопрос: необходимо отлавливать изменение свойства Enabled=True|False у всех контролов на форме. Дельфа для изменения этого свойства использует метод TControl.Perform, который посылает сообщение CM_ENABLEDCHANGED напрямую в ...
Вопрос № 18283
Как программно узнать какие пользователи подключины к БД (Interbase) и активны в текущий момент?
Всем СПАСИБО.
Отправлен: 14.03.2005, 22:26
Вопрос задал: Ton (статус: Посетитель)
Всего ответов отправлено: 1
Отвечает: rusfaq.ru
Здравствуйте, Ton!
Помоему это вопрос в SQL :)
TIBDtaBaseInfo.UserNames;
Ответ отправил: rusfaq.ru (статус: 2-ой класс)
Отправлен: 14.03.2005, 23:08
Вопрос № 18298
Здравствуйте!
Есть следующая задача: необходимо для каждого контрола на форме выполнить определенные действия, для этого нужно итеративно пройтись по всем контролам. Но проблема в том, что Код 1, который приведен в приложении работает только для контролов, расположенных непосредственно на самих формах, а не на панели, тулбаре или чем-то подобном. Собственно вопрос: как добраться до этих контролов? В то же время Код 2, который по идее рекурсивно должен спускаться до самого низкого уровня, вылетает с exception. Я так понимаю,
проблема в различиях между классами TWinControl и TControl при их преобразовании. Подскажите, может кто сталкивался с чем-то подобным.
Приложение:
Отправлен: 15.03.2005, 08:32
Вопрос задал: banshee (статус: Посетитель)
Всего ответов отправлено: 1
Отвечает: sir henry
Здравствуйте, banshee!
Может быть для каждого контрола сделать проверку, может ли он содержать другие контролы. Например, тот же тулбар явно может. :) Т.е., другими словами, если контрол имеет тип тулбар или, допустим, панель, то он, в свою очередь, проходится по всем содержащимся на нем контролам.
Это идея в общем виде. Для конкретной ее реализации нужно знать, на Вашей форме содержится какой-то фиксированый набор компонентов или они могут быть разных типов?
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 15.03.2005, 10:06
Вопрос № 18324
Здравствуйте!
Еще один вопрос: необходимо отлавливать изменение свойства Enabled=True|False у всех контролов на форме. Дельфа для изменения этого свойства использует метод TControl.Perform, который посылает сообщение CM_ENABLEDCHANGED напрямую в WindowProc контрола, минуя очередь сообщений Windows (т.е. ни Application.OnMessage, ни HookMainWindow, ни другие способы отлавливания не работают). Собственно вопрос: как это событие отловить? Возможно ли переопределить метод TControl.Perform или WindowProc сразу для всех потомков
TControl. Или может есть другие способы?
Отправлен: 15.03.2005, 18:50
Вопрос задал: banshee (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: Malish
Здравствуйте, banshee!
Дай мне адресс почты, и я тебе вышлю описание сообщений и как ими упровлять.
Там найдешь:
-типы сообщений;
-принципы работы системы сообщений;
-систему обработки сообщений в Delphi;
-обработку сообщений;
-описание OnMessage класса Tapplication;
-описание Perform;
-функции API SendMessage() PostMessage();
-нестандартные сообщения;
ну и тд.
Вообщем все что тебе надобудет от сообщений на много лет вперед.
Удачи!!!!!
Ответ отправил: Malish (статус: 3-ий класс)
Отправлен: 15.03.2005, 20:59
Отвечает: sir henry
Здравствуйте, banshee!
Честно говоря над этим я никогда не думал, но наверно можно подойти к ситуации с другой строны, например периодически проверять свойство Enabled у нужных Вам компонентов. :)
Если нужно проверять у всех компонентов, то кинуть проверку в цикл обхода компонентов формы.
Perform переопределить нельзя. А вот в качестве WindowProc Вы можете написать свою процедуру. Однако делать потомка от TControl я Вам не советую, гемору будет много, придется переопределять и потомков. :) Лучше в цикле присвоть каждому Вашу WindowProc.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 16.03.2005, 05:45