Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 4

Модерирует : ShIvADeSt

ShIvADeSt (28-06-2009 02:10): Продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=10477  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

Aladdinych



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извините, если вопрос элементарный, но как сделать так чтобы:
1. Программа на Delphi проверяла, запущенно заданное приложение, если нет то запускала.
2. Активизировала окно этого приложения.
3. Имитировала выбор из меню или подменю этого приложения.
4. В открывшейся форме приложения заполняла поля и имитировала нажатие кнопок этой формы.
 

Всего записей: 322 | Зарегистр. 18-10-2005 | Отправлено: 13:44 06-10-2008
Dimoniusis



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aladdinych
 
1. Читай про FindWindow и EnumWindows
2. if IsIconic(handle) or (not IsWindowVisible(handle)) then
       ShowWindow(handle, SW_RESTORE);
 
    SetForegroundWindow(handle);
    SetActiveWindow(handle);
 
    где handle - идентификатор окна.
3 .  
procedure SelectMenu(winname, item, subitem: string);
// winname - имя окна, item - имя пункта меню, subitem - имя подпункта
var winhandle, menuhandle, submenuhandle, i, j:integer;
    itemname, subitemname:pchar;
begin
  winhandle:=FindWindow(nil, pchar(winname));
  menuhandle:=GetMenu(winhandle);
  getmem(itemname,255);
  getmem(subitemname,255);
  for i:=0 to getmenuitemcount(menuhandle)-1 do begin
    getmenustring(menuhandle, i, itemname, 255, MF_BYPOSITION);
    if string(itemname)=item then begin
      submenuhandle:=getsubmenu(menuhandle,i);
      for j:=0 to getmenuitemcount(submenuhandle)-1 do begin
        GetMenuString(submenuhandle, j, subitemname, 255, MF_BYPOSITION);
        if string(subitemname)=subitem then
          PostMessage(winhandle, WM_COMMAND, makelong(getmenuitemid(submenuhandle,j),0),0);
      end;
    end;
  end;
  freemem(itemname);
  freemem(subitemname);
end;
 
Использовать по названию:
  SelectMenu(WindowName, 'Конвертация', 'Автоматический режим');
 
т.е кликнуть "Конвертация" и в нем "Автоматический режим"
 
4. SendMessage - WM_Char/Wm_text, если знаешь хендлы, либо Keybd_Event для общего случая.

Всего записей: 4134 | Зарегистр. 18-10-2005 | Отправлено: 19:54 06-10-2008
Mandor Sawall

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt
Ну, еще надо добавить, что после протокола может появиться login/password и только тогда идет хост.

Всего записей: 119 | Зарегистр. 20-03-2003 | Отправлено: 09:44 07-10-2008
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
anfilat

Цитата:
Каких траблов? Можешь ты пальцем показать, где тут могут получиться проблемы?  

Нет проблем, когда я не уверен что код программы абсолютно никому не нужен, когда я не уверен, что к этому коду нет доступа абсолютно никому кроме меня, и когда я не уверен, что код прекрасно читаемый и я смогу вспомнить, что он делает даже по "нетрезвому уму"... Тогда я стараюсь "отделаться" от мудрствований. Опыт показывает, - копипаст свои дела делает, и не всегда обходится без траблов. Это наверное опыт, ничего другого. С точки зрения работоспособности такой техники - всё ок.
 
Сомневаюсь, что Dm.LoadMsg; работает не в основном потоке.

Цитата:
EnterWorkerThread;  
  try  
  Dm.LoadMsg;  
  finally  
  LeaveWorkerThread;  
  end;  

 
Сомневаюсь в примочках типа:

Цитата:
 Timer1.Enabled:=false;  

Таймер - это очередь сообщений которые Вы можете словить даже после присвоения.
 
А тут имеется ввиду Мемо который не открывает очередь сообщений?

Цитата:
       IdMessage.Clear;  
        Main.Form1.Memo1.Clear;  
        IdMessage.NoDecode:=false;  

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 10:54 07-10-2008 | Исправлено: delover, 11:38 14-10-2008
Aladdinych



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dimoniusis
 
>> SendMessage - WM_Char/Wm_text, если знаешь хендлы
А если я не знаю хендлы элементов управления, есть какой-либо способ их узнать.
Исходников этого приложения у меня естественно нет.

Всего записей: 322 | Зарегистр. 18-10-2005 | Отправлено: 09:47 08-10-2008
ViStar



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как вы руссифицируете свои приложения?
Раньше писал на Delphi 7, и использовал переводные модули (consts.pas и т.д.) бесплатно предоставленные Polaris Software. В приложениях, в которых нужен русский, я в Search Path указывал путь к русским ресурсам и все.
Сейчас перебрался на Delphi 2007, а переводных модулей нет. Что делать?

 
Polaris Sofware, а ныне PoleSoft Technologies Group выпустила обновление русификации Delphi: http://polesoft.ru/project/dpasrus
Версия 3.0 для Delphi 2007 и ниже

Всего записей: 11 | Зарегистр. 23-09-2002 | Отправлено: 16:42 08-10-2008 | Исправлено: ViStar, 16:44 08-10-2008
Erazer



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кому нить удалось подружить 2009 и JCL 1.103 Testing Build 3110 ?
у меня не ставится  Под конец останавливается на Building RegHelper.dpr...
и выдает System error. Code 2. Не удается найти указанный файл.
До этого стояла и сейчас снова стоит 1.101 и никаких гвоздей, но хочется перехать на 2009 а джедаи не дают

Всего записей: 1729 | Зарегистр. 02-08-2003 | Отправлено: 17:22 08-10-2008
Diadema



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть доработка для Оутлука. С помощью нее Оутлук при открытии писем с определенным вложением запускает определенную программу и ей на открытие передает эти файлы. Это все работает.
Но Оутлук в "Области чтения" (Reading Pane) пытается так же что-то отобразить и не может, в итоге пишет "Невозможно отобразить элемент в области чтения. Откройте элемент для чтения его содержимого".
Теперь вопрос. Как заставить Оутлук показывать в "Области чтения" текста письма, а не пытаться отобразить содержимое вложенных файлов.
 
Добавлено:
Почему в этой теме спросите вы. Потому что доработка выполнена на делфи. И видимо в код доработки необходимо внести какие-то изменения.

Всего записей: 185 | Зарегистр. 17-01-2006 | Отправлено: 17:28 08-10-2008
Erazer



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Diadema но ты сначала выясни Как заставить Оутлук показывать в "Области чтения" текста письма, а не пытаться отобразить содержимое вложенных файлов. ", а потом уж когда вопросы по реализации на делфи возникнут пешы суда... а то мусоришь фигней всякой не по теме...

Всего записей: 1729 | Зарегистр. 02-08-2003 | Отправлено: 18:30 08-10-2008
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Diadema

Цитата:
Почему в этой теме спросите вы. Потому что доработка выполнена на делфи. И видимо в код доработки необходимо внести какие-то изменения.

Создавай отдельную тему и код на Дельфи в студию. Все остальное без кода будет домыслами.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 03:42 09-10-2008
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, извините, если вопрос элементарный, но как связываются файлы с узлами TTreeView? Из имеющихся у меня справочных данных я не нашел, как связать свойство Data узла с файлом.

Всего записей: 3144 | Зарегистр. 29-09-2005 | Отправлено: 10:59 09-10-2008
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DmitryKz
Например заведи StringList, в него пиши имена фалов, а в Data пиши номер соответствующего элемента StringList

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 11:23 09-10-2008
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RomanTim
Спасибо, у меня была такая мысль, но я подумал, может существует какая-то другая "правильная" метода

Всего записей: 3144 | Зарегистр. 29-09-2005 | Отправлено: 11:40 09-10-2008
Maximus777

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, если кто знает. Как оформить следующий запрос
Подробнее...
При попытке выполнить пишет "Ошибка синтаксиса, пропущен оператор". Извиняюсь что вопрос не совсем по теме. Пишу в Delphi 10.

Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 21:22 09-10-2008
iddqd2



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maximus777
 
SQL.Add('where Дата between #'+FormatDateTime('mm''/''dd''/''yyyy',Date1.Date)+'# and #'+FormatDateTime('mm''/''dd''/''yyyy',Date2.Date)+'#');  
А "Дата" к какой таблице относится?
 
Добавлено:
DmitryKz
Или типа
PRec = ^TREc
TRec = record
  FileName : String[200];
  ........
end;
 
 
При создании ноды:
Var
  Rec : PRec;
Begin
  New(Rec);
  REc.FileName := 'sdsdsds';
  Node.Data := Rec
 
Только при удалении ноды/закрытии программы память надо будет очищать. А вообще - рекомендую пользоваться бесплатным VirtualStringTree, чем этим убожеством - я про стандартный TTreeView.

Всего записей: 14 | Зарегистр. 26-10-2006 | Отправлено: 22:06 09-10-2008
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
VirtualStringTree

А где он обитает, что-то не могу найти?

Всего записей: 3144 | Зарегистр. 29-09-2005 | Отправлено: 00:33 10-10-2008
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нашел под названием VirtualTreeView на _http://www.soft-gems.net

Всего записей: 3144 | Зарегистр. 29-09-2005 | Отправлено: 03:04 10-10-2008
Maximus777

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iddqd2

Цитата:
А "Дата" к какой таблице относится?

С датой всё ОК. Таблица акцессовская, mdb. Проблема именно с JOINом. Как связать три таблицы? С двумя получается, а с тремя нет.
 

Всего записей: 674 | Зарегистр. 27-07-2007 | Отправлено: 05:55 10-10-2008
Coltrain

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maximus777
Про дату. Имелось ввиду, что в условии Where запроса перед именем поля "Дата"
 не прописано имя таблицы. Структуры всех 3 таблиц не видел, но могу догадаться, что поля с именем "Дата" есть наверняка у 2-ой и 3-ей таблицы. И парсер акцесса не знает, для какой таблицы применить это условие. Для случая запроса из двух таблиц поле с именем "Дата" было только у одной таблицы, поэтому запрос отработал.

Всего записей: 160 | Зарегистр. 31-07-2002 | Отправлено: 10:28 10-10-2008
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryKz
Data в узлах, - это аналог лапши доширак, который не всегда удобно употребить спустя годы после готовки. Более правильно (ИМХО) - OnCreateNodeClass, а так - soft-gems.
 
зы
Никакого подтекста к продуктам быстрой готовки. Они иногда очень кстати, как и лапша.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 16:10 10-10-2008 | Исправлено: delover, 11:41 14-10-2008
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 4
ShIvADeSt (28-06-2009 02:10): Продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=10477


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru