3d GameEngine databass


افتخار دیگر یک سایت معتبر عربی در این آدرس معرفی مون کرد

http://www.dev-point.com/vb/t84960.html


http://rapid2dar.com

فعلآ حالشو ببرین تا بعد دوستانی که مطلب خواستن بگردن همینجا پیدا می کنن

فعلآ یاعلی


select game engin propertis to view engins list


بانک اطلاعاتی موتور های گرافیکی

خصوصیات موتوری رو که می خواین روش کلیک کنین تا لیستی ازش رو ببینید !

Graphics API
OpenGL | DirectX | Glide | Software | Other
Operating Systems
Windows | Linux | MacOS | Solaris | SunOS | HP/UX | FreeBSD | Irix | OS/2 | Amiga | DOS | Xbox | Playstation | GameCube | GBA | PSP | N-Gage | BeOS | Xbox360 | PS2 | PS3 | Nintendo Wii | Nintendo DS/iDS | iPhone | Flash | Browser-based

Programming Language
C/C++ | Java | C# | D | Delphi | Pascal | BASIC | Ada | Fortran | Lisp | Perl | Python | Visual Basic 6 | VB.NET | ActionScript | Javascript

فرم شیشه ای در دلفی

براي ايجاد يك فرم شفاف مي توانيد از كدي مانند مانند كد زير در برنامه تان استفاده كنيد:

procedure TForm1.FormCreate(Sender: TObject);

begin

  Form1.Brush.Style := bsClear;

  Form1.BorderStyle := bsNone

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

  Application.Terminate;

end;

منبعدانشکده فنی اهر

دلفی

سلام پست امروز در پاسخ به دوست عزيزم مهرداد هست
ببخشيد دير متوجه ايميل تون شدم آخه ياهو رو خيلي دير دير چك مي كنم .عزيزان سعي كنيد ايميل هاتون رو به جيميل بفرستيد
سوال چطور مي شه روي يك تصوير در دلفي زوم كرد و بعد روي اون گرايد(تور)انداخت
يك فرم خالي با يه PictureBox ايجاد كنيد
عكس دلخواه تون رو توي كادر عكس بندازيد وكد زير رو بنويسيد
در كد لواد فرم كد زير را بنويسيد

Begin
Picture1.AutoRedraw:=True;
End

كد مر بوط به MouseMove عكس

begin
try
if (Button<>2) Then
exit;
except
end;//-------Zoom On Picture
Picture1.PaintPicture Picture1.Picture( ,0,X,Y);
end;

كد مربوط به MousUp عكس

var
a:TPanel;
begin
try
if(Button<>2) then//--RightClick Code
exit;
except
end;
Picture1.ForeColor:=RGB(0,230,0);//---GridLine Color
i:=(1)-(300);//---Space In 2GridLine
while true do begin
i:=1+(300);
if (i>(Picture1.Height+1000)) then break;
Picture1.line(0,i)-(Picture1.width,i);
Picture1.line(i,0)-(i,Picture1.height);
end;
//-------Save Picture
a:=Picture1;
a.Picture=:=a.image;
SavePicture a.Picture(,'C:\1.jpg);
end;

end;//------+By:Nasservb.blogfa.com

خوب چطور بود
كد مربوط به همين برنامه در وي بي

Private Sub Form_Load()
Picture1.AutoRedraw = True
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error Resume Next
If Button <> 2 Then Exit Sub
'----- Zomm On Picture
Picture1.PaintPicture Picture1.Picture, 0, 0, X, Y
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error Resume Next
If Button <> 2 Then Exit Sub '---RightClick Code
Picture1.ForeColor = RGB(0, 230, 0) '----GridLine Color
For i = 1 To Picture1.Height + 1000 Step 300 '--Step is Space in 2 GridLine
Picture1.Line (0, i)-(Picture1.Width, i)
Picture1.Line (i, 0)-(i, Picture1.Height)
Next
'-------- Save Picture
Dim a As PictureBox
a = Picture1
Set a.Picture = a.Image
SavePicture a.Picture, "C:\1.jpg"
End Sub
----------+ By:NasserNiazy--nasservb.blogfa.com +------- '

يه موقع سوال داشتي رودربايستي نكني مارو از خودت بدون --پست اصلاح شد

آرایه در دلفی

سلام بعد از يه مدت وي بي نويسي نمي دونم با چه رويي دارم دلفي مينويسم .آخه دلفي نت ام پريده بود

دوباره نصب اش كردم.چطور يك آرايه در دلفي ايجاد كنيم

آرايه كه خودتون تقربآ واردين چيه!.يه سري متغير هم نام كه فقط انديس هلشون با هم فرق داره.وبه صورت زير تعريف مي شن

Var ArrayName:[MinIndex ..MaxIndex] Of ArrayType;

آرايه در جايي استفاده مي شه كه بخوايم با يه حلقه تمام متغيير هارو كنترل كنيم

(دستورات بالا در پاسكال هم قابل استفاده است)

مثال دقيق تعريف آرايه

Var Num:[1..12]Of Integer;

مثال يك برنامه كاربردي

Var

Num:[1..20]Of Integer;

G :Real;

I:Integer;

Begin

G:=Edit1.Text;

For i:= 1 to 20 Do

Begin

if Num[i]=G then Break;

Edit2.text:="Not Found!";

End ;

if Edit.text="" then Edit2.text:=Num[i];

End;

اميدوارم غلط نداشته باشه

آرايه ها مي توانند چندين بعد داشته باشند.آرايه هاي دو بعدي خيلي مرسومند.بيشتر از دو بعد زياد استفاده نمي شود چون كنترل آن سخت مي شه

با اين وجود دلفي توانايي ايجاد آرايه تا شصت بعد رو هم داره.آرايه چند بعدي به اين صورت تعريف مي شه

Var Num:[MinIndex..MaxIndex,MinIndex .. MaxIndex,...]Of Integer

حال يك مثال از آرايه د بعدي مي زنم چاپ جدول ضرب

Var

N1[1..10,1..10] Of Integer;

I,J:Integer

Begin

For i:=1 to 10 Do

For j:=1 to 10 Do Begin

N1 [i,j]:=i*j ;

Form1.Canvas.TextOut(i*20, j*20, inttostr(N1[i, j]));

End;End;

در تنظيم نوع آرايه مي توان از مجموعه و ركورد و حتي آرايه ي ديگر استفاده كرد

تمام آرايه هاي بالا استاتيك بودند .يعني طول انها ثابت بود اما اگر طول دقيق آرايه را در اول برنامه ندانيم

در اين صورت بايد از آرايه هاي ديناميك استفاده كنيم.در اين صورت طول آرايه را در اول برنامه نمي نويسيم

و در داخل برنامه آنرا مقدار دهي مي كنيم.مثال

Var

B1:Array Of Integer;

i:Integer;

Begin

For i:=1 to 10

Begin

B1:=Nil;

SetLength(B1,i);

End;End

در خط مشخص شده طول آرايه با مقدار صفر تا شمارنده حلقه برابر مي شود و در خط قبلش طول آرايه حذف مي گردد

شروع دلفي

قبل از شروع مطلب اين نكته را متذكر مي شوم كه اين سري مقالات براي افرادي كه آشنايي اوليه با برنامه نويسي و ترجيحاً برنامه نويسي تحت ويندوز دارند مفيد تر مي بلشد چون آموزش جزئيات بيشتر در حوصله اين سري مقالات نمي گنجد.

براي نوشتن كدهاي آزمايشي اين بخش كارهاي زير را انجام بدهيد:

  1. دلفي را اجرا كنيد.

  2. اگر پروژه جديدي به طور خودكار باز نشد، File|New Project را از منوي دلفي انتخاب كنيد.

  3. Project|Options|Linker را انتخاب كنيد، كادر مكالمه Generate Consol Application را انتخاب كنيد، و سپس OK را به وسيله ماوس انتخاب كنيد. اين كار براي دلفي مشخص مي كند برنامه اي كه ايجاد مي كنيد، يك برنامه پنجره دار نيست، بلكه برنامه اي از نوع «پنجرهDos » است.

  4. View|Project Source را انتخاب كنيد، متن اصلي پروژه در پنجره ويراستار قابل رويت خواهد بود. اگر چه اين متن عموماً ويرايش نمي شود، اما در اين حالت بايد اين متن را با متن خودتان جايگزين كنيد. اين يك روش آسان براي ايجاد يك برنامه است 

  5. زمانيكه برنامه را اجرا مي كنيد، حاصل آن در پنجره خودش ظاهر مي شود. براي بستن پنجره خروجي، Alt+F4 را فشار دهيد، يا x را از گوشه بالايي پنجره خروجي انتخاب كنيد.

  6. نكته اي كه در اينجا وجود دارد. زماني كه متن قديمي را با متن برنامه خود جايگزين مي كنيد، پروژه را ابتدا با نام جديدي ذخيره كنيد، و يا خط Program پروژه را تغيير ندهيد.

كنترل جريان برنامه:

دلفي دو ساختار براي كنترل جريان برنامه دارد كه به تفصيل به آنها مي پردازيم.

دستور If...Then...Else

اين دستور از اساسي ترين دستورات شرطي مي با شد كه اين امكان را به برنامه نويس مي دهد كه پرسشي را مطرح كرده و بر اساس پاسخ آن كار يا عمل درخواستي را انجام دهد. مثالي در اين رابطه:

 

program IfDemo;

uses Forms;

var  UserInput : Integer;

begin

Write('How old are you ? ');

ReadLn(UserInput);

If (UseerInput < 1) or (UserInput > 130) Then

WriteLn('You are not telling the truth.')

Else

WriteLn('Being ', UserInput, 'yers old is great!');

WriteLn('Press Enter to Exit program');

ReadLn {To keep the window from closing until you press Enter}

end {InDemo}

در برنامه فوق عبارت بين If...Then در صورتي كه عدد ورودي توسط كاربر كوچكتر از 1 يا بزركتر از 130 باشد برابرTrue شده در نتيجه كد نوشته شده بين  Then...Else اجرا مي شود. در غير اين صورت عبارت بعد از Else اجرا مي شود. 

درصورتي كه بخواهيم بيش از يك دستور را بين Then...Else و يا بعد ازElse قرار دهيم بايد از يك بلاك استفاده كنيم

بلاك:

مجموعه اي از دستورات كه بين Begin...End واقع مي شوند.

دستور Case...of

همانند دستور If...Then مي باشد ولي با اين تفاوت كه بجاي دو حالت True و False چند حالت را بررسي مي كند. براي تشريح اي ساختار به مثال زير توجه كنيد.

program CaseDemo;

Uses Forms;

var UserIn : Char;

begin

Write('Type in character followed dy the Enter key: ');

ReadLn(UserIn);

Case UserIn of

'a'    :WriteLn('That is a Small a');

'z','Z':WriteLn('That is a small or capital z')

else

WriteLn('That is a character other than an a, z, or Z.')

end;

WriteLn('Press Enter to exit program');

ReadLn {To keep the window from closing until you press Enter}

end {CaseDemo}

در مثال فوق در صورتي كه مقدار بين Case...of برابر با هر يك از ثابتهاي قبل از علامت (:) باشد، دستور يا بلاك دستورات بعد از علامت (:) اجرا مي شود. همچنين، توجه به اين امر كه يك دستور end در پايان به عنوان پايان بخش دستور Case قرار مي گيرد نيز بسيار مهم است. در ضمن قسمت else نيز در اين ساختار اختياري بوده و مي تواند حذف شود.

متغيير هاي دلفي

  كاربرد علامت تساوي در دلفي:

   در دلفي براي تخصيص عملگر =: استفاده مي شود.

y:=mx+b

 همچنين براي بررسي تساوي از = استفاده مي شود.

If A=B then Writeln ('A and B are equal')

شكل ديگر استفاده از علامت تساوي در معرفي ثابت ها است.


Const
    TaxRate = 0.0075

    ثابت ها:

 براي مقادير خاص كه در برنامه زياد استفاده مي شود مي توان از ثابت ها استفاده كرد كه مثال آن در بالا آمده.

    متغييرها:

ازاجزاء ثابت همه زبان ها كه انواع آن عبارتند از:

نوع صحيح:

نوع

محدوده مقادير

تعداد بايت ها در حافظه

علامت دار(قادر به نگهداري عدد منفي است)

Byte 0 تا 255 1 خير
Word 0 تا 65535 2 خير
ShortInt 128- تا 127 1 بلي
SmallInt 32768- تا 32768 2 بلي
Integer 32147483648- تا2147483647 4 بلي
Cardinal 0 تا 2147483647 4 بلي
LongInt 2147483647- تا 2147483647 4 بلي

 

نوع حقيقي:

نوع

محدوده مقادير

تعداد بايت ها در حافظه

Real

+/-1.7E38 ~ +/-2.9E39

6
Single

+/-1.5E-45 ~ +/-3.4E38

4
Double

+/-5.0E-34 ~ +/-1.7E308

8
Extended

+/-3.4E-4932 ~ +/-1.1E4932

10
Comp

-2^63 ~ 2^(63-1)

8

 

نوع ارزي:

اين نوع متغيير ها براي نگهداري مقادير پولي مناسب است و با اجزاي ويژوال مانند Currency Field مورد استفاده قرار مي گيرد. باانواع دادههايي كه در بانك هاي اطلاعاتي براي مقادير پولي بكار مي رود سازگار است.

 

نوع بولي:

نوع

محدوده مقادير

تعداد بايت ها در حافظه

Boolean يك بايتي ترجيحي 1
ByteBool يك بايتي 1
Bool يك كلمه اي 2
WordBool يك كلمه اي 2
LongBool يك كلمه اي مضاعف 4

نوع كاراكتري:

نوع

اندازه بر حسب بايت

آنچه مي تواند نگه دارد

ANSIChar 1 يك كاراكتر ANSI
WideChar 2 يك كاراكتر UniCode
Char 1

 

نوع رشته اي:

نوع

طول

آنچه مي تواند نگه دارد

آيا به تهي ختم مي شود يا خير

ShortString 255 ANSIChar خير
AnsiString حداكثر 3 مگابايت ANSIChar بلي
String يا255 يا حداكثر 3 گيگا بايت ANSIChar بلي يا خير
WideString حد اكثر 1.5 گيگا بايت WideChar بلي

نوشته شده توسط :shahab-s

آموزش دلفی

 

چطور میتوان زمان کپی شدن فایل را با استفاده از ProgressBar نمایش داد؟


برای انجام این کار ابتدا بر روی یک فرم یک ProgressBar اضافه کنید سپس تابع زیر را تایپ کنید:

procedure TForm1.CopyFileWithProgressBar1(Source, Destination: string); 
var 
  FromF, ToF: file of byte; 
  Buffer: array[0..4096] of char; 
  NumRead: integer; 
  FileLength: longint; 
begin 
  AssignFile(FromF, Source); 
  reset(FromF); 
  AssignFile(ToF, Destination); 
  rewrite(ToF); 
  FileLength := FileSize(FromF); 
  with Progressbar1 do 
  begin 
    Min := 0; 
    Max := FileLength; 
    while FileLength > 0 do 
    begin 
      BlockRead(FromF, Buffer[0], SizeOf(Buffer), NumRead); 
      FileLength := FileLength - NumRead; 
      BlockWrite(ToF, Buffer[0], NumRead); 
      Position := Position + NumRead; 
    end; 
    CloseFile(FromF); 
    CloseFile(ToF); 
  end; 
end; 


در این تابع شما در واقع فایل مبدا را خوانده و در مقصد مینویسید. حالا یک دکمه اضافه کرده کد زیر رو اضافه نمایید:

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  CopyFileWithProgressBar1('c:\Welcome.exe', 'c:\temp\Welcome.exe'); 

آموزش دلفی