Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2011, 11:37   #1
Artro
 
Регистрация: 11.05.2011
Сообщений: 6
По умолчанию Вставка текста в чужой DBEdit

В чужом приложении нужно заполнить программно форму.

sendmessage(h,wm_settext,0,lparam(p char('text'))); - на обычных эдитах работает норм, в DBEdit (на некоторых) не показывает до получения фокуса, в любом случае после потери фокуса значение теряется.

Каким образом можно програмно скинуть текст в ДБ компоненты, чтобы текст оставался там вне зависимости от фокуса?
Artro вне форума Ответить с цитированием
Старый 11.05.2011, 20:18   #2
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

А Вы уверены, что текст там не сбрасывается, например, по событию валидации или LostFocus/Leave. Если там что-то программно заложено, то заполнять будет проблематично...
Spawn™Production® вне форума Ответить с цитированием
Старый 12.05.2011, 12:12   #3
Artro
 
Регистрация: 11.05.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Spawn™Production® Посмотреть сообщение
А Вы уверены, что текст там не сбрасывается, например, по событию валидации или LostFocus/Leave. Если там что-то программно заложено, то заполнять будет проблематично...
при вводе с клавиатуры данные остаются на месте.

вот нашел: „Сразу предупреждаю КАТЕГОРИЧЕСКИ НЕ СЛЕДУЕТ ПЫТАТЬСЯ ИЗ КОДА МЕНЯТЬ ЗНАЧЕНИЯ В ВИЗУАЛЬНЫХ КОМПОНЕНТАХ, не следует пытаться менять или читать значения из BDGrid, DBEdit и т.д. Эти компоненты существуют только для работы оператора „вручную”. Для доступа к данным из кода нужно использовать только невизуальные компоненты типа TTable...”

Но поскольку прога не моя, то и доступ есть только к DBEdit. Вопрос в том, как скинуть в него текст, чтобы он не терялся.
Artro вне форума Ответить с цитированием
Старый 12.05.2011, 20:09   #4
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

можно попытаться сэмулировать нажатия, т.е. посылать не WM_SETTEXT, а WM_KEYDOWN + WM_KEYUP. Гемороя больше, но эффект должен быть лучше.
Spawn™Production® вне форума Ответить с цитированием
Старый 16.05.2011, 11:48   #5
Artro
 
Регистрация: 11.05.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Spawn™Production® Посмотреть сообщение
можно попытаться сэмулировать нажатия, т.е. посылать не WM_SETTEXT, а WM_KEYDOWN + WM_KEYUP. Гемороя больше, но эффект должен быть лучше.
спс, разобрался. сделал так:
s :='text';
k:=Length(s);
SendMessage(hwnd,WM_SETFOCUS,1,0);
for i:=1 to k do SendMessage(hwnd,WM_CHAR,Word(s[i]), 0);
SendMessage(hwnd,WM_SETFOCUS,1,0);
Artro вне форума Ответить с цитированием
Старый 16.05.2011, 20:47   #6
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

Ну, да, или WM_CHAR, как результирующее
Spawn™Production® вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вставка и сокрытие текста ФАНАТИЧКА Microsoft Office Word 1 05.03.2011 02:52
Перенос текста с Edit и DBEdit на RichEdit sislexa Компоненты Delphi 4 27.10.2010 18:19
Посыл текста edit2 чужой проге? Semechka Общие вопросы Delphi 4 29.12.2008 09:41
Вставка текста Pedro Общие вопросы Delphi 4 27.01.2008 10:27
! Вставка текста ! ♠STO♠ Общие вопросы Delphi 2 30.08.2007 17:05