Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Разное > Ваши программы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.11.2009, 04:40
-=C@$PeR=- -=C@$PeR=- вне форума
Прохожий
 
Регистрация: 07.11.2009
Сообщения: 14
Репутация: 11
Лампочка Зацените будильник написанный новичком (Не примитив)

Наверное полтора месяца писал не зная толком ничего в программировании, ну только разве что прочитал книжку "Библия Delphi"
Так купил всего 4 книги и в инете кучу всяких справок и советов накачал. Писал так, то в день час два посижу, то 5 часов. Ладно, что она просто работает, так она ещё и без ошибок... вроде... Короче если в настройках стоят галочки на автозапуск и на сохранение времени будильника, то если вдруг скачок напряжения и перезагрузка компа, то он грузится и продолжает работать. Не супер достижение, но когда писал прогу думал этого я никогда не сделаю.http://narod.ru/disk/14888263000/%D0%91%D1%83%D0%B4%D0%B8%D0%BB%D1%8C%D0%BD%D0%B8%D 0%BA%201.2.rar.html
Ссылка оновлена. Можно скачивать

Последний раз редактировалось -=C@$PeR=-, 09.11.2009 в 02:42.
Ответить с цитированием
  #2  
Старый 07.11.2009, 07:37
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

когда я свой будильник написа, меня патом друзьядолго тыкали "во типа изобретатель нах, открывай компанию, будеш не хуже microsoft"
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;
Ответить с цитированием
  #3  
Старый 07.11.2009, 21:56
-=C@$PeR=- -=C@$PeR=- вне форума
Прохожий
 
Регистрация: 07.11.2009
Сообщения: 14
Репутация: 11
По умолчанию

Цитата:
Сообщение от AleD
когда я свой будильник написа, меня патом друзьядолго тыкали "во типа изобретатель нах, открывай компанию, будеш не хуже microsoft"

А я когда написал свой первый будильник и закачал его другу, так он с ним чуть на работу не проспал, я его делал по книжке, почти один в один, так как не знал почти ничего, забывал постоянно даже из строки в целое например переводить и т.д . И сидел часами ломал голову, что да как. В том будильнике использовалась какаято стандартная функция типа CompareTime и время сравнивалось, например сейчас 6 вечера, а установить надо на 5 утра, так он срабатывал сразу. а если на позже, то срабатывал позже. И ещё чёто там было не так не помню.
Ответить с цитированием
  #4  
Старый 08.11.2009, 12:46
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Пожелания...
1. Нет текущего времени,я должен искать часы...на компе или еще где то...
2. Осталось до сигнала в минутах, а можно было бы еще и в секундах...
Предупреждения...
1. Не пиши при помощи чего пишешь прогу...среда программирования ведь у тебя нелицензионная ведь так...значит и писать на ней права не имеешь...
2. Лично у меня проблема со шрифтом всплывающих сообщений, написаны крокозябры...Windows 7600...
3. Монитор не выключается...
4. И не стоит делать ее тестовой до 2010 г...все равно взломают)))а ссобщение кумарит)))
Пока все....ждем версию 1.3...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #5  
Старый 08.11.2009, 15:55
-=C@$PeR=- -=C@$PeR=- вне форума
Прохожий
 
Регистрация: 07.11.2009
Сообщения: 14
Репутация: 11
Радость

Цитата:
1. Нет текущего времени,я должен искать часы...на компе или еще где то...
Об этом мне и брат например говорил, но думал, что это бессмысленно, так как есть часы в трее. Учту.

Цитата:
2. Осталось до сигнала в минутах, а можно было бы еще и в секундах...
Ну можно попробовать. Честно сказать не понимаю зачем такая точность. Почему говорю можно попробовать, посмотри на код расчёта времени:
Код:
procedure GetRemainedTime;
var HourCount, MinCount : word;
    HourENow, MinENow : word; //HourENow - тут будет текущие часы
begin

   HourENow := HourOf(Now);
   MinENow := MinuteOf(Now);
   if (HourENow > HourAlarm) and (MinENow <> 0) then
   begin
     HourCount := 24 - HourENow;
     HourCount := HourCount + HourAlarm - 1;
     MinCount := (60 - MinENow) + MinAlarm;
     if MinCount > 59 then
     begin
       HourCount := HourCount + 1;
       MinCount := MinCount - 60;
       HourRemain := HourCount;
       MinRemain :=MinCount;
       exit;
     end else
     begin
       HourRemain := HourCount;
       MinRemain :=MinCount;
       exit;
     end;
   end;

   if (HourENow > HourAlarm) and (MinENow = 0) then
   begin
     HourCount := 24 - HourENow;
     HourCount := HourCount + HourAlarm;
     MinCount := MinAlarm;
     HourRemain := HourCount;
     MinRemain :=MinCount;
     exit;
   end;

   if (HourENow < HourAlarm) and (MinENow <> 0) then
   begin
     HourCount := HourAlarm - HourENow - 1;
     MinCount := (60 - MinENow) + MinAlarm;
     if MinCount > 59 then
     begin
       HourCount := HourCount+1;
       MinCount := MinCount - 60;
       HourRemain := HourCount;
       MinRemain :=MinCount;
       exit;
     end else
     begin
       HourRemain := HourCount;
       MinRemain :=MinCount;
       exit;
     end;
   end;
   if (HourENow < HourAlarm) and (MinENow = 0) then
   begin
     HourCount := HourAlarm - HourENow;
     MinCount := MinAlarm;
     HourRemain := HourCount;
     MinRemain :=MinCount;
     exit;
   end;
   if (HourENow = HourAlarm) and (MinENow < MinAlarm) then
   begin
     HourRemain := 0;
     MinRemain := MinAlarm - MinENow;
     exit;
   end;

   if (HourENow = HourAlarm) and (MinENow > MinAlarm) then
   begin
     HourRemain := 23;
     MinRemain := (60 - MinENow) + MinAlarm;
     exit;
   end;
   if (HourENow = HourAlarm) and (MinENow = MinAlarm) then
   begin
     HourRemain := 0;
     MinRemain := 0;
     exit;
   end;
end;
Долго ломал этой процедурой голову.

Цитата:
1. Не пиши при помощи чего пишешь прогу...среда программирования ведь у тебя нелицензионная ведь так...значит и писать на ней права не имеешь...
Я пока ничего не продавал, а скинул на ознакомление.
Сразу назревает несколько вопросов: Откуда такая увереность (лицензия)? Тебе не всё равно? Кстати под Window 7 полюбому куплю лицензию, ну под Delphi вроде 2010. Слава богу работаю )). Если я не буду писать этой средой разработки, то я вообще не буду писать, больше не на чём не умею. Для меня загадка как например интерфейс делать на паскале. Друг, а Windows у тебя лицензионный?

Цитата:
2. Лично у меня проблема со шрифтом всплывающих сообщений, написаны крокозябры...Windows 7600...
Всмысле подсказок или когда будильник срабатывает? Windows 7600 это чё за Windows такой? билд 7600? ХР? хотя у ХР вроде билд последний что я виде 2600. Не насмехаюсь, просто не понял.

Цитата:
3. Монитор не выключается...
У меня и у друзей выключается, у всех Windows XP Service Pack 3
Там используется API функция, вот код выключения монитора:
Код:
procedure MonitorOnOff(OnOff : boolean); //Выключить/включить монитор
begin
  if OnOff = True then //если в условии указано True, значит выключить монитор
  begin
    SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 1);
  end else               //если False, значит включить
  begin
    SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
  end;
end;

и кстати, если ты имеешь ввиду, что монитор не выключается, когда жмёшь на галочку, то он и не должен. Он должен выключаться когда ты его запускаешь, если галочка стоит, а так можно выключить выбрав соответствующий пункт в меню которое появляется при щелчке на значке в трее.

Цитата:
4. И не стоит делать ее тестовой до 2010 г...все равно взломают)))а ссобщение кумарит)))
Пока все....ждем версию 1.3...

Хотелось бы посмотреть на взломаную версию. По взлому кое что читал. При выводе сообщения не используется API их видно в той же Olly Debag. Не используется текст выводимый в окно открытым текстом, тоесть то что видно в окне, в переменной храниться в другом виде. защита была сделана наспех. Да и не особо нужна она. Просто не хочу недоделаное пускать в массы , ексешник сжат.

Последний раз редактировалось -=C@$PeR=-, 08.11.2009 в 16:06.
Ответить с цитированием
  #6  
Старый 08.11.2009, 22:57
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

1 пункт. Написал свое мнение...Мне быхотелось видеть время в том же окне а не пререводить взгляд вниз на трей...
2 пункт. Будильник тогда можно будет использовать как таймер...
Цитата:
Я пока ничего не продавал, а скинул на ознакомление.
Сразу назревает несколько вопросов: Откуда такая увереность (лицензия)? Тебе не всё равно? Кстати под Window 7 полюбому куплю лицензию, ну под Delphi вроде 2010. Слава богу работаю )). Если я не буду писать этой средой разработки, то я вообще не буду писать, больше не на чём не умею. Для меня загадка как например интерфейс делать на паскале. Друг, а Windows у тебя лицензионный?
По поводу твоей лицензии мне все равно...а кому то нет...просто ты не просто не можешь продавать проги сделанные в нелицензионной среде, но и создавать их в ней...кто то когда то может спросить тебя, а ты платил за использование Делфи...мож помнишь случай про директора школы в глубинке, который купил компы с виндой...так его чуть не посадили...а винда лицензионная не более 10 % пользователй охватывает ИМХО из личных наблюдений...ИМХО на паскале конечно интерфейс не сделаешь, но и писать что на Delphi написал не стоит...лучше уж на Lazarus...
У меня винда 7 (build 7600) пока лицензионная...в смысле до 2010 года мелкософт такое позволяет...
А про защиту напишу так...через PeID (или что то другое) вычисляешь каким алгоритмом сжата прога...в сети полно описаний распаковки их...
запускаешь прогу через Olly Debug или при сложности SoftIce и твои процедуры как на ладони...меняешь к примеру je на jne и всё...
PS Критиковать нисколько не хотел просто написал свое мнение...т.е. не хотелось бы выяснений кто прав кто неправ и словесной перепалки...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...

Последний раз редактировалось NIch, 08.11.2009 в 23:00.
Ответить с цитированием
  #7  
Старый 08.11.2009, 23:31
-=C@$PeR=- -=C@$PeR=- вне форума
Прохожий
 
Регистрация: 07.11.2009
Сообщения: 14
Репутация: 11
По умолчанию

Цитата:
PS Критиковать нисколько не хотел просто написал свое мнение...т.е. не хотелось бы выяснений кто прав кто неправ и словесной перепалки...
Да всё нормально. Ты бы видел, что на другом форуме написал один человек про мою как он выразился "защиту". Незнаю, мне так по приколу, что он говорит, типа ненадо его недооценивать. Другие билды когда по нему клацаешь дабл кликами раз 5 он говорит: "Ну чего ты щёлкаешь как дятел" (сказочным, добрым голосом из ... хотя не скажу, опасно )

Цитата:
а винда лицензионная не более 10 % пользователй охватывает ИМХО
Где-то читал, что майкрософту даже выгодно, что у всех именно винда стоит, пусть пиратская, как бы реклама. А так лишь бы у компаний лицензионная стояла.

между делом, чтобы не создавать тему и т.д. Где взять инфу как правильно устанавливать компоненты?
Ответить с цитированием
  #8  
Старый 09.11.2009, 00:20
Аватар для AllMaNi
AllMaNi AllMaNi вне форума
Новичок
 
Регистрация: 15.06.2009
Адрес: Россия, ЮФО
Сообщения: 57
Репутация: 10
По умолчанию

Неплохой будильник - тока размер для простенького будильника - великоват.
__________________
Пусть ненавидят миллионы, зато любят тыщи (с) Многоточие

Последний раз редактировалось AllMaNi, 09.11.2009 в 00:24.
Ответить с цитированием
  #9  
Старый 10.11.2009, 07:44
-=C@$PeR=- -=C@$PeR=- вне форума
Прохожий
 
Регистрация: 07.11.2009
Сообщения: 14
Репутация: 11
По умолчанию

Цитата:
Неплохой будильник - тока размер для простенького будильника - великоват.
Уже делаю опцию, чтобы было 2 разных размера будильника 533х400 и тот что вы все видели 800х600.
Ответить с цитированием
  #10  
Старый 12.11.2009, 22:57
-=C@$PeR=- -=C@$PeR=- вне форума
Прохожий
 
Регистрация: 07.11.2009
Сообщения: 14
Репутация: 11
Восклицание

Почти всё сделал, теперь в настройках можно менять, ну типа скин будильника на маленький, два дня сидел за этим делом, просто все компоненты раскидать по форме програмно надо, а это как минимум надо у каждого поменять Left, Top, Width, Height. Тестирую вылетает ошибка EAccessViolation.
Цитата:
Исключение генерируется при ошибочном доступе к памяти.



Модуль SysUtils

Описание:

Исключение класса EAccessViolation генерируется во время выполнения при возникновении следующих ситуаций:
Попытка разыменования нулевого указателя nil.
Попытка записи в кодовую страницу.
Попытка доступа к адресу вне памяти, распределенной приложению.
Исключение EAccessViolation автоматически генерируется при возникновении подобных ситуаций. Генерация его с помощью оператора raise не разрешается.

Все свойства и методы исключения EAccessViolation наследуются от базового класса Exception.

Вообще ничё не понял.


Я как понял это происходит при сохранении структуры содержащей множество настроек будильника в файл формата .dat с помощью TFileStream или чёто меди плэер тупит, много раз прогонял пошагово, то в одном месте затупит, то вдругом.

Код:
procedure SaveSettings;
var Ini : TCustomIniFile;
    reg : TRegistry;
    FS : TFileStream;
begin
  SettingToRecord; //нужно чтобы все настройки загнать в переменные
  Ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'Settings.cfg');

  Ini.WriteString('Strings','Message',Setting.MessageAlarm);
  Ini.WriteString('Strings','Musicway',Setting.MusicWayName);

  Ini.WriteInteger('Colors', 'Message',Setting.ColorMsgFont);
  Ini.WriteInteger('Colors','Time',Setting.LColorDigits);
  Ini.WriteInteger('Colors','Date',Setting.LColorDate);
  Ini.WriteInteger('Colors','LabelHM',Setting.LColorHourMin);
  Ini.WriteInteger('Colors','ComboBoxFont',Setting.ColorCombBoxFont);
  Ini.WriteInteger('Colors','ComboBoxBack',Setting.ColorCombBoxBack);

  Ini.WriteBool('CheckSettings', 'AlarmClockReady',False);//чтобы будильник при
  // следующем запуске был в не запущеном состоянии, если по среди работы программы
  // вдруг сняли галочку в настройках, "сохранять время сигнала будильника"
  Ini.WriteBool('CheckSettings', 'RepeatMusic', Setting.RepeatMusic);
  Ini.WriteBool('CheckSettings', 'MonitorOff',Setting.CheckBoxMonitor);
  Ini.WriteBool('CheckSettings', 'AutoRun', Setting.AutoRun);
  Ini.WriteBool('CheckSettings','AutoRunParameters', Setting.AutoRunParameters);
  Ini.WriteBool('FormStyle', 'AlwayOnTop', Setting.OnTop);

  Ini.WriteInteger('Counters','CountRepeat', Setting.CountRepAlarm);
  Ini.WriteInteger('Counters','CountRepeatMS', Setting.CountRepMilisecond);



  if Setting.AutoRunParameters then
  begin
    Ini.WriteInteger('AlarmTime', 'Hours', HourAlarm);
    Ini.WriteInteger('AlarmTime', 'Minutes', MinAlarm);
    Ini.WriteBool('CheckSettings', 'AlarmClockReady',Form1.ACStarted);
  end; //else - здесь можно поставить запись, что будильник не запущен, вместо той что сверху, будет тоже самое
  Ini.Free;

  FS := TFileStream.Create('Size.dat', fmOpenRead or fmCreate);
  FS.Write(Setting, SizeOf(Setting));
  FS.Free; 

  reg := TRegistry.Create;
  reg.RootKey := HKEY_CURRENT_USER;
  reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',true);
  if Setting.AutoRun then //Если Автозагрузка выбрана то...
  begin
    reg.WriteString('AlarmClock',Application.ExeName);
    reg.CloseKey;
    reg.Free;
  end else
  begin
    reg.DeleteValue('AlarmClock');
    reg.CloseKey;
    reg.Free;
  end;
end;

или вообще дело не в этом.

Всё разобрался, это всё косячил TFileStream, переписал, теперь сохраняю в ини и читаю от туда, перестало тупить

Последний раз редактировалось -=C@$PeR=-, 12.11.2009 в 23:37.
Ответить с цитированием
  #11  
Старый 26.11.2009, 00:15
НичегоНезнаю НичегоНезнаю вне форума
Прохожий
 
Регистрация: 25.11.2009
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от NIch
А про защиту напишу так...через PeID (или что то другое) вычисляешь каким алгоритмом сжата прога...

проведи программу через хороший exe compressor и никакой PeID не поможет.

//

а будильник это хорошо)
Ответить с цитированием
  #12  
Старый 08.06.2010, 00:08
Аватар для Casper-Hacker
Casper-Hacker Casper-Hacker вне форума
Начинающий
 
Регистрация: 19.05.2008
Сообщения: 147
Версия Delphi: x
Репутация: 15
По умолчанию

Все мы когда то писали будильник 5+
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:55.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter