Вопросы новичка

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

а если вот так

Код: Выделить всё

OpenDialog1.InitialDir := 'D:\TEST\'
?
Leon
новенький
Сообщения: 65
Зарегистрирован: 30.03.2011 09:27:02

Сообщение Leon »

Вы знаете,я уже пробовал и так и сяк.И брал в кавычки,и писал все маленькими буквами,и писал D:/TEST,D:/TEST/.Субкаталоги всеравно не открывает.И не знаю какую ему устроить хитрость.Может Дазарус глючит?
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

а слешы-то почему в другую сторону? Без проблем все открывает, ибо используется данная фича в куче проектов для настроек
Leon
новенький
Сообщения: 65
Зарегистрирован: 30.03.2011 09:27:02

Сообщение Leon »

Спасибо,Padre_Mortius.Уже работает.Ох уж эти слэши... :(
.wOvAN
постоялец
Сообщения: 118
Зарегистрирован: 16.04.2010 06:36:12
Контактная информация:

Сообщение .wOvAN »

Какая директива задает расширение откомпилированного проекта? в Delphi это {$E exe} в лазарусе не работает.
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Можно указать только полное имя получаемого исполняемого файла. Параметр командной строки -o.
.wOvAN
постоялец
Сообщения: 118
Зарегистрирован: 16.04.2010 06:36:12
Контактная информация:

Сообщение .wOvAN »

Это не вариант, нужно именно задавать расширение. Так это для компонента.
Leon
новенький
Сообщения: 65
Зарегистрирован: 30.03.2011 09:27:02

Сообщение Leon »

Ребята,здравствуйте.
Подскажите,пожалуйста,как организовать имитацию ввода с клавиатуры.
Дело вот как обстоит.Набираю я текст в своем модуле.Текст сохраняется в файл.Потом этот текст нужно передать в соответствующую таблицу программы стороннего разработчика.В оригинале этот текст набивается с клавы прям в эту таблицу,но программа капризна.Пока я набираю таблицу может пропасть интернет и данные на сервер уже не попадут,программа будет материться.При перезапуске данные не сохраняются и приходится все ручками перебирать заново.А так бы набрал однажды в своем модуле,сохранил в файл и кликом по кнопочке передал эти данные в табличку другой программы по типу имитации ввода с клавы.Как сделать на Лазарусе? Всем консультантам заранее спасибо.
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Leon
Если речь идёт о работе "через интернет", то у принимающей программы должно быть специальное свойство - слушать сеть и ждать обращения к ней на определённом порту. Пример - веб-серверы и серверы баз данных.
Если под словом "таблица" Вы имеете в виду базу данных, то текст можно передавать туда напрямую.
Leon
новенький
Сообщения: 65
Зарегистрирован: 30.03.2011 09:27:02

Сообщение Leon »

Да нет же.Диалог с Интернетом ведет основная программа.Мой модуль должен только уметь посредством имитации нажатия на клавиши передать набранные данные в таблицу этой програмы.И все.
Я понимаю так.Модуль читает из файла и передает в таблицу имитацию нажатий,например "1","5","ENTER" (передали в таблицу число 15),"2","7""ENTER" (передали в таблицу число 27), и т.д.
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

посмотрите в сторону AutoIt, может и не потребуется ничего изобретать
Leon
новенький
Сообщения: 65
Зарегистрирован: 30.03.2011 09:27:02

Сообщение Leon »

Здравствуйте всем.Порылся я,значит,на делфовских форумах и нашел-таки некую процедуру keyevent,описанную в модуле Windows.Попробовал ее работу на наспех склепаной программке в Лазарусе - работает! Да вот беда какая: процедура имитирует нажатые клавиши только внутри своей программы,а требуется,чтобы эти виртуальные нажатия передавались параллельно запущеной сторонней программе,например в Блокнот.Сам Блокнот реагирует на реальные клавиши,когда на нем находится фокус.С другой стороны,чтобы дать команду программе вимитации нажатия виртуальных клавиш,этот фокус надо перевести на эту программу.Тогда фокус уйдет из Блокнота и он ничего не получит.Как все-таки выйти из этой крутой ситуации,подскажите кто,пожалуйста :roll:
А насчет AutoIt да там целая система,отдельный язык программирования.Нужно забросить все ранее постигнутое в Лазарусе и переориентировать мозги на менталитет команд АутоИта.Поверьте,уж нет охоты... :?
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

Leon, на самом деле имитация идет не внутри определенной программы, а в поле, которое сейчас активно. Для того, чтобы использовать имитацию клавиш в нужном поле нужно сначала это поле сделать активным (передать в него фокус) и только после этого организовывать имитацию нажатия клавиш. Для правильной работы необходимо четко понимать как работает оконная система и система сообщений. Для более наглядного понимания в пакете Дельфи была утилита, которая кажется называется WinSight32
вася
незнакомец
Сообщения: 3
Зарегистрирован: 26.09.2011 19:07:20

Сообщение вася »

E.WorkSheets[1].Cells[e1,e2].NumberFormat:='@' ;
В Delphi такой код работает, а вот в lazaruse нет.
Подскажите что делать?

Добавлено спустя 8 часов 57 минут:
Доброе время суток!
Подскажите, как правильно задать формат ячейки Excel
…Cells[e1,e2].NumberFormat:=???
Заранее спасибо!

Добавлено спустя 1 минуту 32 секунды:
Odyssey

Доброе время суток!
Подскажите, как правильно задать формат ячейки Excel
…Cells[e1,e2].NumberFormat:=???
Заранее спасибо!
Leon
новенький
Сообщения: 65
Зарегистрирован: 30.03.2011 09:27:02

Сообщение Leon »

С клавиатурой и вводом в чужие окна я малость разобрался.Все мудрость должна быть прописана через АРI.Ну да ладно.
Теперь следующий вопрос.Скачал исходник на Делфи-форуме и попробовал его конвертировать под Лазарус.Там даже функция такая есть.Все прошло благополучно,но запусе не удался.Говорит,что нету модуля Graph.Где его взять и как подключить? Спасибо.
Ответить