DELPHI: Сам cебе программист - FAQ, Советы начинающим,Cтатьи
Программа первая: да всё тут ясно! Ясно..?Команда ЯСНО дана для всех!!
Главная В Дело-1 Мои программы FAQ Рассылка 3D+Delphi Антиглюк Прикольно? Заказ! Кто мы? Перевод: System
Parameters
Info

У нас уже есть заготовка программы - она может сохранять текст и список адресов, но пока она не прячется и не вылезает по нашему желанию, а просто загромождает место на панели задач и рабочем столе. Ну что, в бой!
-А что делать-то? -спросите Вы. Ein Moment!
А сделаем-ка мы так, чтобы окно записной книжки вылезало, если мы «загоним» мышь в угол. Например, левый верхий или в центр правого края.Но если мы нечаянно попали туда? Сделаем задержку в 1,5 секунды.
Идём на закладку "System=Система" в палитре компонентов, берём там "timer=Таймер" и, как и остальные "запчасти", кидаем на форму.
У таймера есть 2 самых нужных нам свойства: "Enabled" - "разблокированность", если =TRUE(истина) то таймер работает, если =FALSE(ложь) то не работает, "Interval"=интервал, время в миллисекундах, то есть 1000 соответствует 1-ой секунде.
Установим Interval =1500, Enabled оставим как TRUE. Двойной щелчок на таймере - и можно писать. А чтоооо? А вот это:
 if (mouse.CursorPos.X ‹3) and (mouse.CursorPos.Y ‹3)
then
form1.position:=poscreencenter;
 Если (мышка.положениекурсора.Х меньше 3) и (мышка.положениекурсора.Y меньше 3)
 то форма1.положение ПРИСВОИТЬ ЦентрЭкрана;
  ( := )-оператор присваивания, если кто не знал, например:
Caption:=Combobox1.text
Заголовок := Комбобокс.текст
А где до этого будет окно программы? Например, за левым краем. Для этого идём в инспектор обьектов, выбираем Form1, закладку "События", весело щёлкаем 2 раза в поле около "OnCreate"="НаСоздании", оказываемся в редакторе кода, и вводим:
Left:=-width;
Cлева(расстояние) присвоить -(минус)ширина ;
Теперь, при создании окна оно окажется за левым краем. А если нам нужно, чтобы окно появлялось, если мышка у правого края? Тогда обработчике события Timer1Timer пишем:
 if mouse.cursorpos.x > screen.width-2 then
 form1.Position:=poscreencenter;
 Если мышка.положениекурсора меньше экран.ширина минус 2 тогда
 форма1.положение ПРИСВОИТЬ  ЦентрЭкрана;
Кстати, о том, что мы присвоили положение окна "ЦентрЭкрана=poscreencenter", забывать не стоит - если не установить друое положение, то форма откажеся добровольно покидать его. Сделаем так, чтобы при нажатии на ESCAPE окно снова пряталось.
Для этого создадим пункт меню "Спрятать окно". Не забыли, как? А давайте по-другому. Идём в инспектор обьектов, выбираем MainMenu1, свойство "Items" , щелчок по многоточию- мы в редакторе меню. Выделяеи пустой пункт меню, идём опять в инспектор обьектов, свойство Caption устанавливаем как "Спрятать окно", свойство ShortCut как "Esc". Теперь создадим обработчик события "при щелчке" (OnClick) для этого пункта меню, куда и напишем следующие сроки:
form1.position:=poDesigned;
Left:=-width;
То есто положение формы будет "как при дизайне", но
расстояние слева будет равно "минус ширина".
Что нехватает для полного счастья?
Сделаем окно полупрозрачным. Если у Вас Delphi7, то проблем не возникает- просто у Form1 устанавливаем свойство AlphaBlend = true и Alphablendvalue=240, например. Ну, на вкус и прозрачность товарищей нет, можете и 10 поставить... Но тогда Вы её можете и не разглядеть.
А ещё нам не хватает автосохранения при выключении. В событии OnClose окна(формы) пишем:
memo1.lines.savetofile(extractfilepath(application.exename)+'ТЕКСТ.txt');
combobox1.items.savetofile(extractfilepath(application.exename)+'Адреса.txt');
Но ещё хорошо бы сделать, чтобы это всё само и загружалось! В обработчике OnСreate (там где первый раз писали "Left:=-width"), добавляем(сразу после "Begin" или "Left:=-width"):
if FileExists(extractfilepath(application.exename)+'ТЕКСТ.txt')
and  FileExists(extractfilepath(application.exename)+'Адреса.txt')
then
begin
memo1.Lines.LoadFromFile(extractfilepath(application.exename)+'ТЕКСТ.txt');
combobox1.Items.LoadFromFile(extractfilepath(application.exename)+'Адреса.txt');
end;
 
Функция FileExists(ИмяФайла)-проверяет, существует ли файл с именем ИмяФайла

Теперь уберём программу с панели задач: в обработчике OnCreate допишем вот это:
ShowWindow(application.handle, sw_hide);
ПоказатьОкно(Программа.Оперировать(рука,управление,"Хендл"), ПО_спрятать);
На всякий пожарный случай можно продублировать это в таймере :о)
Теперь наша "записная книжка" сама сохраняет и загружает текст и адреса, появляется, если мышка в левом верхнем углу и прячется по нажатию на Escape. Что добавить? Решать Вам. Или я ещё что-нибудь придумаю!

>Жду Ваших предложений!

Обучение Рассылка Мои программы FAQ 3D+Delphi АнтиглюкЮмор Прикольно?ю Заказ! Кто мы? Глюки... System Parameters Info
Хостинг от uCoz