Вопрос № 117799: Здравствуйте.
Как мне мое приложение сделать службой?
Что бы могла себя добавить. Могла запускаться останавливаться и тд.
Приложение есть оконное нужно просто добавить эту функцию....Вопрос № 117806: Здравствуйте, уважаемые эксперты. Надеюсь на Вашу помощь.
Суть проблемы: имею небольшой опыт работы с Delphi, в частности с теми компонентами, которые нужно будет использовать в данной программе, поэтому вопрос такой: как лучше реализовать задума...Вопрос № 117825: Здравствуйте господа эксперты. Как можно корректно перевести константу из типа TGUID в PGUID для работы с DirectDraw7....Вопрос № 117854: Здрасти уважаемые эксперты. Вопросик вроде и не сложный но всёже : в Microsoft*овском
Excel*е есть протяжка пишим всолбик 1 2 3 а протяжкой 4 5 6 итд. Я хотелбы реализовать такую протяжку у меня на Form1 стоит 2 Edit*а и 1 Memo и кнопка мне нужно реа...Вопрос № 117860: Здравствуйте, уважаемые Эксперты!!!
Суть вопроса в следующем.
Имеется приложение, к программному коду доступа не имею.
Нужно сделать такую программу, котрая бы запускала данное приложение в режиме "Поверх всех окон".
Заранее...Вопрос № 117867: Здраствуйте господа эксперты!
Просветите по следующему вопросу.
Существует ли бесплатный вариан поставки Delphi с урезанными возможностями, но достаточный для первоначального обучения.
О проекте Lazarus и Free Pascal знаю.
если есть ...Вопрос № 117919: Здравствуйте господа Эксперты! Подскажите, как в строк. переменную считать системную дату,мес.,год? Т.е., какая функция для этого подойдёт?В реестре параметра не нашол. Пожалуйста, если можно код процедуры. Спасибо!...Вопрос № 117977: Здравствуйте, маленький вопросик, как сделать TImage поверх TPageControl? Наверное только через апи?.....
Вопрос № 117.799
Здравствуйте.
Как мне мое приложение сделать службой?
Что бы могла себя добавить. Могла запускаться останавливаться и тд.
Приложение есть оконное нужно просто добавить эту функцию.
Отправлен: 10.01.2008, 15:14
Вопрос задал: Sergoss (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Drbear
Здравствуйте, Sergoss!
читайте:
http://rusfaq.ru/info/Question/101369
Ответ отправил: Drbear (статус: 5-ый класс)
Ответ отправлен: 10.01.2008, 15:21
Вопрос № 117.806
Здравствуйте, уважаемые эксперты. Надеюсь на Вашу помощь.
Суть проблемы: имею небольшой опыт работы с Delphi, в частности с теми компонентами, которые нужно будет использовать в данной программе, поэтому вопрос такой: как лучше реализовать задуманное?
Если будут примеры, то вобще супер.
Итак, пишу программу для рассылки SMS родителям студентов. Отправка сообщения реализуется через email-sms шлюзы операторов. С этим проблем нет, сообщения отправляются.
Следущий шаг - Реализация БД телефонных номеров с ФИО и прочей информацией. Хочу сделать 2 таблицы, которые будут отображаться в окне, в одной - ФИО, тел.номер и с др. инфа, в другой - 2 столбца: номер группы и столбец со значением "+" или "-" - в какие группы отправлять сообщение. + возможность добавления и удаления групп и сообщений.
Опыта работы с БД в Delphi у меня никакого, как лучше хранить эти таблицы? ADO, BDE или еще как-то? В каких компонентах лучше выводить информацию из БД?
Может есть примеры подобных программ? интересует только реализация БД. Почему то пугает разнообразие всех этих ADO, BDE и прочего.
И еще интересно для каких технологий(ADO, BDE,..) необходимо что-то устанавливать дополнительно для их работы(драйвера, библиотеки и прочее)?
Отправлен: 10.01.2008, 15:40
Вопрос задал: Benhu (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Евсюков Виталий Евгеньевич
Здравствуйте, Benhu!
Драйверы никакие, в 99% случаев, устанавливать не надо, если используешь ADO. BDE - suxx, не используй это. Плюс на компе без установленных борландовских библиотек пахать не будет. Используем по старинке ADOTable, DataControl и DBGrid
--------- I Aear can ve na Mar
Думаю, Вам будет полезно обзавестись литературой - в книгах можно найти ответы на многие вопросы. В качестве примера предлагаю такую книгу:
Андрей Сорокин "Delphi Разработка баз данных"
Если у Вас не получится найти её в бумажном варианте, то можно скачать в электронном, например - с www.librus.ru.
Хранить таблицы лучше при помощи какого-либо SQL-сервера, поскольку это предоставит в Ваше распоряжение богатые возможности языка SQL. В качестве бесплатных серверов могу назвать Firebird, MySQL, PostgreSQL. Мне нравится последний. С BDE, пожалуй, лучше не связываться - стареет эта технология, да и драйвер BDE поставить без Delphi - задача не тривиальная. К PostgreSQL, равно как и к MS SQL Server (этот уже довольно дорогой) я привык обращаться через ADO. В случае с MS SQL Server нужно будет скачать с сайта Microsoft
драйвер MDAC (весит немного и распространяется бесплатно) - его достаточно, чтобы программа могла обращаться к серверу по сети. При помощи ADO-шных компонентов можно создать и полностью локальную базу без каких-либо SQL-серверов, но в этом случае Вы будете ощутимо ограничены в своих возможностях (например - наладить сетевую и многопользовательскую работу такой базы будет довольно трудно).
По поводу таблиц предлагаю такую структуру:
Таблица Group:
Group_Id: integer - уникальный идентификатор строки (обязательно),
GroupNumer: VarChar(16) - номер группы (можно с буквами),
SMS_Sending: VarChar(1) - '+' или '-' - в какие группы отправлять SMS,
прочие поля, если необходимо.
В программе Вам понадобятся следующие компоненты (для случаев с MS SQL Server, PostgreSQL и локальной базы, в других случаях скорее всего понадобятся "родные" компоненты):
ADOConnection - компонент для соединения с базой - один на всю программу;
ADOTable - набор данных (таблица);
DataSource - "клей" между наборами данных и визуальными компонентами вроде DBGrid;
DBGrid - визуальный компонент, отображающий данные из таблицы.
Если Вы хотите серьёзно заниматься базами данных, то вместо ADOTable имеет смысл использовать ADOQuery - этот компонент умеет выбирать из базы данные, удовлетворяющие каким-либо условиям (в зависимости от текущей задачи), хотя начать работу с ним будет чуть посложнее. На каждую таблицу, которую Вы хотите отображать пользователю, нужна своя связка ADOTable/ADOQuery ==> DataSource ==> DBGrid, но на все таблицы достаточно одного ADOConnection-а.
Если Вы сделаете выбор в пользу сервера PostgreSQL, я смогу оказать Вам более детальную помощь.
--------- Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.
Ответ отправил: Delph (статус: Студент)
Ответ отправлен: 11.01.2008, 09:22
Вопрос № 117.825
Здравствуйте господа эксперты. Как можно корректно перевести константу из типа TGUID в PGUID для работы с DirectDraw7.
Отправлен: 10.01.2008, 17:05
Вопрос задал: Genia007 (статус: 4-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, Genia007!
Очень просто :)
var
ID: TGUID;
PID: PGUID;
begin
ID := '{12A85C67-643A-4FCC-A276-AC0EBD4E10B6}';
PID := @ID;
...
end;
А если для передачи в функцию единоразово - то просто @имя_переменной_TGUID в месте параметра
Ответ отправил: Лукьяненко Алексей Валериевич (статус: 10-ый класс)
Ответ отправлен: 10.01.2008, 17:12 Оценка за ответ: 5 Комментарий оценки: Большое спасибо, совсем забыл про @
Отвечает: Евсюков Виталий Евгеньевич !!! Здравствуйте, Genia007! Обычно всегда вроде PHrenovina = @THrenovina и THrenovina = ^PHrenovina. Поправьте, если брешу;)
--------- I Aear can ve na Mar
Ответ отправил: Евсюков Виталий Евгеньевич (статус: 3-ий класс)
Ответ отправлен: 10.01.2008, 22:25 Оценка за ответ: 5 Комментарий оценки: Спасибо, сработало только PHrenovina = @THrenovina, на THrenovina = ^PHrenovina Дэлфи матерится.
Вопрос № 117.854
Здрасти уважаемые эксперты. Вопросик вроде и не сложный но всёже : в Microsoft*овском Excel*е есть протяжка пишим всолбик 1 2 3 а протяжкой 4 5 6 итд. Я хотелбы реализовать такую протяжку у меня на Form1 стоит 2 Edit*а и 1 Memo и кнопка мне нужно реализовать протяжку 1 и 2 едите числа а при нажатие на кнопку чтоб в мемо производилась протяжка ещё 10 значений. желательно с примером зарание спасибо.
Отвечает: Louken
Здравствуйте, Мокроусов Алексей Сергеевич!
Код в приложении.
Протяжку можно осуществлять не только целых чисел, но и вещественных (дробных).
Для примера, введите в один едит "1,9" (без ковычек), а во второй "2". получите протяжку от "2,1" до "3", с шагом 0,1. Можно поменять числа местами.
Приложение:
Ответ отправил: Louken (статус: Студент)
Ответ отправлен: 10.01.2008, 20:48 Оценка за ответ: 5 Комментарий оценки: Спасибки!! а for i:=1 to 10 do begin от 1 до 10 ето скодько выдоватся будет в мемо заначений?
Вопрос № 117.860
Здравствуйте, уважаемые Эксперты!!!
Суть вопроса в следующем.
Имеется приложение, к программному коду доступа не имею.
Нужно сделать такую программу, котрая бы запускала данное приложение в режиме "Поверх всех окон".
Заранее благодарен!!!
С уважением Павел Форсман.
Отвечает: PavelGM
Здравствуйте, Форсман Павел Вячеславович!
Сначала надо провести анализ и выяснить имя класса окна приложения, которое хотите запускать (для этого можно использовать программы типа Spy++ или самим через WinAPI - EnumWindows - до запуска и после).
Запуск осуществляется стандартными способами (WinExec or CreateProcess or ShellExecute)
По классу окна при помощи FindWindow находится окно (если оно не одно, то можно провести анализ заголовков, но в подобных задачах чаще всего это не нужно). Может потребоваться некоторое время - пока программа запуститься и создаст окно.
Далее добавляем к стилям окна WS_EX_TOPMOST:
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOPMOST);
После этого может еще понадобиться SetForegroundWindow, чтобы "поднять" окно совсем наверх среди всех TOPMOST.
P.S. Все это применимо только к обычным программам, не использующим полноэкранный DirectDraw (т.е. с большинством "тяжелых" игр не пройдет :) )
Ответ отправил: PavelGM (статус: Студент)
Ответ отправлен: 11.01.2008, 10:46 Оценка за ответ: 5 Комментарий оценки: Огромное спасибо за ответ, но дело в том, что я не силен в WinAPI.
Отвечает: Сазонов Михаил Владимирович
Здравствуйте, Форсман Павел Вячеславович!
Создайте форму.
Куски кода в приложении, вроде и все.
Здраствуйте господа эксперты!
Просветите по следующему вопросу.
Существует ли бесплатный вариан поставки Delphi с урезанными возможностями, но достаточный для первоначального обучения.
О проекте Lazarus и Free Pascal знаю.
если есть то можно ссылку, на оф. сайте борланда ничего не нашел или плохо искал.
Спачибо.
Отвечает: Евсюков Виталий Евгеньевич
Здравствуйте, Костя Симанович!
Turbo Delphi; Kylix (под никсы)
--------- I Aear can ve na Mar
Ответ отправил: Евсюков Виталий Евгеньевич (статус: 3-ий класс)
Ответ отправлен: 10.01.2008, 22:14 Оценка за ответ: 4 Комментарий оценки: Linux я начал изучать недели две назад более менее серьездно, и если Kylix действительно бесплатный то это не может не радовать, останется только установить.
Отвечает: Николай Владимирович / Н.В.
Здравствуйте, Костя Симанович!
Бесплатной версии Delphi нет.
Кстати, Borland уже не занимается этим - нынешний разработчик CodeGear.
Посмотрите Turbo Delphi Explorer. Это бесплатная версия Turbo Delphi. Главное отличие платной и бесплатной версии Turbo продуктов – возможность создания и использования сторонних компонентов. Однако речь не идет о лицензионных ограничениях. Даже бесплатный продукт может быть использован в коммерческих целях. И если это действительно так, то бесплатные Turbo продукты составят весомую конкуренцию продуктам линии Microsoft's Express. Последние имеют существенные лицензионные ограничения. (источник)
Удачи!
Ответ отправил: Николай Владимирович / Н.В. (статус: Практикант)
Ответ отправлен: 10.01.2008, 22:15 Оценка за ответ: 5 Комментарий оценки: Про Turbo Delphi Explorer не знал, теперь знаю, буду изучать его возможности.
Вопрос № 117.919
Здравствуйте господа Эксперты! Подскажите, как в строк. переменную считать системную дату,мес.,год? Т.е., какая функция для этого подойдёт?В реестре параметра не нашол. Пожалуйста, если можно код процедуры. Спасибо!
наверно это имелось ввиду
--------- Программист - это человек который решает проблему, о которой вы не знаете, способом который вы не понимаете
Ответ отправил: Raptor3 (статус: 4-ый класс)
Ответ отправлен: 11.01.2008, 06:47 Оценка за ответ: 3
Отвечает: Delph
Здравствуйте, Дубинин С.И.!
Саму текущую дату можно прочитать при помощи функций Now ("сейчас": текущие дата и время) и Date (текущая дата), обе функции имеют тип TDateTime. Выделить из текущей даты день, месяц и год можно с помощью функций DayOf(Now), MonthOf(Now), YearOf(Now). Эти функции определены в модуле DateUtils (просто добавьте этот модуль в строку uses). Функции DayOf, MonthOf, YearOf имеют целый тип и выделяют соответственно день, месяц и год из любого переданного им параметра с типом TDateTime, поэтому Вы можете работать
не только с текущей датой, а вообще с любой.
Перевести текущую дату в строковую переменную можно, например, так:
str := IntToStr(DayOf(Now)) + '.' + IntToStr(MonthOf(Now)) + '.' + IntToStr(YearOf(Now));
Кроме того в Delphi определены ещё 2 подпрограммы для обработки дат:
procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word) - разбивает дату на год, месяц и день;
function EncodeDate(Year, Month, Day: Word): TDateTime - объединяет год, месяц и день в значение типа TDateTime.
--------- Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.
Ответ отправил: Delph (статус: Студент)
Ответ отправлен: 11.01.2008, 09:52 Оценка за ответ: 5 Комментарий оценки: Спасибо! то что нужно. Удачи!
Отвечает: Genia007
Здравствуйте, Дубинин С.И.!
117919
Всё очень просто s:=DateToStr(Date); или если время s:=TimeToStr(Time);
Ответ отправил: Genia007 (статус: 4-ый класс)
Ответ отправлен: 11.01.2008, 11:33 Оценка за ответ: 5
Отвечает: Markedone
Здравствуйте, Дубинин С.И.!
FormatDateTime(‘dd/mm/yyy’, Date()); // Дата будет в виде “11/01/2008”
FormatDateTime(‘dddddd’, Date()); // Дата будет в виде “11 января 2008”
FormatDateTime(‘hh:nn’, Time()); // Время будет в виде “06:41”
FormatDateTime(‘hh:nn - ss’, Time()); // Время будет в виде “06:41 - 24”
Ответ отправил: Markedone (статус: 3-ий класс)
Ответ отправлен: 11.01.2008, 16:23 Оценка за ответ: 5
Вопрос № 117.977
Здравствуйте, маленький вопросик, как сделать TImage поверх TPageControl? Наверное только через апи?..
Отправлен: 11.01.2008, 13:50
Вопрос задал: Red Spirit (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Raptor3
Здравствуйте, Red Spirit!
нехорошо вопросом на вопрос отвечать - но все же - зачем?зачем имагой закрывать пагеконтрол?? я не смог придумать ситуации когда это может пригодиться.
Не проще будет бросить Image на сам TPageControl???
--------- Программист - это человек который решает проблему, о которой вы не знаете, способом который вы не понимаете
Ответ отправил: Raptor3 (статус: 4-ый класс)
Ответ отправлен: 11.01.2008, 14:07 Оценка за ответ: 3 Комментарий оценки: Я не отвечал вопросом, а лишь предположил один из вариантов решения, который мне пришел в голову, но я его еще не пробывал, так как надеялся получить более простой вариант, в общем не важно )
Отвечает: BlackRaider
Здравствуйте, Red Spirit!
Самый "дубовый вариант" кидаем панель снимаем свойства BevelInner и BevelOuter,
размеры под размер Image у Image Align в alClient.
и у Вас в принципе Image поверх PageControl'a
Ответ отправил: BlackRaider (статус: 1-ый класс)
Ответ отправлен: 11.01.2008, 14:16 Оценка за ответ: 4 Комментарий оценки: Попробуем..
Отвечает: Mishell
Здравствуйте, Red Spirit!
не получится даже с через апи - т.к. TPageControl порожден от TWinControl, а TImage - от TGraphicControl
т.е. первый это по-сути окно, а второй просто рисунок на родителе
выход или ложить TImage на TPanel, а ее уже поверх TPageControl
или рисовать на экране поверх всего (и TPageControl в т.ч.) - но это, имхо, извращение :)
Ответ отправил: Mishell (статус: 8-ой класс)
Ответ отправлен: 11.01.2008, 14:17 Оценка за ответ: 4