Сделай сам: IE и Delphi – вместе веселее!
28.01.2008 от Иван Ширко if (ch=0) and (i>0) and not(s[i-1] in num) then
s1 := ''
else
str(ch, s1);
if (cnt>0) then
//заменяем последние нули на девятки
for j := 1 to cnt do
s1 := s1 + '9';
//составляем итоговый URL
s := copy(s, 1, i-1-minus) + s1 + copy(s, i+cnt+1, length(s)-i-cnt);
end;
end;
result := s;
end;
Пункт 3: записать изменённый адрес в окно IE и заставить браузер перейти по нему.
Для выполнения третьей части задачи нужно просто послать полю ввода два сообщения:
…
//"вводим" изменённый адрес
SendMessage(h, WM_SETTEXT, 0, longint(Pchar(s)));
//"нажимаем" клавишу "Ввод" (Enter)
SendMessage(h, WM_KEYDOWN, VK_RETURN, 0);
…
Теперь соберём эти три пункта в нужные нам процедуры:
//переход "Вперёд"
procedure NextPage;
var
s: String;
h: HWnd;
begin
if FindEdit(h) then
begin
//получаем URL
s := gettext(h);
delete(s, length(s), 1);
//увеличиваем последнее число на единицу
s := IncURL(s);
//записываем новый URL
SendMessage(h, WM_SETTEXT, 0, longint(Pchar(s)));
//нажимаем клавишу "Ввод"
SendMessage(h, WM_KEYDOWN, VK_RETURN, 0);
end;
end;
//переход "Вперёд"
procedure PrevPage;
var
s: String;
h: HWnd;
begin
if FindEdit(h) then
begin
s := string(gettext(h));
delete(s, length(s), 1);
s := DecURL(s);
SendMessage(h, WM_SETTEXT, 0, longint(Pchar(s)));
SendMessage(h, WM_KEYDOWN, VK_RETURN, 0);
end;
end;
Все основные процедуры нашей программы готовы, теперь настало время сделать для них оболочку. Создайте новый проект и поместите на форму один-единственный компонент – PopupMenu1:TPopupMenu1. В нём должен быть один пункт – "Выход". Процедура при выборе этого пункта:
procedure TForm1.ExitClick(Sender: TObject);
begin
//завершаем работу программы
halt;
end;
Добавьте к списку подключаемых модулей (раздел Uses) модуль ShellApi. Объявите константу
const
WM_ICONTRAY = wm_user + 1;
Этим мы определили сообщение, которое будем получать от иконки в SysTray.
В раздел Private добавьте три строчки:
//информация о нашей иконке
TrayIconData: TNotifyIconData;
//эта процедура будет обрабатывать поступающие от иконки сообщения
procedure TrayMessage (var Msg: TMessage); message WM_ICONTRAY;
Рубрики: Delphi, Сделай сам |
28.06.2009 в 14:21
Что-то так не выходит ничего