برگزیده های پرشین تولز

یک دو سه ... سلام oo---oo-Bo

en2fa

Pocket PC کاربر فعال
کاربر فعال
تاریخ عضویت
15 مارس 2003
نوشته‌ها
1,642
لایک‌ها
8
سن
41
محل سکونت
tehran
البته نوشتن یک radius server فکر کنم یه کم سخت باشه اما به هر هال...

Delphi هم در این مورد فکر کنم خوب جواب بده چون همینتور که گفتم بیشترین
کاربردش DataBase و بعد از اون Internet و Network هست...اما خوب اگه میخای
بری سراقه C اول بگو که چه زبونهایی رو بلدی...
چون خیلی کتابهایی هست مثله C for Pascal prgrammers که اینجا فراون ریخته
و یا C for Basic programmers که من تویه نمایشگاه کتاب دیدم.

کتابهایه مشابهی برایه java و یا perl نیز باید باشه اگر هر کدوم رو بلدی.
راستی در زمینه کتاب به زبون اصلی خوندن که مشکل نداری،چون من هرچی کتاب
فارسی خوندم پر بود از اشکال....

من خودم c rا بیشتر با help هایه turbo c یاد گرفتم،اما این کتاب رو هم میخوندم
"فرهنگ جامع c به زبان ساده" اما مله خیلی وقت پیش بود شاید دیگه چاپ نشده باشه

این کتاب رو هم حتما بخر شاید باریه شروع خوب نباشه اما حتما بدردت میخوره
"(مرجع کامل) برنامنویسی به زبان ++c" مهندس عین الله جعفرنژاد قمی،انتشارات علوم رایانه.
هم data structure رو خوب توضیح داده هم اینکه اصلن سراقه c نرفته و یک راست ++c رو درس
داده،بدرده شروع هم میخوره...
اما یک چند تا توصیه هم بکنم(اگه خیلی ابتدایی بود بهت بر نخوره ها...کلی گفتم که بدرده همه بخوره)
1-این کتابها که مرجع هستن رو باید nبار بخونی تا یک نتیجه بگیری
2-حتما تمرینها رو خودت هل کن متمعن باش بدون اونا حتا اگه کتاب رو حفظ هم باشی نمیتونی
برنامه خودت بنویسی،مثلن من خودم کتاب perl رو حفظم اما بدون اون حتا نمیتنم شروع کنم به نوشتن یک برنامه ساده!!!
3-اگه جاییش رو نفهمیدی اصلن مهم نیست دور بدی اگر هم نه دور بعدی حتما دیگه میفهمی!!!
4-حتما بعد از اینکه یه کم راه افتادی حسابی خودت رو تحویل بگیر و برو شروع کن برنامه کلفت و گنده بنویس هر چند که هیچ وقت تمومش نمیکنی
اما کلی چیز تو همون تجربه به دست میری که نا کسی بهت میتنه بگه و نا هیچ کتابی

حالا خیلی هم فکر نکون وقتت رو میگیره جایه اینکه بشینی Neverhood بازی کنی روزی 2ساعت ،اگه بشینی کار کنی
میتونی 2هفته ای یک چیزی بشی،البته اگه یک زبون رو بلدی اگر نه هم 4هفته فکر کنم بسه...

توصیه میکنم با visual ++c شروع کنی و یا turbo c هر و به هیچ وجه هم سراقه windows فعلا نرو
یعنی برنامه واسیه windows نوشتن،MFC و یا VCL هر چند بدم نیست اگه باهاشون کار کنی اما یعنی
میخام وابسته نشی و standard c رو یاد بگیری و platform independent باشی که فردیه قیامت اگه مسووله
network مرده ها شدی و systemشون linux بود بتونی با gcc کار کنی (;

اگر هم میخای بری سراقه pascal بهترین کتاب همون کتابه kaffman هست که هم مرجع هست و هم میشه باهاش یاد گرفت،
در ضمن خیلی نرو سراقه حفظ کردنه functonها و یا اسمه توابع،help رو گزشتن واسه همین چیزا،در کل هم بعده یکی 2سال
همه رو حفظ میشی

من دیگه مردم انقدر typeکردم

سوال؟
 

koorosh

Registered User
تاریخ عضویت
12 دسامبر 2002
نوشته‌ها
1,525
لایک‌ها
10
سن
41
محل سکونت
Iran - Tehran
ممنوووووووووووووووووووووووووووووووووووون :)
 

littlerabbit

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
13 جولای 2003
نوشته‌ها
678
لایک‌ها
6
سن
42
محل سکونت
Iran
امروز يك تابع ساده را معرفي ميكنم كه بعدا به درد خواهد خورد. اين تابع يك پنجره را داخل يك پنجره ديگر قرار ميدهد. به اين صورت كه پنجره جزيي از پنجره ديگر ميشود.در ويژوال بيسيك تنها سه عنصر Form و Frame و PictureBox ميتوانند كانتينر باشند(يعني عناصر ديگر را در خود جاي دهند) اما اين تابع ميتواند هر پنجره اي كه Handle آن را داريم در يك پنجره ديگر قرار دهد اين مثلا در يك Screen Saver ميتواند به درد بخور باشد وقتي ميخواهيم پيش نمايش Screen Saver را در Display Properties داشته باشيم.چون كافيست كه دستگيره آن پنجره شبيه مانيتور را داشته باشيم كه طريقه بدست اوردن آن را در تاپيك مربوط به Screen Saver توضيح ميدهم(يك ضرب المثل قديمي هست كه ميگه با يه دست نميشه دو تا هندونه ورداشت اما من يه نفري ده تا تاپيك دارم!! بابا بي معرفت ها كمك كنيد ديگه!!) حالا الگوي تابع:
[code:1]Visual Basic:

Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long





Visual C :

HWND SetParent ( HWND hWndChild ,HWND hWndNewParent);





Delphi :

function SetParent(hWndChild, hWndNewParent: HWND): HWND; stdcall;

function SetParent; external user32 name 'SetParent';[/code:1]
آرگومان اول دستگيره پنجره اي است كه قرار است فرزند پنجره اي شود كه آرگومان دوم دستگيره آن است.براي تست اين تابع يك پروژه جديد ايجاد كنيد و يك فرم دوم هم به پروژه اضافه كنيد كد زير را در فرم 1 بنويسيد :
[code:1]Option Explicit

Private Sub Form_Load()

   Form2.Show

End Sub[/code:1]
و كد زير را در فرم دو بنويسيد :
[code:1]Option Explicit

Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long

Private Sub Form_Load()

    SetParent hWnd, Form1.hWnd

End Sub[/code:1]
حالا برنامه را اجرا كنيد نتيجه را خودتان ببينيد. حالا مثلا يك TextBox در فرم 1 بگذاريد و در فرم 2 به جاي Form1.hWnd بنويسيد Form2.Text1.hWnd نتيجه را ببينيد (دقت كنيد كه ممكن است وقت اجرا فرم دو در جايي از فرم يك يا TextBox ظاهر شود كه شما آن را نبينيد بنابراين تا حد ممكن فرم 1 (و در مرحله بعدي Text1 ) را بزرگ كنيد.)
اما دلفي.
در دلفي مشكل كوچكي هست. در كلاس TControl (كه كلاس TCustomForm و در نتيجه تمام فرم هاي استاندارد از آن منشعب مي شوند) تابعي با همين نام وجود دارد كه باعث ميشود تابع Api در دسترس نباشد براي رفع اين مشكل دو راه هست يكي اينكه خودتان تابع را با يك نام ديگر دوباره بالاي فرم تعريف كنيد يعني مثلا بنويسيد :
[code:1]function SetParent2(hWndChild, hWndNewParent: HWND): HWND; stdcall;

function SetParent2; external user32 name 'SetParent';[/code:1]
راه دوم اينسك كه خودتان يك تابع معمولي تعريف كنيد كه دو آرگومان بگيرد و بعد اين دو آرگومان را در آن تابع به SetParent بفرستيد چون كه اين تابع جزء كلاس فرم نيست بنابر اين مشكلي پيش نخواهد آمد.راه سوم و اصلي اينه كه بنويسيد Windows.SetParent اينو الان بعد از يه ماه اضافه ميكنم تا سوتي خودمو قايم كنم!!!
البته در دلفي يك مشكل كوچك ديگر هم هست كه بتوانيم برنامه بالايي را به اين زبان بنويسيم.چون در دلفي فرمها يكي يكي ايجاد ميشوند (يعني اول فرم يك ايجاد ميشود بعد فرم 2 ) در رويداد Form_Create نميتوانيم فرم 2 را (كه هنوز به وجود نيامده) را نمايش بدهيم. براي همين بهتر است يك دكمه در فرم فرار بدهيم كه در رويداد آن فرم 2 را نمايش بدهيم. در فرم يك اين كد را بنويسيد :
[code:1]unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls;

type

 TForm1 = class(TForm)

   Button1: TButton;

   procedure Button1Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

function SetParent2(hWndChild, hWndNewParent: HWND): HWND; stdcall;

function SetParent2; external user32 name 'SetParent';

var

 Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

   Form2.Show

end;

end[/code:1].
و در واحد دوم اين كد را بگذاريد :
[code:1]unit Unit2;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs;

type

 TForm2 = class(TForm)

   procedure FormCreate(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.FormCreate(Sender: TObject);

begin

   SetParent2(Handle,Form1.Handle);

end;

end.[/code:1]
مثل كد وي بي فرم 1 را تاحد ممكن بزرگ كنيد و فرم 2 را كوچك فقط يادتان باشد كه داخل فرم 1 يك دكمه هم اضافه كنيد.به زودي از اين تابع در طراحي Screen Saver استفاده ميكنيم.

تا بعد
( ;<
 

MoZa

Registered User
تاریخ عضویت
16 ژانویه 2003
نوشته‌ها
277
لایک‌ها
8
سن
42
محل سکونت
اينجا
بابا والا ايول به اين خرگوش (كوچيك بزرگش فرقي نميكنه).
يه تنه افتاده دنبال اي پي آي داره جد و آباد ماكروسافت رو ميريزه رو آب.

دستت درد نكنه. من كه حال ميكنم.
اي پي آي كلا چيز عاليه. فقط حيف كسي ارزشش رو نميدونه.
 

Parham

Registered User
تاریخ عضویت
24 سپتامبر 2003
نوشته‌ها
1,042
لایک‌ها
2
سلام خرگوش كوچولو
يك برنامه خيل جالب و كامل در مورد API هست به نام : API Guide
هر چي در مورد API بخواي توش پيدا ميشه براي هر مورد هم يك مثال داره هم براي VB و هم براي .net
خلاصه برنامه توپيه! حتما امتحانش كن .
اونو ميتوني از بخش خدمات : دريافت نرم افزار سايت ما : <a href='http://www.BornisGroup.com' target='_blank'>www.BornisGroup.com</a> بگيري .
 

MoZa

Registered User
تاریخ عضویت
16 ژانویه 2003
نوشته‌ها
277
لایک‌ها
8
سن
42
محل سکونت
اينجا
من قبلا با اين برنامه كار كردم. واقعا عالي بوده.
استفادش رو به هر كس كه ميخواد با اي پي آي كار كنه توصيه ميكنم.
مخصوصا يه مثالايي توش پيدا ميشه كه بايد 2 ساعت تو اينترنت بگردي تا پيدا كني.
 

MoZa

Registered User
تاریخ عضویت
16 ژانویه 2003
نوشته‌ها
277
لایک‌ها
8
سن
42
محل سکونت
اينجا
يه سوال هم از اساتيد API داشتم.
چطوري ميشه يه دكمه توي CaptionBar فرم قرار داد و رويدادهاي اون رو هم كنترل كرد؟
 

Parham

Registered User
تاریخ عضویت
24 سپتامبر 2003
نوشته‌ها
1,042
لایک‌ها
2
جواب سوالت رو ميتوني اينجا پيدا كني :
[left:b69a8e1c69]<a href='http://www.vbforums.com' target='_blank'>http://www.vbforums.com</a>[/left:b69a8e1c69]
اين سايت رو به همه اونايي كه VB كار ميكنن توصيه ميكنم . با يه سرچ ميتوني جوابتو پيدا كني.
مثلا :
[left:b69a8e1c69]<a href='http://www.vbforums.com/showthread.php?threadid=155851' target='_blank'>http://www.vbforums.com/showthread.php?threadid=155851</a>[/left:b69a8e1c69]
 
بالا