Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 495
от 07.06.2006, 02:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 345, Экспертов: 61
В номере:Вопросов: 8, Ответов: 13


Вопрос № 44849: Уважаемые эксперты! Не могли бы Вы ответить вот на такой вопрос: мне необходимо создать рисунок разрешением 4000/4000 dpi. и размером 1x1 дюйм. Для этого я использую код bmp3=new Graphics::TBitmap(); bmp3->Height=4000; bmp3->Width=4000;...
Вопрос № 44861: Добрый день! Подскажите как это можно сделать: Есть служба, Win200, как провнрить запущенна она на данный момент и как, если требуется, запустить ее. Заранее спасибо....
Вопрос № 44884: Здравствуйте, уважаемые эксперты. Вопрос по методу TStringlist.IndexOf Использует ли он двоичный поиск (или методом двоичного дерева, как он там называется) в сортированных списках? Если нет, то какой есть класс, использующий быстрый поис...
Вопрос № 44889: привет! вотпрос в следуещем. как из программы например вводишь досовскую команда "rmdir имя папки" и команда выполняется (нужно именно так). и еще как перезгрузить копьютер программно?...
Вопрос № 44905: Здравсвуйте, скажите, пожалуйста, есть ли стандартная функция, которая отнимала бы от заданной даты несколько дней? Если такой нет, напишите, пожалуйста, возможный код такой фукции, если вас не затруднит....
Вопрос № 44909: Здраствуйте, уважаемые эксперты Мне нужно сделать так, чтобы из программы запускалось консольное приложение, причем программа ждала пока оно не закончит работу. Подскажите, как? Работаю в Делфи 7. ( Я уже искал инфу об этом, запустить м...
Вопрос № 44911: Здравствуйте! Как написать свой cgi скрипт на Делфи чтобы у него было поле ввода и кнопка.Событие=если полеввода1=1 то открыть страницу 2.html(это событие прописать в Баттон1)? Пытался писать,но не получается. Как его устанавливать в cgi ...
Вопрос № 44936: Здравствуйте господа прогаммисты. Возникла проблема как проебразовать String в PAnsiChar, в WinExec путь прописать. Заранее благодарен...

Вопрос № 44.849
Уважаемые эксперты! Не могли бы Вы ответить вот на такой вопрос: мне необходимо создать рисунок разрешением 4000/4000 dpi. и размером 1x1 дюйм. Для этого я использую код bmp3=new Graphics::TBitmap();
bmp3->Height=4000;
bmp3->Width=4000;
FillBits(bmp3->Canvas);
bmp3->SaveToFile("c:\hologram.bmp");
в результате создаётся файл заданных размеров с разрешением 96x96 dpi.Как сделать так, чтобы генерировался файл размером 1x1 inch, но с разрешением 4000x4000 dpi?
С Уважением,
Дмитрий d-2@inbox.ru
Отправлен: 01.06.2006, 01:37
Вопрос задал: Дмитрий Дмитриевич Иванов (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Дмитрий Дмитриевич Иванов!
Насколько я понимаю, свойство dpi не прописывается средствами Delphi или C Builder. Однако, если вам это нужно, то вы можете создать файл, а потом поменять в нем нужные байты.
Вот ссылка на статью про формат bmp: http://jenyay.wallst.ru/index.php?id=bmp
Сами посчитаете, сколько там байт от начала =)

PS: Писали бы в ветку Си, с си-шным-то синтаксисом - там бы вам кто-дь знающий msdn что-дь пог бы посоветовать.
Ответ отправил: Сухомлин Кирилл Владимирович (статус: 7-ой класс)
Ответ отправлен: 01.06.2006, 11:22


Вопрос № 44.861
Добрый день!
Подскажите как это можно сделать: Есть служба, Win200, как провнрить запущенна она на данный момент и как, если требуется, запустить ее.
Заранее спасибо.
Отправлен: 01.06.2006, 07:29
Вопрос задал: AllexZ (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Проходящий Мимо
Здравствуйте, AllexZ!
Ниже приводится код, который поможет Вам проверить, запущена ли служба. Ещё есть интересная статья о сервисах, рекомендую прочитать: http://delphiworld.narod.ru/base/delphi_services.html.
Ответ на этот вопрос давно был дан на http://delphiworld.narod.ru/dw.html, http://delphiworld.narod.ru/base/run_or_start_service.html,
большинство аналогичных вопросов возникают от неумения (или нежелания) поискать.

Приложение:

---------
Carpe diem!

Ответ отправил: Проходящий Мимо (статус: 4-ый класс)
Ответ отправлен: 01.06.2006, 09:37
Оценка за ответ: 5
Комментарий оценки:
Спасибо за оперативность.

Отвечает: sir henry
Здравствуйте, AllexZ!
Можно несколько упростить задачу. Дело в том, что если служба уже работает, то повторно она не запустится. Поэтому можно сделать так:
ShellExecute(0, 'open', 'net', 'start Имя_Службы', NIL, NIL, SW_HIDE);
Конечно этот метод подходит только в том случае, если службу требуется запустить в обязательном порядке.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 01.06.2006, 10:46
Оценка за ответ: 5
Комментарий оценки:
Спасибо за оперативность.


Вопрос № 44.884
Здравствуйте, уважаемые эксперты.
Вопрос по методу TStringlist.IndexOf
Использует ли он двоичный поиск (или методом двоичного дерева, как он там называется) в сортированных списках?
Если нет, то какой есть класс, использующий быстрый поиск?
Написать могу, но, сами понимаете, использовать библиотечную ф-ию лучше, но хочу быть уверенным, что работать будет быстро.
В проекте используется список на 100K строк и к нему надо будет обратиться ~1M раз за время работы проги, так что последовательный поиск неприемлем.
Отправлен: 01.06.2006, 11:54
Вопрос задал: Сухомлин Кирилл Владимирович (статус: 7-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sosedov
Здравствуйте, Сухомлин Кирилл Владимирович!

Попробуйте THashedStringList.
Цитата из Help:

THashedStringList is a string list that uses a hash table internally to speed the process of locating strings... By using THashedStringList instead of TStringList, you can improve performance when the list contains a large number of strings.
Ответ отправил: Sosedov (статус: 1-ый класс)
Ответ отправлен: 01.06.2006, 12:55
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо! Двоичное дерево, наверное, быстрее, но понятно, откуда копать.

Отвечает: Полховский Александр Владимирович
Здравствуйте, Сухомлин Кирилл Владимирович!
TStringList использует последовательный поиск. Лично я писал отдельную функцию для двоичного поиска. Ничего сложного, на самом деле. Прирост скорости огромный.-
---------
Спасём нашу хрупкую планету !
Ответ отправил: Полховский Александр Владимирович (статус: Практикант)
Ответ отправлен: 01.06.2006, 16:31


Вопрос № 44.889
привет! вотпрос в следуещем. как из программы например вводишь досовскую команда "rmdir имя папки" и команда выполняется (нужно именно так). и еще как перезгрузить копьютер программно?
Отправлен: 01.06.2006, 12:59
Вопрос задал: Barbos (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Gh0stik
Здравствуйте, Barbos!

Запуск досовских команд предлагаю производить с использованием команды ShellExecute:

ShellExecute(handle,PChar('open'),PChar('cmd'),PChar('/c'+'команда с параметрами'),nil,SW_HIDE);

Не забудте предварительно подключить
uses ShellApi;
Вот команды которые позволяют программно выключить или перезагрузить комп:
ExitWindowsEx(EWX_SHUTDOWN,0);
ExitWindowsEx(EWX_REBOOT,0);

Удачи!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаються события на земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: 10-ый класс)
Ответ отправлен: 01.06.2006, 13:37


Вопрос № 44.905
Здравсвуйте, скажите, пожалуйста, есть ли стандартная функция, которая отнимала бы от заданной даты несколько дней? Если такой нет, напишите, пожалуйста, возможный код такой фукции, если вас не затруднит.
Отправлен: 01.06.2006, 15:55
Вопрос задал: Archangel (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, Archangel!

Используйте функцию IncDay, задав отрицательное количество дней
Ответ отправил: Лукьяненко Алексей Валериевич (статус: 3-ий класс)
Ответ отправлен: 01.06.2006, 16:05
Оценка за ответ: 5

Отвечает: Gh0stik
Здравствуйте, Archangel!

Вы просто отнимаете столько дней от переменной типа дата сколько Вам нужно (пересчет месяцев идет автоматически).

Например:
Edit4.Text:=DateToStr(Date-16);

Функция "Date" выдает текущую дату, "Date-16" уменьшаем дату, скажем, на 16 дней. С помощью функции DateToStr преобразовываем ответ в строку.
Кстати функции по работе с датой приведены в ответе на вопрос №44816.

Удачи!!!
---------
Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаються события на земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: 10-ый класс)
Ответ отправлен: 01.06.2006, 16:08
Оценка за ответ: 5

Отвечает: Kazakh
Здравствуйте, Archangel!
пропишите в Uses dateUtlis
в этом модуле много разных полезных функция для работы с датами.

А вообще дата хранится типом double,
где целая часть дата, а дробная время.
Так если к вашей дате прибавить 1, то это и будет плюс один день
---------
Если собеседник затрудняется ответить, значит, вопрос поставлен правильно.
Ответ отправил: Kazakh (статус: 9-ый класс)
Ответ отправлен: 01.06.2006, 16:08


Вопрос № 44.909
Здраствуйте, уважаемые эксперты
Мне нужно сделать так, чтобы из программы запускалось консольное приложение, причем программа ждала пока оно не закончит работу.
Подскажите, как? Работаю в Делфи 7.
( Я уже искал инфу об этом, запустить можно с помощью CreateProcess, но как сделать, чтобы приложение ждало окончания работы процеса?)
Отправлен: 01.06.2006, 16:33
Вопрос задал: Leshka (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ерёмин Андрей
Здравствуйте, Leshka!
Смотрите пример функции в приложении. Функция запускает указанное приложение и ждёт, пока оно не закончит свою работу. Использовать её следует так: WinExecAndWait32('c:\windows\notepad.exe',1);

Приложение:

---------
Нет правила без исключений. Правило без исключений - исключение из правил.

Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 01.06.2006, 17:02


Вопрос № 44.911
Здравствуйте!
Как написать свой cgi скрипт на Делфи чтобы у него было поле ввода и кнопка.Событие=если полеввода1=1 то открыть страницу 2.html(это событие прописать в Баттон1)?
Пытался писать,но не получается.
Как его устанавливать в cgi bin?
Спасибо!
Отправлен: 01.06.2006, 16:50
Вопрос задал: Sassoft (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Решетник Д
Здравствуйте, Sassoft!
ИМХО Вы слегка не на ту ветку форума написали.
CGI приложение, на сколько я знаю, передает результат (вэб код) на стандартный stdout.
то есть в консоли написать на Паскале writeln('<html>');...... достаточно
небольшая статья с примером есть в Делфиворлде delphiworld.narod.ru
Вам стоит почитать доку по хтмл инастройке вэб-серверов.
---------
Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус: 7-ой класс)
Ответ отправлен: 01.06.2006, 18:52


Вопрос № 44.936
Здравствуйте господа прогаммисты. Возникла проблема как проебразовать String в PAnsiChar, в WinExec путь прописать.
Заранее благодарен
Отправлен: 02.06.2006, 00:32
Вопрос задал: Leshiy2006 (статус: 6-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Решетник Д
Здравствуйте, Leshiy2006!
Делфи сам преобразовует этот тип данных

str: string;
PChar(str)
---------
Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус: 7-ой класс)
Ответ отправлен: 02.06.2006, 00:37

Отвечает: Lexus
Здравствуйте, Leshiy2006!

Не вы первый, и, наверно, не вы последний задаете этот вопрос:)
Воспользуйтесь приведением типов:

PAnsiChar(s:string).

Например:
WinExec(PAnsiChar('c:/proga.exe'),0);
---------
"Все что вы скажете будет использовано против вас в суде..." (УК РФ)
Ответ отправил: Lexus (статус: 3-ий класс)
Ответ отправлен: 02.06.2006, 09:41
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.34 от 01.06.2006
Яндекс Rambler's Top100

В избранное