pomodoro源码

有网友问我要pomodoro源码。事实上这个程序非常easy,仅仅是定时器,定时弹出置顶窗体。用c++builder6.0写。放一个TPopupMenu 右键菜单,一个TTrayIcon 一个托盘图标控件

。一个ImageList1图片列表,显示闪动图片。显示时间的标签。

源码例如以下,假设不用C++builder写,仅仅能參考代码自己写。

定时器推断时间到了就显示窗体。闪动图标。双击关闭窗体。

unit1.h

//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include "trayicon.h"
#include <Menus.hpp>
#include <ImgList.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TTimer *Timer1;
        TLabel *LMinute;
        TLabel *LMaohao;
        TLabel *LSecond;
        TTrayIcon *TrayIcon1;
        TPopupMenu *PopupMenu1;
        TMenuItem *N1;
        TImageList *ImageList1;
        TMenuItem *sinoxorg1;
        TMenuItem *N2;
        void __fastcall Timer1Timer(TObject *Sender);
        void __fastcall N1Click(TObject *Sender);
        void __fastcall FormDblClick(TObject *Sender);
        void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
        void __fastcall TrayIcon1Restore(TObject *Sender);
        void __fastcall FormCreate(TObject *Sender);
        void __fastcall sinoxorg1Click(TObject *Sender);
        void __fastcall FormKeyPress(TObject *Sender, char &Key);
private:    // User declarations
public:     // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

unit1.cpp

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include   <registry.hpp>

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "trayicon"
#pragma resource "*.dfm"
TForm1 *Form1;
int iWaitTime=0;
int MaxWaitTime=25*60;
int MaxRestTime=5*60;
int RunState=0;
int IsOwnerPress=false;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
 RunState=0;
 IsOwnerPress=false;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
 iWaitTime+=1;
 if (RunState==0)
 {
        if ( iWaitTime>= MaxWaitTime)
        {
              RunState=1;
              iWaitTime=0;
        }
        Color= clBtnFace;
        LMinute->Color= clBtnFace;
        LMaohao->Color= clBtnFace;
        LSecond->Color= clBtnFace;
        LMinute->Caption=iWaitTime/60;
        LSecond->Caption=iWaitTime%60;
        if ( iWaitTime%5==0)
        {
                if (WindowState!=wsMinimized)
                {
                    WindowState=wsMinimized;
                    Hide();
                }
        }
         IsOwnerPress=false;
         TrayIcon1->Animate=false;
        //randomize();
        //TrayIcon1->SetIconIndex(rand() % 3);
        TrayIcon1->SetIconIndex(1);

 }
 else
 {
        if ( iWaitTime>= MaxRestTime)
        {
              RunState=0;
              iWaitTime=0;
              IsOwnerPress=false;
        }
        Color= clRed;
        LMinute->Color= clRed;
        LMaohao->Color= clRed;
        LSecond->Color= clRed;
        LMinute->Caption=iWaitTime/60;
        LSecond->Caption=iWaitTime%60;
        if(IsOwnerPress)
        {
                if ( iWaitTime%5==0)
                {
                        if (WindowState!=wsMinimized)
                        {
                        WindowState=wsMinimized;
                        Hide();
                        }
                }
        }
        else
        {
                if (WindowState==wsMinimized)
                {
                        WindowState=wsNormal;
                        Show();
                }
                TrayIcon1->Animate=true;
         }
 }

}
//---------------------------------------------------------------------------
void __fastcall TForm1::N1Click(TObject *Sender)
{
        Application->Terminate();

}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormDblClick(TObject *Sender)
{
        WindowState=wsMinimized;
        Hide();
        IsOwnerPress=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
        WindowState=wsMinimized;
        Action=caNone;
        Hide();
        IsOwnerPress=true;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::TrayIcon1Restore(TObject *Sender)
{
        WindowState=wsNormal;
        Show();
        IsOwnerPress=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 TRegistry *Test;
  Test = new TRegistry ();
  Test->RootKey = HKEY_LOCAL_MACHINE;
  if(Test->OpenKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",false))
  {
        AnsiString sKeyval;

     sKeyval=Test->ReadString("sinox_pomodoro");
     if (sKeyval.Length()<=4)
     Test->WriteString("sinox_pomodoro",Application->ExeName);
  }
  delete Test  ;
  randomize();
  TrayIcon1->SetIconIndex(rand() % 3);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::sinoxorg1Click(TObject *Sender)
{
AnsiString   strurl= "http://www.sinox.org/";
ShellExecute(NULL,NULL, strurl.c_str(),NULL,NULL,SW_SHOW);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key)
{
    if (Key==VK_SPACE)
    {
          WindowState=wsMinimized;
        Hide();
        IsOwnerPress=true;
    }
}
//---------------------------------------------------------------------------

unit1.dfm

object Form1: TForm1

Left = 192

Top = 114

Width = 870

Height = 145

BorderIcons = [biSystemMenu]

BorderStyle = bsSizeToolWin

Color = clBtnFace

DefaultMonitor = dmDesktop

Font.Charset = DEFAULT_CHARSET

Font.Color = clWindowText

Font.Height = -24

Font.Name = ‘MS Sans Serif’

Font.Style = []

FormStyle = fsStayOnTop

OldCreateOrder = False

Position = poDesktopCenter

OnClose = FormClose

OnCreate = FormCreate

OnDblClick = FormDblClick

OnKeyPress = FormKeyPress

PixelsPerInch = 96

TextHeight = 29

object LMinute: TLabel

Left = 349

Top = 16

Width = 44

Height = 33

AutoSize = False

Caption = ‘0’

end

object LMaohao: TLabel

Left = 400

Top = 16

Width = 32

Height = 33

AutoSize = False

Caption = #65306

end

object LSecond: TLabel

Left = 440

Top = 16

Width = 57

Height = 33

AutoSize = False

Caption = ‘0’

end

object Timer1: TTimer

OnTimer = Timer1Timer

Left = 448

Top = 80

end

object TrayIcon1: TTrayIcon

Visible = True

Hint = #24037#20316#20241#24687#25552#37266#22120

PopupMenu = PopupMenu1

Hide = True

RestoreOn = imDoubleClick

PopupMenuOn = imRightClickUp

Icons = ImageList1

IconIndex = 1

OnRestore = TrayIcon1Restore

Left = 320

Top = 80

end

object PopupMenu1: TPopupMenu

Left = 88

Top = 72

object N1: TMenuItem

Caption = #20851#38381

OnClick = N1Click

end

object sinoxorg1: TMenuItem

Caption = #35775#38382’sinox.org’

OnClick = sinoxorg1Click

end

object N2: TMenuItem

Caption = #21452#20987’/’#25353#31354#26684#38544#34255

end

end

object ImageList1: TImageList

AllocBy = 3

Left = 200

Top = 80

Bitmap = {

494C010103000400040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600

0000000000003600000028000000400000001000000001002000000000000010

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

00000000000000000000000000000000000000000000000000000909E9003434

760032327C000405F60000000000000000000000000000000000000000003030

8300363671000909E900000000000000000000000000000000000909E9003434

760032327C000405F70000000000000000000000000000000000000000003030

8300363671000909E900000000000000000000000000000000000909E9003131

7700313177000505F60000000000000000000000000000000000000000003030

8300363671000909E90000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

00000000000000000000000000000000000000000000000000002A2A95005354

21004E4C3100311D950029209E0031446E0031446E002B2597002F1B9A004E4C

31005354210030308300000000000000000000000000000000002A2A95005253

26004E4C2F0031218400282196002F4481002F4481002A2A95002F1A85004F4B

2F005253260030308300000000000000000000000000000000002A2A95005454

21004B4B33001D1D950021219E0042446E0042446E00252796001B1A9A004B4B

3300545421003030830000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

00000000000000000000000000000000000000000000000000001012D600453D

54004B3E47002E95210011E9000009F9000009F9000011E9000027A819004844

4500473C4F001315CD00000000000000000000000000000000001112D500453D

4C004A3F3B002D96880013E5CD0008FAE90008FAE90010EBD30029A291004745

4100473C45001315CF00000000000000000000000000000000001212D6003C3C

50003C3C500095962000E4E50000FAFB0000FAFB0000E9EB0000A1A21A004445

45003C3C50001515CD0000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000003831

780019CE0B0000FF000000FF000000FF000000FF000000FF000000FF000012DC

07003A4064000000000000000000000000000000000000000000000000003731

720018D0BF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0011DD

D00039416C000300F80000000000000000000000000000000000000000003131

7700CED00A00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000DCDD

0600414164000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

00000000000000000000000000000000000000000000000000002510B50025BF

090000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF

00001CD302002D1B9D000000000000000000000000000000000025109F0023C0

A30000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FF

FF001AD5B8002C1C8D0000000000000000000000F8000000F8001010B500BFC0

0800FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF

0000D4D501001B1A9A0000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

00000000000000000000000000000000000000000000000000003457570000FF

000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF

000000FF0000336F3F000900F80000000000000000000300F80033587A0002FF

F90000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FF

FF0000FFFF0032717B000800EB0000000000000000000000000057585600FFFF

0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF

0000FFFF00006F713E000000F8000000F8000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000F00EF002D8E2B0000FF

000000FF000000FF000000FF000019C1190021AD21000BE10B000BE10B000BE1

0B0000FF000027A819001400E20000000000000000000F00DB002B8B8E0000FF

FF0000FFFF0000FFFF0000FFFF001AC3B9001FAEAE000AE5E3000BDFDD000AE5

E30000FFFF0026AA9A001400CC0000000000000000000000EF008E8F2A00FFFF

0000FFFF0000FFFF0000FFFF0000C1C21700AEAE1F00E3E50A00DEDF0D00E2E4

0A00FFFF0000A8AA17000000E200000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000001100EA002A97240000FF

000000FF000000FF000000FF00002D8E2B003B663B001EB21E0021A721001EB2

1E0000FF000023B612001600DD0000000000000000001000D7002A97910000FF

FF0000FFFF0000FFFF0000FFFF002A979100396967001BB7B3001EADA8001BB7

B30000FFFF0022B8A6001600C60000000000000000000000EF0097992300FFFF

0000FFFF0000FFFF0000FFFF00009092290067693900B3B71B00A8AD1E00B3B7

1B00FFFF0000B6B811000000DD00000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000900F8002E7E380000FF

000000FF000000FF000000FF00000CE30C000FDF0F0000FF000000FF000000FF

000000FF00002A9724000F00EF0000000000000000000A00E7002D84880000FF

FF0000FFFF0000FFFF0000FFFF000AE5E3000AE5E30000FFFF0000FFFF0000FF

FF0000FFFF002A9791001000D7000000000000000000000000007E803600FFFF

0000FFFF0000FFFF0000FFFF0000E2E40A00E2E40A00FFFF0000FFFF0000FFFF

0000FFFF0000979923000000EF00000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000303083000DF8

000000FF000000FF000000FF00000FDF0F0012D6120000FF000000FF000000FF

000000FF0000314A6800000000000000000000000000000000002D348A000BF9

DF0000FFFF0000FFFF0000FFFF000DDFDE000FD7D60000FFFF0000FFFF0000FF

FF0007FFEC00304C82000000000000000000000000000000000030308300F8F9

0000FFFF0000FFFF0000FFFF0000DEDF0D00D6D70F00FFFF0000FFFF0000FFFF

0000FFFF00004A4C670000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000001C1DB7001C08CD002F82

340000FF000000FF000000FF00000FDF0F0012D6120000FF000000FF000000FF

00002A9D22001E07CB001C1DB70000000000000000001C1DB7001D07B4002D84

880000FFFF0000FFFF0000FFFF000DDFDE000FD7D60000FFFF0000FFFF0000FF

FF00299E93001D07B4001C1DB70000000000000000001E1EB2000707CD008384

3200FFFF0000FFFF0000FFFF0000DEDF0D00D6D70F00FFFF0000FFFF0000FFFF

00009D9E21000707CD001E1EB200000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000202F90043434F003F405800210B

C4002C89310009F9000000FF000008F7080009EE090000FF000008FF00002A9D

2200230FBB00343476004A4A3E000909E9000405F70043434F003F405800200B

AE002B8B8E0009FDE60000FFFF0004F4F30007EFED0000FFFF0007FFEC00299E

9300240FA700343476004A4A3D000909E9000505F60043434F00404058000B0B

C100898B3000FAFB0000FFFF0000EEEF0700EEEF0700FFFF0000FFFF00009D9E

21000F0FBB00313177004A4A3E000909E9000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000034347600535421003F40

5800210BC4002F4274002A9827001CBF13001CBF13002A9D2200314A6800210B

C4003A386A00535421003F4058000405F6000000000034347600535421003F40

5800200BAE0029428C00299E93001BC0B6001BC0B600299E93002E4F8700200B

AE003A386900535421003F4058000405F7000000000036367100545421004040

58000D0CC0004343730097992300BFC01100BFC011009D9E21004E4F67000B0B

C30038386A0054542100404058000505F6000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000000000000909E90032327C003B3B

6400181AC100000000000F00EF003B277A003B277A001100EA00000000001012

D6003B3B6400343476000E0EDC0000000000000000000909E90032327C003B3B

6400181AC300000000000F00DB003B2866003B2866001000D700000000001112

D5003B3B6400343476000E0EDC0000000000000000000909E90032327C003B3B

64001A1AC100000000000000EF0028287900282879000000EF00000000001212

D6003B3B6400363671000E0EDC00000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

00000000000000000000000000000708EE000708EE0000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

00000000000000000000000000000708EF000708EF0000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

00000000000000000000000000000808EE000808EE0000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

0000000000000000000000000000000000000000000000000000000000000000

000000000000000000000000000000000000424D3E000000000000003E000000

2800000040000000100000000100010000000000800000000000000000000000

000000000000000000000000FFFFFF00FFFFFFFFFFFF0000C3E3C3E3C3E30000

C003C003C0030000C003C003C0030000E007E003E0070000C003C00300030000

C0018001C00000008001800180010000800180018001000080018001C0010000

C003C003C0030000800180018001000000000000000000008000800080000000

8421842184210000FE7FFE7FFE7F0000}

end

end

能够建立一个项目后替换这三个文件。

时间: 2024-08-27 13:50:00

pomodoro源码的相关文章

小说分销系统,微信小说分销,类掌中云小说系统,类818tu系统源码

[演示站参数][][][][][][][][][][][] [后 台 地 址]     http://xiaoshuo.qqsiot.cn/manager          [] [管理员账号]     admin                                                     [] [渠道商账号]     channel                                                  [] [代理商账号]     age

cocos Creator js 房卡麻将/血战/H5四川麻将源码下载搭建

房卡麻将/血战/H5四川麻将 源码 支持iOS/Android/H5 完整源码 1.基于NODEJS+MYSQL的服务器,成熟的技术方案,高效稳定,且方便Windows开发,Linux平台布署,节约服务器运转成本. 2.采用最新版本的cocos引擎,cocos creator开发,可快速的进行界面调整.且能够快速地发布iOS,Android版本. 3.如需H5版本,只需针对H5平台进行资源优化即可. 4.成熟可靠的房卡式设计,能满足大部分用户使用体验. 5.产品经过大量测试,可以运转稳定. 测试

下载-深入浅出Netty源码剖析、Netty实战高性能分布式RPC、NIO+Netty5各种RPC架构实战演练三部曲视频教程

下载-深入浅出Netty源码剖析.Netty实战高性能分布式RPC.NIO+Netty5各种RPC架构实战演练三部曲视频教程 第一部分:入浅出Netty源码剖析 第二部分:Netty实战高性能分布式RPC 第三部分:NIO+Netty5各种RPC架构实战演练

android手机安全卫士、Kotlin漫画、支付宝动画、沉浸状态栏等源码

Android精选源码 轻量级底部导航栏 android手机卫士源码 android实现高仿今日头条源码 一个用Kotlin写的简单漫画App源码 android吐槽项目完整源码 实现可以滑动文字逐渐变色的TabLayout android实现将app隐藏加密功能的源码 android实现横向滚动的卡片堆叠布局 android仿支付宝的咻咻动画源码 android状态栏和沉浸式导航栏管理源码 Android优质博客 从BaseActivity与BaseFragment的封装谈起 这篇博客主要是从

Java企业微信开发_09_身份验证之移动端网页授权(有完整项目源码)

注: 源码已上传github: https://github.com/shirayner/WeiXin_QiYe_Demo 一.本节要点 1.1 授权回调域(可信域名) 在开始使用网页授权之前,需要先设置一下授权回调域.这里瞬间想到之前做JSSDK的时候,也设置过一个域名.二者本质上都是设置可信域名. 当用户授权完毕之后,请求将重定向到此域名(或者子域名)下的执行者(jsp页面或者servlet等).如何设置授权回调域,请见第二节. 1.2 获取Code https://open.weixin.

微信小程序源码下载(200多个)

微信小程序源码下载汇总,点击标题进入对应的微信小程序下载页面. 最新 demo源码(点击标题进入帖子下载) 描述 1 微信小程序 会议室预定小程序 微信小程序 会议室预定小程序**** 本内容被作者隐藏 **** 2 微信小程序-双人五子棋小游戏 微信小程序-双人五子棋小游戏**** 本内容被作者隐藏 **** 3 打卡签到小程序 用微信小程序实现的一个简单的打卡签到的小程序拒绝 4 微信小程序---左滑删除 微信小程序---左滑删除**** 本内容被作者隐藏 **** 5 一个借钱的记事本的微

ViewGroup源码解读

我们之前刚刚分析完事件传递机制和view的源码,如果没有看过的,建议看完View的事件拦截机制浅析以及View的事件源码解析.这次我们来分析下viewgroup的. 可能有人会想,怎么又是源码分析,肯定又是一大通.其实没你想的那么复杂.仔细分析一波就行了. 解读ViewGroup 我们都知道,一个事件完整的流程是从dispatchTouchevent–>onInterceptTouchevent–>onTouchEvent.我们先不说事件监听的问题.上述三个步骤就是正常一个点击的流程.前面我们

Java DES 加密和解密源码

Java密码学结构设计遵循两个原则: 1) 算法的独立性和可靠性. 2) 实现的独立性和相互作用性. 算法的独立性是通过定义密码服务类来获得.用户只需了解密码算法的概念,而不用去关心如何实现这些概念.实现的独立性和相互作用性通过密码服务提供器来实现.密码服务提供器是实现一个或多个密码服务的一个或多个程序包.软件开发商根据一定接口,将各种算法实现后,打包成一个提供器,用户可以安装不同的提供器.安装和配置提供器,可将包含提供器的ZIP和JAR文件放在CLASSPATH下,再编辑Java安全属性文件来

Linux下利用phpize安装memcashe的php源码扩展包

phpize是php的一种构建工具,为PHP扩展准备构建环境,通过phpize可以编译php的扩展源码文件为php扩展模块. 一.安装 phpize工具可以通过安装php-dev包自动集成安装.安装完成后php的bin目录下会有phpize这个命令. 二.使用 举例:在原来编译好的php中加入memcache扩展模块,使用phpize构建的方式如下. tar zxvf memcache-2.2.5.tgz cd memcache-2.2.5/ /usr/local/php/bin/phpize