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

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


Информационный Канал Subscribe.Ru

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

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

Выпуск № 281
от 31.10.2005, 17:15

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


Вопрос № 28294: Здравствуйте :) Подскажите плз, можно ли задавать прозрачность отдельным элементам формы, например button или Image? Если да, то как? И еще есть один вопрос: как сделать возможность изменения элементов формы во время выполнения программы с по...
Вопрос № 28318: Каким образом я могу получить информацию с температурных датчиков Центрального Процессора, Материнской платы, Винчестера и выводить их в label в градусах Цельсия?...
Вопрос № 28340: Уважаемые эксперты! 1. Как оформить процедуру открыия/закрытия лотка дисковода при помощи Delphi. Примеры пожалуйста :-) 2. Мне необходимо перехватить событие "удаления" в Windows, при помощи API. С примером опять-таки плз...
Вопрос № 28347: Имеется html-файл. В нем теблица. Нужно из этой таблицы вытащить данные для последующей записи в БД. Как подойти к решению этой задачи. Третий день кругами хожу - не знаю с чего начать.... Решение на другом языке - тоже приветствуется ! Строка таблиц...

Вопрос № 28.294
Здравствуйте :)
Подскажите плз, можно ли задавать прозрачность отдельным элементам формы, например button или Image? Если да, то как?
И еще есть один вопрос: как сделать возможность изменения элементов формы во время выполнения программы с помощью мыши. То бишь подносим мышь к правому нижнему углу, она принимает ид двойной стрелки и перетягиванием меням размеры....
Отправлен: 25.10.2005, 19:12
Вопрос задал: D.M. (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Werewolf
Здравствуйте, D.M.!
Есть наборы прозрачных компонентов кажется так и назывались Transparent Controls.
По поводу второго:
Обрабатывай события OnMouseDown(начало перетягивания) и OnMouseUp (конец перетягивания)
курсор меняется через Screen.Cursor:=crКурсор
Ответ отправил: Werewolf (статус: Студент)
Отправлен: 26.10.2005, 01:07

Отвечает: Schmak
Здравствуйте, D.M.!
1)Я сомневаюсь, что это можно провернуть со стандартными компонентами. Но в интернете полно наборов прозрачных компонентов.

2)Обрабатывайте событие onMouseMove если мышь подходит к краю компонента, то меняем курсор на стрелочку при помощи Button1.cursor
В событии onMouseDown соответственно изменяем размеры вслед за курсором

Ответ отправил: Schmak (статус: 4-ый класс)
Отправлен: 26.10.2005, 05:41

Отвечает: sir henry
Здравствуйте, D.M.!
1) Если у элемента есть такое свойство как Transparant, то устанавливайте на здоровье. :)
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 26.10.2005, 08:57


Вопрос № 28.318
Каким образом я могу получить информацию с температурных датчиков Центрального Процессора, Материнской платы, Винчестера и выводить их в label в градусах Цельсия?
Отправлен: 26.10.2005, 10:28
Вопрос задал: Малярчук Андрей (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Rusland
Здравствуйте, Малярчук Андрей!
В прикрепленном файле пример получения скорости вращения вентиляторов и температуры процессора. К сожалению, работает далеко не на всех материнских платах.

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.
---------
Пресловутое недостающее звено между обезьяной и цивилизованным человеком - это как раз мы. (Конрад Лоренц)

Ответ отправил: Rusland (статус: Практикант)
Отправлен: 26.10.2005, 11:53

Отвечает: Ерёмин Андрей
Здравствуйте, Малярчук Андрей!
Посмотрите компонент cxCPU. Возможно, Вы найдёте в нём нужную информацию о процессоре.
---------
Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 26.10.2005, 12:05


Вопрос № 28.340
Уважаемые эксперты!

1. Как оформить процедуру открыия/закрытия лотка дисковода при помощи Delphi. Примеры пожалуйста :-)

2. Мне необходимо перехватить событие "удаления" в Windows, при помощи API. С примером опять-таки плз.

Благодарю за грамотные ответы!
Отправлен: 26.10.2005, 16:25
Вопрос задал: NIKOLLAY (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, NIKOLLAY!
1. А Вы разберите дисковод и поймете, что сам по себе (програмно) он не открывается и не закрывается. Может быть Вы имели в виду CD-привод? Уточните пожалуйста.
2. Здесь обсуждалась как раз та же проблема, выложен код:
http://forum.sources.ru/index.php?showtopic=42105&st=0&#entry274986
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 26.10.2005, 18:25

Отвечает: Ерёмин Андрей
Здравствуйте, NIKOLLAY!
1) Вот так например:
{ Открывает CD-ROM, занимающий указанную букву... }

function OpenCD(Drive: Char): Boolean;
Var
Res : MciError;
OpenParm: TMCI_Open_Parms;
Flags : DWord;
S : String;
DeviceID : Word;
begin
Result:=false;
S:=Drive+':';
Flags:=mci_Open_Type or mci_Open_Element;
With OpenParm do begin
dwCallback := 0;
lpstrDeviceType := 'CDAudio';
lpstrElementName := PChar(S);
end;
Res := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
IF Res<>0 Then exit;
DeviceID:=OpenParm.wDeviceID;
try
Res:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_OPEN, 0);
IF Res=0 Then exit;Result:=True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;

{ А эта процедура - закрывает... }
function CloseCD(Drive: Char): Boolean;
Var
Res : MciError;
OpenParm: TMCI_Open_Parms;
Flags : DWord;
S : String;
DeviceID : Word;
begin
Result:=false;
S:=Drive+':';
Flags:=mci_Open_Type or mci_Open_Element;
With OpenParm do begin
dwCallback := 0;
lpstrDeviceType := 'CDAudio';
lpstrElementName := PChar(S);
end;
Res := mciSendCommand(0, mci_Open, Flags, Longint(@OpenParm));
IF Res<>0 Then exit;
DeviceID:=OpenParm.wDeviceID;
try
Res:=mciSendCommand(DeviceID, MCI_SET, MCI_SET_DOOR_CLOSED, 0);
IF Res=0 Then exit;
Result:=True;
finally
mciSendCommand(DeviceID, mci_Close, Flags, Longint(@OpenParm));
end;
end;


Не забудьте добавить MMSystem в Uses.
---------
Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 26.10.2005, 19:32

Отвечает: Ballon
Здравствуйте, NIKOLLAY!

Чтобы открыть лоток CDROMa:
mciSendString('Set cdaudio door open wait', nil, 0, handle);

Чтобы закрыть лоток CDROMa:
mciSendString('Set cdaudio door closed wait', nil, 0, handle);
---------
Хочу все знать...
Ответ отправил: Ballon (статус: 6-ой класс)
Отправлен: 27.10.2005, 11:36


'. Строка данных начинается с '' и заканчивается (опять же в нормальной html-ке) - ''.
Все очень просто. :) ',x),4);
delete(x,pos('',x),4);
delete(x,pos('',x),4);
x:=trim(x);// обрезаем пробелы
end;
А читать, я думаю, вы знаете как.
(ну там readln(f,x);)
---------
FAQ me off!
Вопрос № 28.347
Имеется html-файл. В нем теблица. Нужно из этой таблицы вытащить данные для последующей записи в БД. Как подойти к решению этой задачи. Третий день кругами хожу - не знаю с чего начать.... Решение на другом языке - тоже приветствуется ! Строка таблицы занимает одну строку в html файле.
Отправлен: 26.10.2005, 17:23
Вопрос задал: Sniffer (статус: Студент)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Rusland
Здравствуйте, Sniffer!
Для дельфи есть TRegExpr - регулярные выражения аналогичные перловым. Приведи код html-файла.
---------
Пресловутое недостающее звено между обезьяной и цивилизованным человеком - это как раз мы. (Конрад Лоренц)
Ответ отправил: Rusland (статус: Практикант)
Отправлен: 26.10.2005, 17:28

Отвечает: sir henry
Здравствуйте, Sniffer!
Парсинг, больше ничего тут посоветовать нельзя, ведь html-файл - это чисто текстовый файл.
'' - тэг закрывается и дальше идут данные. В нормальной HTML-ке клетка с данными завершается '
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 26.10.2005, 19:29

Отвечает: Ерёмин Андрей
Здравствуйте, Sniffer!
Здесь нужно рассмотреть таблицу так, как она выглядит в html:

<table width="100" border="0" cellspacing="5" cellpadding="5">
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>...</td>
</tr>
<tr>
<td>2>/td>
<td>4>/td>
<td>6>/td>
<td>8>/td>
<td>10>/td>
</tr>
</table>

Этим и нужно воспользоваться. Нужно выделить из строки части, содержащие столбцы (<td>text</td>), вырезав перед этим теги строк (<tr> и </tr>). Я написал небольшую программу, которая всё это делает и выводит в Label1 все данные из таблицы. Каждая строка таблицы - на отдельной строке в Label1. А столбцы разделены знаком "|". Единственное - нужно обратить внимание на пробелы. Таблицу я сделал быстренько в специализированном редакторе, поэтому теги с отступами. Если в Ваше странице по-другому (а их, у Вас, кажется, вообще нет), нужно пробелы убрать. Откуда - догадаетесь, там нетрудно. После этого строки Label1 нетрудно преобразовать в двумерный массив - через Pos() находить позицию символа "|", копировать число и удалять число вместе с этим знаком. Затем заново - и так в цикле. Из массива в БД уже легко загнать. Моя программа и исходная страничка летит вместе с ответом. Удачи!

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.
---------
Бог создал мир за семь дней и до сих пор система работает, не требуя перезагрузки, потому что у него не было необходимости поддерживать совместимость с предыдущими версиями...

Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 26.10.2005, 19:32
Оценка за ответ: 5
Комментарий оценки:
Спасибо

Отвечает: Romodos
Здравствуйте, Sniffer!
если вы уже считали из файла строку таблицы,
то можно сделать так
var x:string;
begin
delete(x,pos('
',x),4);
delete(x,pos('
Ответ отправил: Romodos (статус: Студент)
Отправлен: 27.10.2005, 05:06


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

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

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

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

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


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


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Rambler's Top100 Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное