Поиск по блогу

вторник, 27 апреля 2010 г.

Работа с комбобоксами (SELECT) в TWebbrowser

В интернете достаточно материала о том, как работать с элементом SELECT в TWebBrowser. У себя на блоге я мельком уже задевала уже этот вопрос, но вот решила написать отдельный пост.
Тем, для кого этот материал вновинку, сначала советую ознакомиться со статьями:

1. TWebBrowser, OleObject и его свойства.
2. Работа с формами в TWebBrowser.

Обычно я делаю так: сначала ищу на форме нужный селект по имени (тип искомого объекта - IHTMLSelectElement (не забудьте подключить библиотеку MSHTML)). Селект можно находить по id или по name, в зависимости от требований. Вот пример функции, возращающей требуемый элемент (проверяется и по id, и по name):

function FindCBByName(CBName: String) : IHTMLSelectElement;

function TMainF.FindCBByName(CBName: String): IHTMLSelectElement;
var
i : integer;
DocSelect : IHTMLElementCollection;
DocElement : IHtmlElement;
Doc : IHTMLDocument2;
begin
Result := nil;
WB.Document.QueryInterface(IHTMLDocument2, Doc);
DocSelect := Doc.all.tags('SELECT') as IHTMLElementCollection;

for i := 0 to DocSelect.length-1 do
begin
DocElement := DocSelect.Item(i, 0) as IHtmlElement;
if (UpperCase(DocElement.id) = UpperCase( CBName )) or
(UpperCase(DocElement.getAttribute('name',0)) = UpperCase( CBName )) then
begin
Result := DocElement as IHTMLSelectElement;
exit;
end;
end;
end;


В случае, если объект не найден, возвращается nil. В данном примере у меня привязка к объекту TWebBrowser (WB) на форме. Можно избавиться от нее, добавив TWebBrowser в качестве параметра функции (я так обычно и делаю).

Когда элемент найден, в нем надо будет выбрать значение. В зависимости от задачи, требуется обычно выбрать option по тексту или по value.

В качестве примера привожу процедурку, которая уже "светилась" в статьях на этом блоге.

пятница, 23 апреля 2010 г.

Установка web-сервера (XAMPP) на Ubuntu на Eee PC

install xampp on eee pc
Чтобы в дороге и в отпуске заниматься программированием, решила на нетбук установить сервер. Порывшись в инете, остановилась на XAMPP. Скачала дистрибутив последней версии с официального сайта. При попытке установить пакет на Eee PC, вылезло сообщение о том, что на диске недостаточно места. Меня это удивило, так как места было вполне достаточно. Но, как потом оказалось, не там, где надо :) С линуксом я до этого момента практически не имела дела, поэтому на разбирательства ушло какое-то время.

Сначала пришлось познакомиться с некоторыми базовыми командами.
Консоль можно вызвать с помощью сочетания горячих клавиш "Ctrl+Alt+T". Если оно не срабатывает (было, что один раз сглючило, и положение исправилось только после перезагрузки), то можно загрузить диспетчер файлов и при открытом окне нажать "Ctrl+T".

cd - смена текущей директории
ls - листинг каталога
chmod - изменение прав доступа на файл/директорию


и так далее. В принципе, тех, которые мне потребовались, с полдесятка.

четверг, 1 апреля 2010 г.

RSSAdder. Свежий конфиг

Сегодня возникла необходимость прогнать один фид по RSS-агрегаторам. RSSAdder я все еще не до конца переделала, поэтому прогоняла старой версией. Попутно решила обновить данные в конфиге. Результаты обновления были, мягко говоря, "не очень": из 65 каталогов в списке осталось только 51. Остальные так или иначе покинули всемирную паутину или переродились во что-нибудь еще более говнистое :) Потом я вспомнила о конфигах, давным-давно присланных одним из читателей блога, добавила в общий список еще 5 каталогов. Получилось 56 проверенных ресурсов.

Выкладываю свежий список и еще конфиг со списком пинг-сервисов, так же предоставленный этим благородным читателем %D. Сразу скажу, что пинг-сервисы не проверены, если заметите ошибки — пишите. Хотя, судя по тому, что в старом списке со временем появилось столько битых каталогов, но никто об этом не написал, обратной связи особо ждать не следует :) В общем, еще раз гранд мерси читателю, подписавшемуся как LookUp, все остальным — свежие конфиги. (Для обновления просто скопируйте файл в папку поверх старого).

___

Чтобы быть в курсе обновлений блога, можно подписаться на RSS.

Поделиться