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

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


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

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

Выпуск № 731
от 08.02.2007, 22:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 440, Экспертов: 91
В номере:Вопросов: 7, Ответов: 12


Вопрос № 73860: Здравствуйте, уважаемые! Нужно из программы менять свойства локальной сети, в частности маску подсети. А затем всё это "применить". Т.е. совершить те же действия, которые совершаются при нажатии кнопки "ОК" в диалоговом окне &...
Вопрос № 73878: Здравствуйте уважаемые эксперты. Я еще не силен в программировании на Delphi7 и у меня возник такой вопрос. На форме (TForm1) находятся две кнопки (Button1: TButton; Button2: TButton;). Как сделать так, что бы кнопка Button1: TButton; открывала ...
Вопрос № 73880: Добрый день, уважаемые эксперты Меня интересует, есть ли какие риски при использовании форм в длл? Например я встроил уже такую одну, также из длл работаю с Оле - обьектами, с АДО - все что хочешь, короче. Пока что работало без сбоев. Но...
Вопрос № 73927: Работаю в делфи 6, как поведет себя система если установлю 2006, не помешает работать дальше в д6 и в тоже время в 2006?...
Вопрос № 73930: Приветствую всех! Вопросы следующего характера: 1. Есть веб страничка. Ее нужно загрузить. Потом выбрать из исходного текста этой страницы все, что стоит после этого тэга: <a href= .... </a> Страницу я загружаю вот так: ..
Вопрос № 73964: Здравствуйте уважаемые эксперты! Подскажите как изменить цвет заливки в ячейке "Word"-вского документа из Delphi через OLE. ...
Вопрос № 73974: Здравствуйте, все! Подскажите, как вытащить все ссылки из HTML файла. У меня установлен ReGet (качалка файлов из интернета), он делает в контекстном меню пункт "Закачать все при помощи ReGet". После этого появляется окно со...

Вопрос № 73.860
Здравствуйте, уважаемые!
Нужно из программы менять свойства локальной сети, в частности маску подсети. А затем всё это "применить". Т.е. совершить те же действия, которые совершаются при нажатии кнопки "ОК" в диалоговом окне "Свойства: Протокол интернёта (TCP/IP)". У кого-нибуть будут какие соображения на этот счёт?

Спасибо.
Отправлен: 03.02.2007, 08:50
Вопрос задал: Фомичёв Вячеслав Степанович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: sir henry
Здравствуйте, Фомичёв Вячеслав Степанович!
Как и с любым устройством Windows, Вам придется работать с реестром. Надеюсь, что как работать с реестром Вы знаете. Если нет, зададите дополнительный вопрос.
По сути Вашего вопроса:
1. Необходимо получить список подразделов из раздела
HKLMSOFTWAREMicrosoftWindows NTCurrentVersionNetworkCards
Поскольку сетевых устройств может быть несколько, то дополнительные подразделы будут именоваться 1, 2 и т.д.
2. У каждого из этих подразделов (1, 2, ...) считываете параметр Descriptions и проверяете, совпадает ли его значение с названием Вашей сетевой карты.
Если совпадает, то переходим к следующему пункту.
3. Считываем в найденом подразделе параметр ServiceName, который имеет вид {шестнадцатиричные_цифры-шестнадцатиричные_цифры-...}
Это идентификатор сервиса, в котором записаны нужные Вам сетевые параметры.
4. Теперь считываем раздел
HKLMSystemCurrentControlSet{найденый_идентификатор_сервиса}ParametersTcpip
В нем, в параметрах IPAddress, SubnetMask, DefaultGateway хранятся нужные Вам значения сетевых настроек.
Значения имеют тип REG_MULTI_SZ или по простому - строка UNICODE. Поэтому если передаете туда переменную (типа (Edit.Text) не забывайте преобразовать в UNICODE.
----------------------------
Где-то в инете валяется отличная утилитка regrem (она доступна в исходниках), там дан отличный пример, как получить сетевые параметры компьютера. Написана она на Си, но ее без труда можно перевести на Дельфи, т.к. используются только WinAPI функции.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 03.02.2007, 11:20


Вопрос № 73.878
Здравствуйте уважаемые эксперты. Я еще не силен в программировании на Delphi7 и у меня возник такой вопрос.
На форме (TForm1) находятся две кнопки (Button1: TButton; Button2: TButton;). Как сделать так, что бы кнопка Button1: TButton; открывала форму (TForm2) в том месте, где находилась форма (TForm1), скрывая эту самую (TForm1).
Функцией Hide мне удается только скрыть (TForm1). А функцией Show открыть (TForm2), от чего она появляется в другом месте экрана. Т.е. надо в одном диалоговом окне открыть (TForm2),закрыв все что находится на (TForm1). Заранее спасибо.
Отправлен: 03.02.2007, 11:28
Вопрос задал: Ausepp (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Базанов Иван Александрович
Здравствуйте, Ausepp!
Варианта 2:
1. Настроить в дизайнере обе формы на одинаковый размер и положение на экране.
2.
procedure RForm1.Button1Click(Sender : TObject)
begin
Form2.Left := Left;
Form2.Top := Top;
Form2.Height := Height;
Form2.Width := Width;
Hide;
Form2.ShowModal;
Show;
end;
---------
Программист ошибается дважды: первый раз при рождении, второй при выборе профессии
Ответ отправил: Базанов Иван Александрович (статус: 3-ий класс)
Ответ отправлен: 03.02.2007, 11:45

Отвечает: Павлов Сергей Сергеевич
Здравствуйте, Ausepp!
Я новичек, но все же попробуй сделать
так чтобы при нажатии
Button1 у тебя все На Form1 ставилось в hide
а то что на Form2 появлялось!

Или проще! В Delphi Наложи форму одну на другую!
То тогда Form2 появится в томже месте!
Ответ отправил: Павлов Сергей Сергеевич (статус: 1-ый класс)
Ответ отправлен: 03.02.2007, 15:08

Отвечает: monah
Здравствуйте, Ausepp!
Для form2 создаем обработчик onShow в нем устанавиваем
form2.Left:=form1.left;
form2.top:=form1.top;
Неодходимо подключить модуль unit1(модуль в котором описан класс TForm1) в предложении uses после implementation.
---------
festina lente
Ответ отправил: monah (статус: Студент)
Ответ отправлен: 03.02.2007, 20:09


Вопрос № 73.880
Добрый день, уважаемые эксперты

Меня интересует, есть ли какие риски при использовании форм в длл?
Например я встроил уже такую одну, также из длл работаю с Оле - обьектами, с АДО - все что хочешь, короче. Пока что работало без сбоев. Но поскольку по поводу длл очень много скептических утверждений, то и возник такой вопрос
Отправлен: 03.02.2007, 11:39
Вопрос задал: Leshka (статус: 1-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: monah
Здравствуйте, Leshka!
Риск есть при передаче типа string в качестве параметра в экспортируемых функиях. Лучще сразу привыкать к PChar. И есть риск утечки ресурсов, необходимо уничтожать форму. До выгрузки DLL. Это самое основное. остальные подводные камни очень спецфичны, и на начальных этапах Вы с ними не столкнетесь.
---------
festina lente
Ответ отправил: monah (статус: Студент)
Ответ отправлен: 03.02.2007, 20:41
Оценка за ответ: 5
Комментарий оценки:
форма конечно же создается и уничтожается динамически, вместо string используем WideString. а обязательно, чтобы PChar?


Вопрос № 73.927
Работаю в делфи 6, как поведет себя система если установлю 2006, не помешает работать дальше в д6 и в тоже время в 2006?
Отправлен: 03.02.2007, 16:55
Вопрос задал: Negruzzi Cristian (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Coupler
Здравствуйте, Negruzzi Cristian!
У меня стояло три delphi: 5, 6 и 2005 - никаких конфликтов. Так что, думаю, и с 2006 все будет нормально. Разве что ассоциации файлов пострадают - все проекты будут открываться именно в 2006.
Ответ отправил: Coupler (статус: Студент)
Ответ отправлен: 03.02.2007, 17:01

Отвечает: Ерёмин Андрей
Здравствуйте, Negruzzi Cristian!
Нет, они вполне нормально будут себя чувствовать вместе. Только при первом запуске 2006 может спросить, следует ли установить её дебаггером в системе по умолчанию. Лучше ответить "Нет" и поставить галочку в окне, чтобы больше этот вопрос не показывался. В дополнение к ответу Coupler'а: ассоциации, как правило, можно задать во время установки. Да и даже если 2006 сама без спроса ассоциирует себя с файлами проектов, модулей и т.п., восстановить ассоциацию легко средствами Windows. Желаю удачи!
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на Delphi. Всё для программиста. Файловый архив, статьи, помощь, советы, обмен опытом.
ICQ: 286867644
----
Ответ отправлен: 03.02.2007, 17:26

Отвечает: Rusland
Здравствуйте, Negruzzi Cristian!
6 и 2006 абсолютно не мешают друг другу (у меня так стоит). Однако у некоторых после установки 2006 "слетает" справка у Delphi6 (если это пройзойдет, то нужно будет поставить D6 последней). После работы в 2006 вы вряд ли вернетесь на 6-ку.
У BDS2006 есть небольшая проблема - на проектах, в которых свыше 10000 строк кода редактор начинает тормозить. Чтобы этого не происходило, при установке BDS2006 уберите галочку c компонента Together.
Ответ отправил: Rusland (статус: Профессионал)
Россия, Казань
Адрес: Мой адрес не дом и не улица, мой адрес советский союз
WWW: Логотипы для сотовых телефонов
----
Ответ отправлен: 05.02.2007, 10:18


Вопрос № 73.930
Приветствую всех!
Вопросы следующего характера:
1. Есть веб страничка. Ее нужно загрузить. Потом выбрать из исходного текста этой страницы все, что стоит после этого тэга: <a href= .... </a>

Страницу я загружаю вот так:

procedure TFormSimpleWB.btOpenClick(Sender: TObject);
var
_URL, Flags, TargetFrameName, PostData, Headers: Olevariant;
begin
_URL := 'ссылка на веб страницу';
Flags := 0; TargetFrameName := 0; Postdata := 0; Headers := 0;
WebBrowser1.Navigate2(_URL, Flags, TargetFrameName, PostData, Headers);
end;
2. Как загрузить веб страницу не полностью, а всего лишь первые 20 строк изи исходного кода?

Удачи!
Отправлен: 03.02.2007, 17:29
Вопрос задал: Warrior (статус: 3-ий класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Крылов Александр Владимирович
Здравствуйте, Warrior!

>>выбрать из исходного текста этой страницы все, что стоит после этого тэга: <a href= .... </a>
можно открыть страничку как обычный текстовый файл и работать функцией Pos()

>>первые 20 строк изи исходного кода?
сделать копию странички с первыми 20 строками и при окончании работы удалить
Ответ отправил: Крылов Александр Владимирович (статус: 2-ой класс)
Ответ отправлен: 03.02.2007, 19:20
Оценка за ответ: 3

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Warrior!
1. См. код в приложении
2. Методом Navigate2, действительно, никак. Кроме уже предложенного здесь способа. Только через компоненты более низкого уровня типа сокетов.

Приложение:

---------
Не узнаешь - не попробуешь.

Ответ отправил: Сухомлин Кирилл Владимирович (статус: Специалист)
Ответ отправлен: 03.02.2007, 19:35
Оценка за ответ: 5


Вопрос № 73.964
Здравствуйте уважаемые эксперты!
Подскажите как изменить цвет заливки в ячейке "Word"-вского документа из Delphi через OLE.
Отправлен: 03.02.2007, 21:13
Вопрос задал: Николай Петров (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Синельников Сергей
Здравствуйте, Николай Петров!

Заккрашиваем в первой таблице документа ячейку в первой строке первого столбца красным цветом

wd.Tables.Item(1).Cell(1,1).Shading.BackgroundPatternColor:=wdColorRed;

wd - указатель на активный документ Ворда
wdColorred - константа = 255
Ответ отправил: Синельников Сергей (статус: 2-ой класс)
Ответ отправлен: 04.02.2007, 09:22
Оценка за ответ: 5
Комментарий оценки:
Спасибо за быстрый ответ. Вы мне очень помогли.


Вопрос № 73.974
Здравствуйте, все!

Подскажите, как вытащить все ссылки из HTML файла.
У меня установлен ReGet (качалка файлов из интернета), он делает в контекстном меню пункт "Закачать все при помощи ReGet".
После этого появляется окно со списком всех ссылок.
Так вот хочется сделать аналогично.
Чтобы в итоге получалось, например:

file1.zip http://www.myhost.ru/file1.zip
здесь http://www.filearchive.ru/setup.zip
и т.д.

Спасибо!
Отправлен: 03.02.2007, 21:51
Вопрос задал: Antares (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ерёмин Андрей
Здравствуйте, Antares!
Посмотрите модуль GruString (скачать можно здесь). В этом модуле множество полезных функций для обработки строк и есть в том числе для вытягивания ссылок. Это как раз то, что Вам нужно. Желаю удачи!
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на Delphi. Всё для программиста. Файловый архив, статьи, помощь, советы, обмен опытом.
ICQ: 286867644
----
Ответ отправлен: 03.02.2007, 22:17
Оценка за ответ: 5
Комментарий оценки:
Спасибо.
Правда, процедурка примитивная, и может не всегда работать.
Вообще, я не ожидал такой "активности" от экспертов...


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

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

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

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

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


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


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

В избранное