Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.17;
Скачать: CL | DM;

Вниз

Помогите написать "Уведомлятель"   Найти похожие ветки 

 
Костик   (2008-07-11 11:38) [0]

Помогите пожалуйста написать "Уведомлятель".... Я уже смотрел faq нашел некоторые моменты, но така как я новичок то те процедуры, которые там написаны я не очень в состоянии применть (немного не понятно). Хочу чтобы программа загружалась с виндой и сворачивалась к часам в панели задач и через каждое установленное время выдавала сообщение что типа "Эй чувак - да ты заработался как я посмотрю" )))  ну чтото типа того...
Заранее благодарю.


 
Сергей М. ©   (2008-07-11 11:42) [1]

Чем же тебе помочь ?


 
Костик   (2008-07-11 11:53) [2]


> Чем же тебе помочь ?

Мне б помочьдобавить в автозагрузку и свернуть/развернуть с места возле часов....


 
Denis__ ©   (2008-07-11 12:02) [3]

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
uses Registry;
TRegistry;
Качать RXLibrary, там есть RXTrayIcon.


 
Костик   (2008-07-11 12:18) [4]


> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
> uses Registry;
> TRegistry;
> Качать RXLibrary, там есть RXTrayIcon.

та тут много таких советов... и что мне с этим делать?


 
Сергей М. ©   (2008-07-11 12:21) [5]


> что мне с этим делать?


Ну как что ?
принять как направление для исследования предложенного на предмет применимости в своей задаче)


 
Denis__ ©   (2008-07-11 12:31) [6]


> Костик

Разжую :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Это ветка реестра, куда надо писать, чтобы твоя программа запускалась автоматически. Строковый параметр с любым именем. В нём должен быть путь к программе. Используй Application.Exename;

uses Registry;
...
var
  Reg : TRegistry;
...

Это то, чем ты должен пользоваться для записи в реест. Хотя можешь поизвращаться с TRegIniFile. Но мне больше нравится TRegistry;

Качать RXLibrary, там есть RXTrayIcon.
Это компонент, с помощью которого можно "запуздырить иконку возле часиков". Там есть readme, так что с установкой проблем быть не должно.
RxLib7 весит в архиве 3.62 метра.

Удачи


 
Anatoly Podgoretsky ©   (2008-07-11 12:36) [7]

> Костик  (11.07.2008 11:38:00)  [0]

В чем проблема, таймер и иконка в трей. Только зачем же на АПИ? У тебя пока явно знаний на АПИ не хватит.
Работы то на 10 минут, в Д2006.


 
Плохиш ©   (2008-07-11 12:39) [8]


> Anatoly Podgoretsky ©   (11.07.08 12:36) [7]
> Работы то на 10 минут, в Д2006.

Ну вот взял и обломил людям целую rxlib :-)


 
Костик   (2008-07-11 12:44) [9]


> Ну вот взял и обломил людям целую rxlib :-)

Ниче не обламал - у меня тока 7-ка стоит ))

> Denis__ ©   (11.07.08 12:31) [6]

Спасибо - будем пробывать.


 
Johnmen ©   (2008-07-11 13:13) [10]


> Спасибо - будем пробывать.

Пробый, пробый...:))


 
Anatoly Podgoretsky ©   (2008-07-11 13:14) [11]

> Плохиш  (11.07.2008 12:39:08)  [8]

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


 
oldman ©   (2008-07-11 13:17) [12]


> Хочу чтобы программа загружалась с виндой и сворачивалась
> к часам в панели задач и через каждое установленное время
> выдавала сообщение


Планировщик задач отменили?
Когда???


 
Правильный*Вася   (2008-07-11 13:20) [13]


>  Помогите написать "Уведомлятель"

правильно "уведомитель"
а твое - странные ассоциации вызывает


 
Костик   (2008-07-11 13:22) [14]


> Качать RXLibrary, там есть RXTrayIcon.

Короче говоря еле нашел... Самая большая версия 3.58 :
RX Library 2.75 conversion to Delphi 7, v1.0 (based on conversion by SGB Software)
 from Project JEDI (http://jvcl.sourceforge.net)
и то нет тута в помине RXTrayIcon.


 
Костик   (2008-07-11 13:28) [15]

а не есть


 
Dennis I. Komarov ©   (2008-07-11 13:32) [16]

И вот на каждый "млятель" компоненты искать (ставить)...


 
Костик   (2008-07-11 13:54) [17]

Что делать?
Пишет что не может найти  RXShell; uses


 
DVM ©   (2008-07-11 13:55) [18]


> а твое - странные ассоциации вызывает

У меня это сразу вызвало ассоциации с еще тремя шедеврами програмистской мысли: "Конвектор форматов", "Автошема", и "Кодировочник"


 
Dennis I. Komarov ©   (2008-07-11 13:58) [19]

> [17] Костик   (11.07.08 13:54)
Что делать?

Нанять программиста


 
Костик   (2008-07-11 14:02) [20]


> Нанять программиста

а я кто по вашему?

))) шучу
да вроде ж все установил...
по инструкции...


 
Костик   (2008-07-11 14:05) [21]

короче не знаю что сделал - но заработало, надо бы получше разобраться с этими компонентами....


 
oldman ©   (2008-07-11 14:07) [22]


> Костик   (11.07.08 14:05) [21]
> короче не знаю что сделал - но заработало


Видимо, вышел - вошел
:)


 
Dennis I. Komarov ©   (2008-07-11 14:11) [23]

> а я кто по вашему?

флудер... эт я тоже шучу
видно из-за пятницы еще не запуздырили к часикам


 
Костик   (2008-07-11 14:16) [24]

скажите пожалуйста какое событие происходит когда нажимаешь свернуть форму _ ?
ну я туда впишу код появления иконки в системном трее ( или как он там называется "место возле часов") а потом чё с формой лучше сделать: визибл фалсэ?


 
Костик   (2008-07-11 15:08) [25]

Вот что получается.... Вроде как работает:

function IsStatus: boolean;
var
Reg:  TRegistry;
bIs:  boolean;
List: TStringList;
I:    Integer;
begin
bIs  := False;
Reg  := TRegistry.Create;
List := TStringList.Create;
try
  Reg.RootKey := HKEY_LOCAL_MACHINE;
  if Reg.OpenKey("\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True) then
   begin
     Reg.GetValueNames(List);
     for I:=0 to List.Count-1 do
       begin
        if List.Strings[I] = "YouMemory 1.0" then
         bIs := True;
         break;
       end;
   end;
finally
   Reg.Free;
   List.Free
end;
Result :=  bIs;
end;

procedure WriteStatus(Status:boolean);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
 try
   Reg.RootKey := HKEY_LOCAL_MACHINE;
   if Reg.OpenKey("\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True) then
   begin
    if Status then
     Reg.WriteString("YouMemory 1.0",""" + Application.ExeName + """)
    else
     Reg.DeleteValue("YouMemory 1.0");
     Reg.CloseKey;
   end;
 finally
   Reg.Free;
 end;
end;

procedure TForm1.RxTrayIcon1Click(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
RxTrayIcon1.Active := False;
Form1.Visible := true;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
RxTrayIcon1.Active := true;
Form1.Visible := false;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
 WriteStatus(True)
else
 WriteStatus(False);
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
if IsStatus then
 CheckBox1.Checked := true
else
 CheckBox1.Checked := false;
end;


 
Johnmen ©   (2008-07-11 15:35) [26]


> if IsStatus then  
>   CheckBox1.Checked := true
> else  
> CheckBox1.Checked := false;

Милашка...
:)


 
Dennis I. Komarov ©   (2008-07-11 15:49) [27]

С "конвектором" рядом не стояла


 
Костик   (2008-07-11 15:49) [28]


> Johnmen ©   (11.07.08 15:35) [26]
>
> > if IsStatus then  
> >   CheckBox1.Checked := true
> > else  
> > CheckBox1.Checked := false;
>
> Милашка...
> :)
> <Цитата>
>
>
> Dennis I. Komarov ©   (11.07.08 15:49) [27]
> С "конвектором" рядом не стояла

не понял?


 
Правильный*Вася   (2008-07-11 15:55) [29]


> for I:=0 to List.Count-1 do
>   begin
>     if List.Strings[I] = "YouMemory 1.0" then
>        bIs := True;
>        break;
>   end;

выпадет из цикла после первой же итерации
зачем цикл тогда?


 
Правильный*Вася   (2008-07-11 15:56) [30]


> if CheckBox1.Checked then  WriteStatus(True) else  WriteStatus(False);

вторая милашка :)


 
Dennis I. Komarov ©   (2008-07-11 16:09) [31]

> [28] Костик   (11.07.08 15:49)

Чего тут не понятного IsStatus какие значения принимает?
CheckBox1.Checked:=IsStatus;

А мой пост это не для тебя...


 
Костик   (2008-07-11 16:10) [32]


> выпадет из цикла после первой же итерации
> зачем цикл тогда?

Вы уверены?

> Правильный*Вася   (11.07.08 15:56) [30]
>
> > if CheckBox1.Checked then  WriteStatus(True) else  WriteStatus(False);
>
>
> вторая милашка :)

Все такие умные стали....
Ану скажите пожалуйста:
вот написал

procedure TForm1.OnMinimizeProc(Sender: TObject);
begin
RxTrayIcon1.Active := True;
Form1.Hide;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
Application.OnMinimize := OnMinimizeProc;
if IsStatus then
 CheckBox1.Checked := true
else
 CheckBox1.Checked := false;
end;

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


 
Dennis I. Komarov ©   (2008-07-11 16:21) [33]

> Вы уверены?

Угу

> Все такие умные стали....

Думаю что за сегодня не сильно изменились...

> Как исправить что б нормально было?

Еще и Rx поставить...?
Ну объясняй каждую строчку своего кода


 
Костик   (2008-07-11 17:04) [34]

Ну  с брэйком я согласен... пропстил begin end;
Ну создаю лишний код .... ну я же новичок ё ма ё
)
> Еще и Rx поставить...?
> Ну объясняй каждую строчку своего кода

Вот забыл дописать:

procedure TForm1.RxTrayIcon1Click(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
RxTrayIcon1.Active := False;
Form1.Show;
end;

Но все равно не понял что Вы имеете в виду?
> Еще и Rx поставить...?
> Ну объясняй каждую строчку своего кода


 
Игорь Шевченко ©   (2008-07-11 19:42) [35]

давить! оно потом банк-клиент будет писать


 
McSimm ©   (2008-07-11 20:08) [36]


> давить! оно потом банк-клиент будет писать


– Нет, конечно... – промямлил я. – Проделана большая работа... (Эдик схватился за голову.) Я, конечно, понимаю... добрые намерения... (Эдик посмотрел на меня с презрением.) Ну в самом деле, – сказал я, – человек старался... нельзя же так...
– Побойся бога, – отчетливо произнес Эдик.
– Нет... Ну что ж... Ну пусть человек работает, раз ему интересно...


:)


 
Denis__ ©   (2008-07-11 21:44) [37]

Удалено модератором


 
Костик   (2008-07-14 09:10) [38]

Удалено модератором


 
Костик   (2008-07-14 09:44) [39]


> давить! оно потом банк-клиент будет писать

если Вы сейчас уже не "оно" то это не значит что надо оскарблять других...

Как сделать чтобы программа нормально разворачивалась/сворачивалась трэй?


 
Dennis I. Komarov ©   (2008-07-14 09:50) [40]

Удалено модератором



Страницы: 1 2 вся ветка

Текущий архив: 2008.08.17;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.021 c
15-1214737779
Галинка
2008-06-29 15:09
2008.08.17
Reactable - будущее электронной музыки


2-1216181931
artos
2008-07-16 08:18
2008.08.17
Проблема с DBLookupcombo от InfoPower4000


15-1214612469
axis_of_evil
2008-06-28 04:21
2008.08.17
устройство USB не опознано


2-1215759810
TUserClass
2008-07-11 11:03
2008.08.17
"Полосатый" DBGrid и несколько выделенных записей ...


15-1214895653
kaif
2008-07-01 11:00
2008.08.17
Почему дерево растет вверх?