最好可以给出例子

解决方案 »

  1.   

    http://www.linuxforum.net/forum/showflat.php?Cat=&Board=linuxK&Number=91519&page=0&view=collapsed&sb=5&o=7&part=
      

  2.   

    还有一个就是flash MX 中有一个时钟例子,看一下里面的action
      

  3.   

    fei19790920(饭桶的马甲) 
    你说对了,不知道是怎么搞的,可以说仔细一点吗
      

  4.   

    jacket008(§忧国忧民§) 
    不知道那个程序有没有代码,我说的是要代码,也可以发布一下吗
      

  5.   

    FLASH MX中的部分代码(不是DELPHI的)看一下合不合适:_root.onEnterFrame = function() {
        // create an instance of the Date object
        myDate = new Date();
        // 
        // rotate clock Hands and shadows
        hourHand._rotation = myDate.getHours()*30+(myDate.getMinutes()/2);
        hourHandShadow._rotation = myDate.getHours()*30+(myDate.getMinutes()/2);
        minuteHand._rotation = myDate.getMinutes()*6+(myDate.getSeconds()/10);
        minuteHandShadow._rotation = myDate.getMinutes()*6+(myDate.getSeconds()/10);
        secondHand._rotation = myDate.getSeconds()*6;
        secondHandShadow._rotation = myDate.getSeconds()*6;
    };其中hourHand时针
    hourHandShadow时针阴影
    。。
      

  6.   

    楼上的朋友,我要的不是FLASH的代码,我要的是DELPHI的代码。
      

  7.   

    上面就是叫时针,分针,秒针所转的动作,
    你试着转换过来就行myDate = new Date();是flash中的一个时间对像,用于获取系统时间,改成delphi中的获取时间函数就可以了
      

  8.   

    var 
    Present:TDateTime;
    Hour,Min,Sec:Word;
    begin
    Present:=now();
    DecodeTime(Present,Hour,Min,Sec);showmessage(inttostr(Hour*30+(Min/2));这个就是时钟的角度end;
    自己试一下吧!
      

  9.   

    其它的角度也一样的代进去就可以了,用一个Timer组件每秒解发一次就行了
      

  10.   

    GreatSuperYoyoNC(幽幽)
    你是什么意思啊,不懂。能说清楚一点吗?
      

  11.   

    天啊,怎么不相信我的代码,有没有动手试一下。就最简单以秒针来说明:秒针角度= Sec*6;
    0秒时为0度
    1秒时1*6度
    2秒时2*6=12度60秒时60*6=360度=0度不试哪会出成果?真的那么复杂吗?
      

  12.   

    //我这个是书上找来的[上面有灰~:->],就是一个时钟程序,自己看看吧VB的
    VERSION 5.00
    Begin VB.Form frmClock 
       BorderStyle     =   1  'Fixed Single
       Caption         =   "Clock"
       ClientHeight    =   3195
       ClientLeft      =   45
       ClientTop       =   330
       ClientWidth     =   4680
       LinkTopic       =   "Form1"
       MaxButton       =   0   'False
       MinButton       =   0   'False
       ScaleHeight     =   3195
       ScaleWidth      =   4680
       StartUpPosition =   3  'Windows Default
       Begin VB.Timer tmrClock 
          Interval        =   100
          Left            =   1800
          Top             =   1320
       End
       Begin VB.Line linClock 
          Index           =   0
          X1              =   720
          X2              =   1200
          Y1              =   960
          Y2              =   1440
       End
    End
    Attribute VB_Name = "frmClock"
    Attribute VB_GlobalNameSpace = False
    Attribute VB_Creatable = False
    Attribute VB_PredeclaredId = True
    Attribute VB_Exposed = False
    Option Explicit
    DefDbl A-Z
    Private Sub Form_Load()
        Width = 4000
        Height = 4000
        Left = Screen.Width \ 2 - 4100
        Top = (Screen.Height - Height) \ 2
    End SubPrivate Sub Form_Resize()
        Dim i, Angle
        Static Flag As Boolean
        If Flag = False Then
            Flag = True
            For i = 0 To 14
                If i > 0 Then
                Load linClock(i)
                End If
                linClock(i).Visible = True
                linClock(i).BorderWidth = 5
                linClock(i).BorderColor = RGB(0, 128, 0)
            Next i
        End If
        For i = 0 To 14
            Scale (-1, -1)-(1, 1)
            Angle = i * 2 * Atn(1) / 3
            linClock(i).X1 = 0.9 * Cos(Angle)
            linClock(i).Y1 = 0.9 * Sin(Angle)
            linClock(i).X2 = Cos(Angle)
            linClock(i).Y2 = Sin(Angle)
        Next i
    End SubPrivate Sub tmrClock_Timer()
        Const HourHand = 0
        Const MinuteHand = 13
        Const SecondHand = 14
        Dim Angle
        Static LastSecond
        'Position hands only on the second
        If Second(Now) = LastSecond Then Exit Sub
        LastSecond = Second(Now)
        'Position hour hand
        Angle = -0.5236 * (15 - (Hour(Now) + Minute(Now) / 60))
        linClock(HourHand).X1 = 0
        linClock(HourHand).Y1 = 0
        linClock(HourHand).X2 = 0.5 * Cos(Angle)
        linClock(HourHand).Y2 = 0.5 * Sin(Angle)
        'Position minute hand
        Angle = -0.1047 * (75 - (Minute(Now) + Second(Now) / 60))
        linClock(MinuteHand).X1 = 0
        linClock(MinuteHand).Y1 = 0
        linClock(MinuteHand).X2 = 0.7 * Cos(Angle)
        linClock(MinuteHand).Y2 = 0.7 * Sin(Angle)
        'Position second hand
        Angle = -0.1047 * (75 - Second(Now))
        linClock(SecondHand).X1 = 0
        linClock(SecondHand).Y1 = 0
        linClock(SecondHand).X2 = 0.8 * Cos(Angle)
        linClock(SecondHand).Y2 = 0.8 * Sin(Angle)
    End Sub
      

  13.   

    真巧
    昨天闲来无事,自己编了个时钟,已经做好了,不过程序在家的机子上
    其实实现起来很容易,给你把大致步骤说一下
    1 在一个paintbox1上画时钟盘(60个点)。
    2 定义一个tpoint变量,存放时钟盘中心点。
    3 时针,分针,秒针各自都有自己的60个点,一共4×60=240个点,分别放在4个tlist中。再new  上 4个指针分别指向这4个tlist。
    4 用一个timer来时时读取系统时间,如当前是i:=17秒,即将指针p := list.items[i];从盘中心lineto到此指针所指节点中的坐标,同时别忘了擦掉旧痕迹(paintbox1.canvas.pen.mode:=pmnotxor;)
    5 其它两个针以此类推,结果就很象windows的那个圆盘时钟了,以上算法纯属个人发挥,若有更好的算法请不吝指教
      

  14.   

    时针,分针,秒针针长不同,所以要用3个tlist存各自的60个点
    至于取60个点的坐标,更容易拉,编个函数,调用后返回一个tlistfunction generate_clock_pan(sol : tpoint; len : integer):tlist;
    //sol : tpoint;盘中心点坐标 len : integer 本针的长度
    var
      list : tlist;
      p : ^tpoint;//指向列表的指针
      i : integer;
    begin
      list := tlist.create();
      i := 0;
      while i<=360 do
        begin
        new(p); 
        p.x := len*cos(i*180/pi) + sol.x;  
        p.y := len*sin(i*180/pi) + sol.y;  
        i := i + 6; //因为直角是90度的,而90度在钟盘上是15个格子,15分钟
      end;
      result := list;
    end;
    哎!写不动了,有空上qq聊,26066541
      

  15.   

    多谢各位帮忙了,特别是 jacket008(§忧国忧民§) 
    今天我没有空,明天我给你们加分