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

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


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

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

Выпуск № 498
от 10.06.2006, 05:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 346, Экспертов: 63
В номере:Вопросов: 6, Ответов: 14


Вопрос № 45138: Здравствуйте уважаемые эксперты. Извините за юзерский вопрос, но ответ не могу найти в документации... 1) КАК в приложении, с помощью какого компонента, ОТКРЫТЬ HTM-файл (не из интернета, а уже сохраненный на диске)??? 2) Может знаете ссы...
Вопрос № 45143: Здравствуйте, уважаемые эксперты! Мне нужно сделать анализатор формы и компонентов с последующим масштабированием или изменением расстояния между компонентами, для расположения компонентов внутри формы без скролла. Т.е. какие бы компоненты на...
Вопрос № 45150: Здравствуйте,уважаемые эксперты!Я хочу сказать Вам, и всем тем, кто оставлял сообщения на мини-форумах большое спасибо!Вы мне очень помогли.И хотел-бы задать ещё один вопрос: Какой командой можно перезагрузить ПК? Желательно, чтобы эффе...
Вопрос № 45180: Здравствуйте, уважаемые эксперты! Подскажите, пожалуйста, как программно "обнаружить" на форме все визуальные компоненты и получить доступ к их свойствам? Заранее очень благодарен!!...
Вопрос № 45186: Здравствуйте!У меня 2 элементарных вопроса: 1)сортировка чисел по убыванию из Edit1 в Label1,при нажатии на Button1. 2)Найти наиболее часто встречающуюся букву из Edit1 и поместить её в Label1,при нажатии на Button1. Заранее спасибо....
Вопрос № 45210: Здравствуйте уважаемые эксперты. Подскажите пожалуйста, как вставлять строку в нужную позицию текстового файла? Заранее спасибо....

Вопрос № 45.138
Здравствуйте уважаемые эксперты.
Извините за юзерский вопрос, но ответ не могу найти в документации...
1) КАК в приложении, с помощью какого компонента, ОТКРЫТЬ HTM-файл (не из интернета, а уже сохраненный на диске)???
2) Может знаете ссылочку по которой можно качнуть документацию, где описаны компоненты для работы с интернетом в Дельфи?
Отправлен: 04.06.2006, 08:52
Вопрос задал: Пепеляев Александр Павлович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Ерёмин Андрей
Здравствуйте, Пепеляев Александр Павлович!
1. Если открыть (в браузере), то так:
uses ShellAPI;
...
Var Path: String;
...
Path:='C:myfile.html';
ShellExecute(0,'open',PChar(Path),'','',SW_SHOWNORMAL);

А если отобразить его содержимое на форме - то с помощью компонента TWebBrowser (вкладка Internet). Загружать файл следует так:
Var Path: String;
...
Path:='C:myfile.html';
WebBrowser1.Navigate(Path);

---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 04.06.2006, 08:57
Оценка за ответ: 5

Отвечает: sir henry
Здравствуйте, Пепеляев Александр Павлович!
2. По поводу документации. На http://megalib.com/books/653/chapt.htm лежали главы из книги Марко Канту по работе с интернетом.
Еще одна ссылка с сайта Подгородецкого:
http://podgoretsky.com/ftp/Docs/Internet/IntroIndy/index.html
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 04.06.2006, 12:03


Вопрос № 45.143
Здравствуйте, уважаемые эксперты!
Мне нужно сделать анализатор формы и компонентов с последующим масштабированием или изменением расстояния между компонентами, для расположения компонентов внутри формы без скролла.
Т.е. какие бы компоненты на форму ни кидали, код сам располагает их так, чтобы не было скролла и чтобы они друг на друга не залезали.
Заранее спасибо!
Отправлен: 04.06.2006, 09:45
Вопрос задал: Андрющенко Вячеслав Васильевич (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Андрющенко Вячеслав Васильевич!
Если вы хотите как-то изменить поведение формы на этапе проектирования проиложения, то вам понадобится переписать сам Delphi. Однако, кое-что настройками все-таки сделать можно.
У TForm есть например. свойства: AutoSize, AutoScroll, Align - поиграйтесь с ними.
К тому же, Align есть у всех компонентов, которые имеют визуальное представление на форме.
Ответ отправил: Сухомлин Кирилл Владимирович (статус: 8-ой класс)
Ответ отправлен: 04.06.2006, 16:17

Отвечает: Татьяна
Здравствуйте, Андрющенко Вячеслав Васильевич!
Я так поняла, что у вас динамически создаются компоненты и вам надо построить правильную форму с их удачным расположением (что-то типа лейатувости)
Если их необходимо расположить без какой-либо определенной логики, то тут скорее всего необходимо абстагироваться от задачи такого рода и поставить ее так:
Оптимально расположить m прямоугольников внутри прямоугольника размера nxn без пересечений.

Если я не ошибаюсь, тут необходимо копать в области динамического программирования (я думаю в интернете вы найдете литературу), хотя возможно я и ошибаюсь.
А вот если они должны быть расположены в строго определенном порядке - тут уже наверное хуже

Хотя если вам не требуется оптимальное расположение, а хотя бы какое-то то тут задача возможно будет совсем проста
Например, распологаете, к примеру, самый большой компонент, потом ищете подходит ли какой-либо, чтоб расположить правее, ниже, потом следующий и т.п.
Вот такие мысли, они все требуют обоснования, и скорее всего алгоритмы уже существуют и просто надо поискать.
Желаю удачи


---------
Возможно все. И ничего возможно тоже.
Ответ отправила: Татьяна (статус: Студент)
Ответ отправлен: 04.06.2006, 19:10

Отвечает: Евгения
Здравствуйте, Андрющенко Вячеслав Васильевич!
За взаиморасположение компонентов на форме отвечают свойства Align, Anchors и некоторые другие, вот я нашла небольшую статью по проектированию учебной программы, из которой можно посмотреть как это работает:
http://www.computerbooks.ru/books/Programming/17/Glava%205/Index3.htm
Счастливо!
---------
Я не волшебник, я только учусь... А разве кто-то обещал, что будет легко?
Ответ отправила: Евгения (статус: 6-ой класс)
Ответ отправлен: 04.06.2006, 20:38


Вопрос № 45.150
Здравствуйте,уважаемые эксперты!Я хочу сказать Вам, и всем тем, кто оставлял сообщения на мини-форумах большое спасибо!Вы

мне очень помогли.И хотел-бы задать ещё один вопрос:
Какой командой можно перезагрузить ПК? Желательно, чтобы эффект был как у кнопки Reset на материнской плате.
Отправлен: 04.06.2006, 11:13
Вопрос задал: Ustas (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: sir henry
Здравствуйте, Ustas!
Именно с таким эффектом, как RESET, по-моему, нет. Хотя может быть я и ошибаюсь. Вы ведь имеете в виду, чтобы после перезагрузки заново проводилась проверка оперативной памяти?
Если обязательный POST не требуется, то для W2K/XP и им подобным, текст программы для перезагрузки смотрите в приложении.

Приложение:

Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 04.06.2006, 12:12
Оценка за ответ: 5

Отвечает: Loki®
Здравствуйте, Ustas!
Ну собственно... WM_Exit_Windows_Exec - (вроде так, если что - MSDN) это если перезагрузить надо... А если совсем выключить, то WM_Exit_Windows (опять же, MSDN поможет).
Ответ отправил: Loki® (статус: 2-ой класс)
Ответ отправлен: 05.06.2006, 05:08
Оценка за ответ: 5


Вопрос № 45.180
Здравствуйте, уважаемые эксперты! Подскажите, пожалуйста, как программно "обнаружить" на форме все визуальные компоненты и получить доступ к их свойствам? Заранее очень благодарен!!

Приложение:

Отправлен: 04.06.2006, 17:54
Вопрос задал: Андрющенко Вячеслав Васильевич (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

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

Попробуйте так

for i:=0 to ComponentCount-1 do
begin
FindComponent(Components[i].Name).left:=Round(Width/2);
FindComponent(Components[i].Name).top:=i*30;
end;
---------
Если собеседник затрудняется ответить, значит, вопрос поставлен правильно.
Ответ отправил: Kazakh (статус: 9-ый класс)
Ответ отправлен: 04.06.2006, 18:08

Отвечает: Татьяна
Здравствуйте, Андрющенко Вячеслав Васильевич!
В предыдущем ответе все было бы хорошо, если бы компоненты имели свойство left и top. И второе замечание, совсем не стоит делать FindComponent, если мы уже умеем компоненты.
Однако, идея именно такая, только необхотимы не Components, а Controls
А вот по поводу правильного расположения - задача интересная и требует обдумывания, надеюсь у вас получится
Желаю удачи!

Приложение:

---------
Возможно все. И ничего возможно тоже.

Ответ отправила: Татьяна (статус: Студент)
Ответ отправлен: 04.06.2006, 19:00

Отвечает: Проходящий Мимо
Здравствуйте, Андрющенко Вячеслав Васильевич!
Согласен с Татьяной. Можно использовать функцию, описанную в книге Стива Тейксейра и Ксавье Пачеко "Delphi 6. Руководство разработчика". Притом, она работает не только с TControls , но и с TComponents. Она устанавливает целочисленное свойство компонента, если свойство существует. Очень удобно, если нужно изменить любое свойство для компонент, имеющих разных предков без приведения типов, например DataSet:

procedure SetIntegerPropertyIfExists(
AComp: TComponent;
APropName: string;
AValue: Integer);
var
PropInfo: PPropInfo;
begin
PropInfo := GetPropInfo(AComp.ClassInfo, APropName);
if PropInfo <> nil then
begin
if PropInfo^.PropType^.Kind = tkInteger then
SetOrdProp(AComp, PropInfo, Integer(AValue));
end;
end;

Потом можно, как советуют предыдущие эксперты:

for i:=0 to Form1.ComponentCount-1 do
SetIntegerPropertyIfExists(Form1.Components[i], 'Left', 10);

В приложении привожу код для функций
SetBooleanPropertyIfExists
SetStringPropertyIfExists
SetObjectPropertyIfExists

Приложение:

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

Ответ отправил: Проходящий Мимо (статус: 5-ый класс)
Ответ отправлен: 04.06.2006, 19:53


Вопрос № 45.186
Здравствуйте!У меня 2 элементарных вопроса:
1)сортировка чисел по убыванию из Edit1 в Label1,при нажатии на Button1.
2)Найти наиболее часто встречающуюся букву из Edit1 и поместить её в Label1,при нажатии на Button1.
Заранее спасибо.
Отправлен: 04.06.2006, 19:11
Вопрос задал: Hercules (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Решетник Д
Здравствуйте, Hercules!
код приводить не буду, а вот натолкнуть на мысль могу.
1. попробуйте поискать алгоритмы сортировки по таким ключевым словам:
сортировка Шелла, пузырек, Быстрая сортировка....
2.следует вначале упорядочить массив значений. например, по убыванию (замечу, что буквы упорядочить тоже можно, т.к. их коды ord(char) расположены последовательно. например, код латинской А = 65, а B = 66...)
далее нужно всего лишь просматривать массив на повторяющиеся символы и запоминать максимальное количество
---------
Жизнь коротка, чтобы писать на ассемблере
Ответ отправил: Решетник Д (статус: 8-ой класс)
Ответ отправлен: 04.06.2006, 19:23

Отвечает: Маренич Владимир
Здравствуйте, Hercules!
Надоело делать за кого-то лабы....
Только напишу подсказки, а полный код пиши сам. Иначе никогда не научишься программерству.

Приложение:

Ответ отправил: Маренич Владимир (статус: Студент)
Ответ отправлен: 07.06.2006, 11:48


Вопрос № 45.210
Здравствуйте уважаемые эксперты. Подскажите пожалуйста, как вставлять строку в нужную позицию текстового файла? Заранее спасибо.
Отправлен: 05.06.2006, 00:07
Вопрос задал: Виталий Зелинский (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгения
Здравствуйте, Виталий Зелинский!

Прочитать файл, например, в ListBox
Вставить строку
Перезаписать файл

Строк как таковых в текстовом файле нет, поэтому и номеров строк там не может быть... поэтому просто вставить запись в середину файла, например после 15 строки, нельзя... можно только в конец процедурой Append(<Имя файла>); хочу сказать,что простого способа записи в середину файла нет.

Счастливо!
---------
Я не волшебник, я только учусь... А разве кто-то обещал, что будет легко?
Ответ отправила: Евгения (статус: 6-ой класс)
Ответ отправлен: 05.06.2006, 01:14
Оценка за ответ: 5
Комментарий оценки:
Я первый раз получаю ответ на свой вопрос в инете.
Очень приятно. Поэтому поставлю 5.

Отвечает: Rusland
Здравствуйте, Виталий Зелинский!
Проще всего использовать TStringList. См. приложение.

Приложение:

---------
Если партия скажет есть контакт, будем есть контакт.

Ответ отправил: Rusland (статус: Специалист)
Ответ отправлен: 07.06.2006, 12:57
Оценка за ответ: 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

В избранное