Добрый день, товарищи эксперты. Написал на Delphi программу передчи данных по модему, но есть одна проблема: при загрузке Windows2000/XP если выключен модем то информация удаляется из списка устройств и не востанавливается при включении (восстановится, если обновить конфигурацию оборудования или перезагрузится). Вопрос: как в программе на Delphi обновить конфигурацию оборудование?
Доброе время суток, levko! На основании данных ничем помочь не могу.Опиши какие компоненты/библиотеки/классы/функции ты используешь. Есть подозрение что твоя программа использует напрямую модем и меняет что-то в его памяти, что приводит к изменению конфигурации его(модема).Поэтому, наверное, Windows обращаясь к нему не обнаруживает(т.е. думает что это новое устройство) и стирает записи о нем в своих конфигурациях оборудования. Ответ отправлен: 17.05.2003, 13:49 Отправитель: BOLT
Вопрос № 648
Помогите пожалуйста, каr в Builder5 сделать программку коиорая выводит все имена и IP адреса в локальной сети. Заранее благодарен.
Приветствую Вас, toha! Ну это можно сделать разными способами... Например: Делаешь ICMP echo-запросы к каждому IP в локалке, по очереди. Если получен ответ, заносить IP в список. библиотека #include Ответ отправлен: 20.05.2003, 12:33 Отправитель: Vdr
Вопрос № 649
Здравствуйте, уважаемые эксперты. 1) Как можно сделать чтобы в отчет QuickRep попадали только выбранные пользователем поля (например, выбором переключателей CheckBox). Если изменить значения свойств Visible или Enabled соответствующим образом, то выбранные поля просто становяться не видимыми и информация получается разбрасанной по всему листу. Как их придвинуть друг к другу ? 2) Я часто из Инет приношу исходники программ и не так часто, но там отсутствует файл ресурсов. И Делфа сама предлагает его создать. Какие "побочные эффекты" могут быть из-за этого ??? 3) Как Вы относитесь к использованию дополнительных компонент. А то вот в одной статье из Инета я только что вычитал, что их пишут не совсем "совестно", да еще и размер программы заметно увеличивется !!!
Приветствую Вас, SATAN aka NAPALM! 1)Че-то я недогнал.Вроде бы все нормально ставится и не разбрасывется(у меня версия QuickReport'а 3.0.9); 2)Если в исходниках нет прямого доступа к ресурсам(исключени - загружается иконка), то это никак не влият на программу.В ином случае файл ресурса должен присутствовать обязательно. 3)Смотря кто пишет компоненты.Я например доверяю только платным(хотя за них и не плачу :з) ), т.к. программисты это дело делают за деньги, а значит шлифуют свои компоненты до совершенства(хотя это тоже не всегда справедливо).Есть, конечно и неплохие freeware-компоненты, но их мало. Короче говоря: мой совет - старайся как меньше использовать нестандартных компонентов, т.к. ты правельно подметил, что размер проги увеличевается-раз, замедляется работа программы-два и глючность ратет в геометричексой прогрессии-это три. Так что делая свой
выбор в сторону безопасного секса :з) Счастливо!Best compilation&link! Ответ отправлен: 19.05.2003, 13:48 Отправитель: BOLT Отвечает baldr
Добрый день, SATAN aka NAPALM! 1. Самое простое, что могу посоветовать - у них же есть координаты, у этих полей в отчете? Ну, можно их прогой выровнять... Как сделать проще не знаю, сорри. 2. Никаких! :) Разве что место на винте уменьшится! :) 3. Лично я - отрицательно. Именно по этим самым причинам. Хотя, впрочем, иногда это оправданно. Ответ отправлен: 19.05.2003, 14:05 Отправитель: baldr Отвечает Stein
Добрый день, SATAN aka NAPALM! 2. У меня всё всегда нормально было. НО, если кто-нибудь впихнул в файл ресурса что-то типа картинки - ессно её у тебянибудет и надо будет код проги менять. 3. Если не уметь читать справку и чтобы не заниматься откровенным геморроем - лучше использовать компоненты, так как иногда написание программы выходит быстрее, чем "ручками". Ответ отправлен: 20.05.2003, 18:57 Отправитель: Stein
Вопрос № 650
Здравствуйте, уважаемые эксперты. 1) У меня ни как не получается вставлять, вырезать или копировать в редактируемую ячейку таблицы DBGrid через буфера обмена. Может кто-нибудь это делал раньше. 2) А как сделать чтобы цвет формы, например, сверху-вниз перетикал от самого светлого до самого темного или наоборот. 3) Ну кто-нибудь пристрелите меня чтобы я не мучался. В книге английским по белому :-))) написано см. приложение и не работает, ругается на ixDescending и другие параметры. Сортировку по убыванию мне хотелось бы сделать вот таким не замысловатым образом. Любому комментарию по этому поводу буду весьма благодарен. Заранее большое спасибо !!!
Добрый день, SATAN aka NAPALM! Ответ на вопрос №2. Два варианта: 1)Используй какой-нибудь компонент; 2)Написал специально для вас алгоритм.См в приложение. Счастливо!
Приложение: Ответ отправлен: 20.05.2003, 17:54 Отправитель: BOLT Отвечает Stein
Добрый день, SATAN aka NAPALM! Лови! Что-то отрыл у себя... 2. Градиентная заливка и сложение цветов. Иногда бывает нужно сложить два или более цветов для получения что-то типа переходного цвета. Делается это весьма просто. Координаты получаемого цвета будут равны среднему значению соответствующих координат всех цветов. Например, нужно сложить красный и синий. Получаем (255,0,0)+(0,0,255)=((255+0) div 2,(0+0) div 2,(0+255) div 2)=(127,0,127). В результате получаем сиреневый цвет. Также надо поступать, если цветов более чем 2: сложить соответствующие координаты, потом каждую сумму разделить нацело на количество цветов. Поговорим теперь о градиентной заливке. Градиентная заливка - это заливка цветом с плавным переходом от одного цвета к другому. Итак, пусть заданы 2 цвета своими координатами ((A1, A2, A3) и (B1, B2, B3)) и линия (длиной h пикселов),
по которой нужно залить. Тогда каждый цвет каждого пиксела, находящегося на расстоянии x пикселов от начала будет равен (A1-(A1-B1)/h*x, A2-(A2-B2)/h*x, A3-(A3-B3)/h*x). Теперь, имея линию с градиентной заливкой, можно таким образом залить совершенно любую фигуру: будь то прямоугольник, круг или просто произвольная фигура. Вот как выглядит описанный алгоритм: {Считается, что координаты первого цвета равны (A1, A2, A3), а второго (B1, B2, B3)} {Кроме того, линия начинается в координатах (X1,Y1), а заканчивается в (X2,Y1)} Var h,i: Integer; begin h:=X2-X1-1; for i:=0 to h do begin PaintBox1.Canvas.Pen.Color:=RGB(A1-(A1-B1)/h*i, A2-(A2-B2)/h*i, A3-(A3-B3)/h*i); PaintBox1.Canvas.Pen.Rectangle(I,Y1,I+1,Y1); end; end. ЗЫ Дай мыло и я скину про сортировку!!!
Ответ отправлен: 20.05.2003, 19:03 Отправитель: Stein
Вопрос № 651
Здравствуйте, уважаемые эксперты. 1) Всем уже известно, что при поиске в базах Locateом курсор перемещается на первую запись удовлетворяющюю условию. А как можно сделать например кнопку "Найти далее" ??? 2) А что может произойти, если интервал у таймера сделать очень маленьким, а вычисления и различные проверки очень большими и сложными ? А то я в свой таймер достаточно много всего понаписал и начинаю сомневаться в безопасности работы программы. И вообще использование таймера это "хороший тон" ? 3) Каким образом, например, при нажатии на кнопку все SpeedButtonы на панели инструментов сделать плоскими. Я пробовал делать как в примере для редакторов TEdit (см. приложение), но у меня ни чего не выходит, я подобного еще никогда не писал. Так что прошу Вас сильно не ругаться или хотя бы поочереди
:-))). Заранее огромное спасибо !!!
Если таймер реализован на основе сообшения windows WM_TIMER, то, если обработка сообщения будет идти слишком долго то следущее собщеение может просто пропасть. Ответ отправлен: 19.05.2003, 13:24 Отправитель: vitya
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.