| عناوین بحث ها | ارسال کننده | پاسخها | بازدید | بروز رسانی | اولویت | |
|---|---|---|---|---|---|---|
|
|
36
|
982
|
91/2/3 (23:16)
|
|
||
|
|
54
|
1238
|
91/2/3 (23:16)
|
|
||
|
|
8
|
288
|
88/6/7 (21:17)
|
|
||
|
|
7
|
62
|
90/10/13 (11:57)
|
|
||
|
|
3
|
98
|
87/10/23 (21:37)
|
|
||
|
|
0
|
1
|
90/12/2 (16:49)
|
|
||
|
|
1
|
6
|
90/9/5 (02:22)
|
|
||
|
|
0
|
2
|
90/8/8 (11:52)
|
|
||
|
|
2
|
6
|
90/7/18 (00:36)
|
|
||
|
|
4
|
9
|
90/2/18 (16:00)
|
|
||
|
|
1
|
5
|
89/12/21 (00:24)
|
|
||
|
|
0
|
19
|
89/12/16 (23:03)
|
|
||
|
|
0
|
10
|
89/12/7 (10:16)
|
|
||
|
|
3
|
17
|
89/11/21 (11:06)
|
|
||
|
|
5
|
13
|
89/11/21 (10:58)
|
|
||
|
|
4
|
33
|
88/10/27 (21:17)
|
|
||
|
|
3
|
31
|
88/10/16 (01:15)
|
|
||
|
|
6
|
47
|
88/9/15 (08:52)
|
|
||
|
|
3
|
16
|
88/9/1 (11:30)
|
|
||
|
|
1
|
27
|
88/8/30 (21:36)
|
|
سلام دوستان.
هرکی هر نکته، ترفند به درد بخوری داره تو این بحث مطرح کنه که به یه آرشیو خوب و مرجع تبدیل بشه.
ساعت عقربه ای
با تشكر از خانم سولماز كدی كه گذاشته بودن رو كمی تكمیل تر كردم
procedure TForm1.Timer1Timer(Sender: TObject);
var
t1:TDateTime;
t:string;
s,m,h,x,y,j,dr,dr1,i:integer;
begin
image1.Canvas.Brush.Color:=$00C9FCD0;
image1.Canvas.FillRect(image1.Canvas.ClipRect);
t1:=time;
t:=timetostr(t1);
h:=strtoint(Copy(t,1,2));
m:=strtoint(Copy(t,4,2));
s:=strtoint(Copy(t,7,2));
with image1.Canvas do
begin
{Seconds}
dr:=Image1.Height div 2;
Dr1:=5;
For i:=0 to 59 do begin
if I mod 15 =0 then
pen.Width:=6
else
if I mod 5 =0 then
pen.Width:=4
else
pen.Width:=2;
x:=(dr-1)+round((dr-dr1)*cos((2*pi*i/60)-(pi/2)));
y:=(dr-1)+round((dr-dr1)*sin((2*pi*i/60)-(pi/2)));
MoveTo(x,y);
x:=dr+round((dr-dr1)*cos((2*pi*i/60)-(pi/2)));
y:=dr+round((dr-dr1)*sin((2*pi*i/60)-(pi/2)));
LineTo(x,y);
end;
pen.Width:=2;
MoveTo(dr,dr);
x:=dr+round((dr-dr1)*cos((2*pi*s/60)-(pi/2)));
y:=dr+round((dr-dr1)*sin((2*pi*s/60)-(pi/2)));
LineTo(x,y);
{Minutes}
pen.Width:=4;
MoveTo(dr,dr);
x:=dr+round(((dr-dr1)*3/4)*cos((2*pi*m/60)-(pi/2)));
y:=dr+round(((dr-dr1)*3/4)*sin((2*pi*m/60)-(pi/2)));
LineTo(x,y);
{Hours}
pen.Width:=6;
MoveTo(dr,dr);
x:=dr+round(((dr-dr1)*12/20)*cos((2*pi*(h*60+m)/720)-(pi/2)));
y:=dr+round(((dr-dr1)*12/20)*sin((2*pi*(h*60+m)/720)-(pi/2)));
LineTo(x,y);
end;
end;
end.
ساعت عقربه ای:
در تایمر interval رو 1000 کنین و در onTimer اینا رو بنویسین:
var
t1:TDateTime;
t:string;
s,m,h,x,y,j:integer;
begin
image1.Canvas.Brush.Color:=$00C9FCD0;
image1.Canvas.FillRect(image1.Canvas.ClipRect);
t1:=time;
t:=timetostr(t1);
h:=strtoint(t[1]);
j:=2;
while (t[j]='0') do
begin
h:=strtoint(inttostr(h) t[j]);
j:=j 1;
end;
j:=j 1;
m:=strtoint(t[j]);
j:=j 1;
while (t[j]='0') do
begin
m:=strtoint(inttostr(m) t[j]);
j:=j 1;
end;
j:=j 1;
s:=strtoint(t[j]);
j:=j 1;
while (t[j]='0') do
begin
s:=strtoint(inttostr(s) t[j]);
j:=j 1;
end;
with image1.Canvas do
begin
{Seconds}
pen.Width:=2;
MoveTo(100,100);
x:=100 round(dr*cos((2*pi*s/60)-(pi/2)));
y:=100 round(dr*sin((2*pi*s/60)-(pi/2)));
LineTo(x,y);
{Minutes}
pen.Width:=4;
MoveTo(100,100);
x:=100 round((dr*3/4)*cos((2*pi*m/60)-(pi/2)));
y:=100 round((dr*3/4)*sin((2*pi*m/60)-(pi/2)));
LineTo(x,y);
{Hours}
pen.Width:=6;
MoveTo(100,100);
x:=100 round((dr*9/20)*cos((2*pi*h/12)-(pi/2)));
y:=100 round((dr*9/20)*sin((2*pi*h/12)-(pi/2)));
LineTo(x,y);
end;
روتینی برای نمایش یک متن بر روی صفحه دسکتاپ:
این نکته را در نظر داشته باشید که این متن با refresh شدن صفحه از بین میرود.
// Fenglish Comments //
procedure WriteText(TheText: string); //oOo
var //oOo
MyHand: HWND; //oOo
MyDc: HDC; //oOo
MyCanvas: TCanvas; //oOo
begin
MyHand := GetDesktopWindow; // daryaft handele desktap
MyDc := GetWindowDC(MyHand); // ijade ertebat ba poshtzamineye desktap
MyCanvas := TCanvas.Create; //oOo
MyCanvas.Handle := MyDC; // ijade yek objecte Canvas va etesale an be desktap
MyCanvas.Font.Color := clRed; // range neveshte
MyCanvas.Font.Name := 'Aial'; // name fonte neveshte
MyCanvas.Font.Size := 60; // andazeye fonte neveshte
SetBkMode(MyCanvas.Handle, TRANSPARENT); // tayeene shafaf boudane poshtzamineye neveshte
MyCanvas.TextOut(0, 0, TheText); // namayeshe matn
ReleaseDC(MyHand,MyDc); // HATMAN dar akhare kare namayeshe matn in dastour ra ejra konid
MyCanvas.Free; // in khat ham hafezeye marbout be Canvas ra azad mikonad
end; //oOo
اقا امیر فكر میكنم كه كد encode و Decode شما یه مشكلی داشته باشه
مثلا اگه موقع encode یه عدد بالای 255 ایجاد بشه اونو تبدیل به 33 میكنید
موقع decode كردن وقتی به عدد 33 میرسید از كجا میفهمید كه واقعا چند بوده چون شما تمام اعداد بالای 255 رو به 33 تبدیل كردین