دوست عزیز، به سایت علمی نخبگان جوان خوش آمدید

مشاهده این پیام به این معنی است که شما در سایت عضو نیستید، لطفا در صورت تمایل جهت عضویت در سایت علمی نخبگان جوان اینجا کلیک کنید.

توجه داشته باشید، در صورتی که عضو سایت نباشید نمی توانید از تمامی امکانات و خدمات سایت استفاده کنید.
صفحه 2 از 2 نخستنخست 12
نمایش نتایج: از شماره 11 تا 13 , از مجموع 13

موضوع: آموزش دلفی (جامع)

  1. #11
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : آموزش دلفی (جامع)

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


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



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


    procedure TForm1.CopyFileWithProgressBar1(Source, Destination: string);
    var
    FromF, ToF: file of byte;
    Buffer: array[0..4096] of char;
    NumRead: integer;
    FileLength: longint;
    t1, t2: DWORD;
    maxi: integer;
    begin
    AssignFile(FromF, Source);
    reset(FromF);
    AssignFile(ToF, Destination);
    rewrite(ToF);
    FileLength := FileSize(FromF);
    with Progressbar1 do
    begin
    Min := 0;
    Max := FileLength;
    t1 := TimeGetTime;
    maxi := Max div 4096;
    while FileLength > 0 do
    begin
    BlockRead(FromF, Buffer[0], SizeOf(Buffer), NumRead);
    FileLength := FileLength - NumRead;
    BlockWrite(ToF, Buffer[0], NumRead);
    t2 := TimeGetTime;
    Min := Min + 1;
    // Show the time in Label1
    label1.Caption := FormatFloat('0.00', ((t2 - t1) / min * maxi - t2 + t1) / 100);
    Application.ProcessMessages;
    Position := Position + NumRead;
    end;
    CloseFile(FromF);
    CloseFile(ToF);
    end;
    end;


    در این تابغ ابتدا زمان اولیه در متغیر t1 ذخیره شده و سپس پس از کپی شدن هر قسمت از فایل، زمان در متغیر t2 ذخیره میشود و توسط فرمول زیر مقدار زمان باقی مانده تا کپی کامل فایل بدست می آید.


    ((t2 - t1) / min * maxi - t2 + t1) / 100

    نصب ProgressBar روی StatusBar در دلفی
    StatusBar می باشد. انجام این کار بسیار ساده است. برای این کار کافی است بر روی فرم خود یک StatusBar اضافه نمایید حالا در قسمت تعاریف متغیر های عمومی کد زیر را بنویسید:
    ProgressBar1: TprogressBar;

    در ادامه دستورات زیر را در خاصیت OnCreate فرم خود بنویسید:


    var
    ProgressBarStyle: LongInt;
    begin
    {create a run progress bar in the status bar}
    ProgressBar1 := TProgressBar.Create(StatusBar1);
    ProgressBar1.Parent := StatusBar1;
    {remove progress bar border}
    ProgressBarStyle := GetWindowLong(ProgressBar1.Handle, GWL_EXSTYLE);
    ProgressBarStyle := ProgressBarStyle - WS_EX_STATICEDGE;
    SetWindowLong(ProgressBar1.Handle, GWL_EXSTYLE, ProgressBarStyle);
    {set progress bar position and size - put in Panel[2]}
    ProgressBar1.Left := StatusBar1.Panels.Items[0].Width +
    StatusBar1.Panels.Items[1].Width + 4;
    ProgressBar1.Top := 4;
    ProgressBar1.Height := StatusBar1.Height - 6;
    ProgressBar1.Width := StatusBar1.Panels.Items[2].Width - 6;
    {set range and initial state}
    ProgressBar1.Min := 0;
    ProgressBar1.Max := 100;
    ProgressBar1.Step := 1;
    ProgressBar1.Position := 0;
    end;


    حالا برای آنکه پس از خارج شدن از فرم حافظه اشغال شده آزاد گردد، در قسمت OnDestroy در Event فرمتان دستور زیر را اضافه نمایید:


    ProgressBar1.free;

    استفاده از DLLها در دلفی
    ایجاد یک DLL
    با استفاده از منو فایل گزینه New Items را انتخاب کنید و آیتم DLL Wizard را انتخاب نمایید. حال به فایل ایجاد شده، یک فرم با استفاده از روش بالا اضافه نمایید. دقت نمایید که Application را بجای فرم انتخاب ننمایید. حال اگر فرض کنیم که نام فرم شما Demo باشد و بانام UDemo.pas آنرا ذخیره کرده باشید. باید در فایل DLL بصورت زیر کد نویسی نمایید:


    library demodll;

    { Important note about DLL memory management: ShareMem must be the
    first unit in your library's USES clause AND your project's (select
    Project-View Source) USES clause if your DLL exports any procedures or
    functions that pass strings as parameters or function results. This
    applies to all strings passed to and from your DLL--even those that
    are nested in records and classes. ShareMem is the interface unit to
    the BORLNDMM.DLL shared memory manager, which must be deployed along
    with your DLL. To avoid using BORLNDMM.DLL, pass string information
    using PChar or ShortString parameters. }

    uses
    SysUtils,
    Classes,
    UDemo in 'UDemo.pas' {Demo};

    {$R *.res}
    procedure ShowdemoForm;stdcall;
    begin
    Demo :=Tdemo.Create(nil);
    demo.Show;
    end;

    function ShowdemoFormModal:integer;stdcall;
    begin
    demo :=Tdemo.Create(nil);
    Result := demo.ShowModal;
    end;

    Exports
    ShowDemoForm,
    ShowdemoFormModal;
    begin
    end

    ******************************

    دقت کنید که نام DLL فوق DemoDll می باشد و با نام DemoDll.dpr ذخیره گردیده است.

    حال بر روی فرم موجود تمام دکمه‌ها و آبجکت‌های مورد نظرتان را اضافه و کد نویسی کنید (اختیاری). در پایان در منو Project گذینه Build DemoDll را انتخاب کرده و اجرا نمایید. فایلی با نام DemoDll.dll ایجاد می گردد که برای استفاده آماده است.


    استفاده از یک DLL بصورت دینامیکی
    برای استفاده از یک DLL ‌بصورت دینامیکی، ابتدا نام توابعی را که در فایل DLL شما موجود است بصورت زیر تعریف نمایید:



    unit UMain;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, ExtCtrls;

    type
    TShowdemoFormModal= Function :integer;
    .
    .
    .

    ***************************

    دقت کنید که نام برنامه انتخابی پیش فرض Main و با نام UMain.pas ذخیره گشته است. حال برای لود کردن DLL یادشده، یک دکمه بر روی فرم قرارداده آنرا بصورت زیر کد نویسی کنید:



    var
    hndDLLHandle:THandle;
    ShowdemoFormModal:TShowdemoFormModal;

    procedure TFMain.Button1Click(Sender: TObject);
    begin
    try
    hndDLLHandle:=LoadLibrary('Demodll.dll');

    if hndDLLHandle <> 0 then begin
    @ShowdemoFormModal:=getProcAddress(hndDLLHandle,'S howdemoFormModal');

    if addr(ShowdemoFormModal) <> nil then begin
    ShowdemoFormModal;
    end
    else
    showmessage ('function not exists ...');
    end
    else
    showMessage('Dll Not Found!');
    finally
    freelibrary(hndDLLHandle);
    end;
    end;

    محدودكردن تغییر اندازه فرم در دلفی
    گاهی اوقات نیاز است فرم ما از نظر اندازه پیرو یک الگو باشد و کاربر نتواند خارج از محدوده این فرم را تغییر اندازه دهد، راهی که پیشنهاد می شود، استفاده از Windows Messages، تابع WM_GetMinMaxInfo میباشد.


    unit MinMax;

    interface

    uses
    SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
    Forms, Dialogs;

    type
    TForm1 = class(TForm)
    private
    { Private declarations }
    procedure WMGetMinMaxInfo(var MSG: Tmessage); message WM_GetMinMaxInfo;
    public
    { Public declarations }
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.DFM}

    procedure TForm1.WMGetMinMaxInfo(var MSG: Tmessage);
    Begin
    inherited;
    with PMinMaxInfo(MSG.lparam)^ do
    begin
    with ptMinTrackSize do
    begin
    X := 300;
    Y := 150;
    end;
    with ptMaxTrackSize do
    begin
    X := 350;
    Y := 250;
    end;
    end;
    end;

    end.
    uody

  2. #12
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : آموزش دلفی (جامع)

    نکات مفید کار در محیط دلفی

    محیط دلفی برای برنامه نویسی یکی از بهترین محیطهای برنامه نویسی است گذشته از کارکرد داخلی و کمپایلر آن که بسیار قوی و سریع است، محیط آن یعنی IDE آنهم قدرت بسیار زیادی دارد که باعث شده یکی از بهترین ادیتورها باشد. در این مقاله من سعی بر این داشته ام تا با ارائه یک سری از نکات و کلیدهای میانبر که می توانند برای کار در دلفی بسیار مفید و کارا باشند، کمک کنم تا شما بتوانید با قدرت بیشتر به برنامه نویسی و کار در این محیط قدرتمند ادامه دهید.

    در قسمت اول مقاله که در حال حاضر در مقابل شماست من یک سری از کلیدهای میانبر و ترکیبی مورد استفاده در IDE دلفی را بصورت لیست وار و همراه یک توضیح کوچک آورده ام. دوستان عزیز برنامه نویس ممکنه که شما مدتها با دلفی مشغول برنامه نویسی بوده باشید اما من یقین دارم که در این لیست نکات و روشهای جدیدی را خواهید آموخت.

    جستجو در متن بصورت مستقیم:
    برای اینکار کلیدهای Ctrl+E را بفشارید و بدنبال آن شروع به تایپ کلمه مورد نظر کنید نتیجه آن را خود ببینید. برای اینکه به کلمه بعدی بروید کافیست کلید F3 را بزنید.

    ایجاد فرورفتگی در کد:
    بعضی اوقات - که خیلی هم پیش می‌آید - لازم است که یک مقداری از متن را بصورت بلوک شده به جلو و یا عقب ببریم. منظور دندانه دار کردن متن است که به خوانایی برنامه کمک می کند. برای اینکار می تونید از کلید Ctrl +Shift+I برای جلو بردن و Ctrl+Shift+U برای عقب برگرداندن متن بلوک شده استفاده کنید.

    پرش به قسمت تعریف یک شی (Object):
    ببنید شی مورد نظرتون (از قبیل VCL, Procedure, Function,...) در کجا و چطور تعریف شده می توانید کلید Crtl رو پایین نگه داشته و روی شی مورد نظر Click کنید.

    برای تغییر حالت کاراکترها:
    شما می توانید یک قسمت از متن (که ممکن است با حروف بزرگ و یا کوچک تایپ شده باشد) را انتخاب کنید و با زدن کلیدهای Ctrl+O+U به ترتیب تمامی حروف کوچک آن قسمت از متن را به حروف بزرگ و تمامی حروف بزرگ آنرا به حروف کوچک تبدیل کنید. برای تعییر حالت یک کلمه نیز میتوانید روی کلمه مورد نظر رفته و کلیدهای Ctrl+K+F برای بزرگ کردن و کلیدهای Ctrl+K+E را برای کوچک کردن حروف آن کلمه بکار برد.

    درست کردن ماکرو متنی:
    این امکان بسیار مفید است و می تواند بسیاری از کارهای نوشتاری را کاهش دهد با اینکار شما میتوانید یک سری از کارهای تکراری که روی متون انجام می دهید را بصورت ماکرو در آورده و از آنها به راحتی استفاده کنید. برای شروع به ضبط ماکرو کلیدهای Ctrl+Shift+R را بفشارید و آن سری کارهایی را که می خواهید را انجام دهید و سپس برای اینکه به کار ضبط ماکرو پایان دهید کلیدهای Ctrl+Shift+R را دوباره بزنید. حال برای استفاده از ماکرو کافیست در هر جا که لازم بود کلیدهای Ctrl+Shift+P را بفشارید.

    انتخاب متن بصورت مربعی:
    اگر شما از کهنه کارهای کامپیوتر باشید حتما از زمان داس یادتون هست که برنامه ای بود به نام PE2 که یکی از امکانات بسیار جالبش این بود که یک مربع از متن رو میتوانستین انتخاب کنید و آنرا کپی یا حذف کنید. بله درست متوجه شدید در محیط دلفی هم شما اینکار را میتوانید انجام دهید اما نه به مشکلی PE2 بلکه اینکار را میتوانید فقط با گرفتن کلید Alt و کشیدن موس روی متن انجام دهید. هر چند ممکن است در نگاه اول زیاد این امکان مفید به نظر نیاید ولی بعضی وقتهای خیلی کار را راحت میکنه، که حتماً تجربه خواهید کرد.

    گذاشتن علامت روی متن:
    این کار که به BookMark معروف است بسیار مفید و کارا می باشد. در هنگامی که شما روی قسمتی از متن برنامه کار میکنید و می خواهید به یک قسمت دیگر بروید ممکن است برای برگشتن به مکان اول خود کمی مشکل پیدا کنید. ولی شما میتوانید با زدن چند دکمه به محل مورد نظرتون باز گردید. برای اینکار در خطی که قصد دارید علامت بگذارید کلیدهای Ctrl+Shift+0..9 را بفشارید. منظور اینست که کلیدهای Ctrl+Shift را نگه دارید و یکی از اعداد 0 تا 9 را وارد کنید تا آن خط به همان شماره علامت گذاری شود و سپس هر جا که خواستید بروید و سپس هر بار که کلید Ctrl را نگه دارید و شماره مورد نظر را وارد کنید به همان خط باز خواهید گشت. البته توجه داشته باشید که فقط می توانید 10 خط را با این روش علامت گذاری بکنید و برای برداشتن علامت ها کافیست روی همان خط دوباره کلید Ctrl+shift و شماره‌ای که برای آن خط وارد کرده اید را بفشارید با اینکار علامت آن خط برداشته می شود.

    ایجاد کلاس مورد نظر:
    شما هنگامی که در قسمت Private و یا Public یک type، روال یا تابع درست کردید لازم دارید که قسمتی را برای قرار دادن کدهای مربوط به آن روال یا تابع را ایجاد کنید. برای اینکار شما پس از اینکه نام تابع را تایپ کردید می توانید کلیدهای Ctrl+Shift+C را فشار دهید تا دلفی یک قسمت برای نوشتن کدهای مورد نظرتان ایجاد کند.

    ظاهر کردن پنجره Codeinsight:
    شما حتما به اهمیت و مفید بودن این قسمت دلفی واقفید که در هنگام کد نویسی تا چه حد می تواند کارها را راحت کند. بله در هنگام وارد کردن کدها بعد از وارد کردن نام یک کلاس و یا Object با زدن یک نقطه (.) پنجره Code Insight‌ ظاهر می شود. حال در بعضی وقتها شما ممکن است که نقطه را قبلا وارد کرده باشید و یا در مواقع دیگر این پنجره ظاهر نشود. در این صورت برای اینکه پنجره را ظاهر کنید باید دوباره نقطه را وارد کنید ولی راه آسانتری هم وجود دارد و آن اینست که کلیدهای Ctrl+Speacebar را فشار دهید.

    ظاهر کردن پنجره CodeParameter:
    همانند بالا در هنگام ظاهر شدن Hint مربوط به راهنمای توابع که معمولاً بعد از گذاشتن پرانتز مربوط ظاهر میشود و در مورد پارامترهای لازم می باشد نیز می توانید از کلیدهای Ctrl+Shift+SpaceBar استفاده کنید.

    رفتن از قسمت تعریف توابع و روالها به قسمت کد آنها:
    همیشه این نیاز وجود خواهد داشت که شما در هنگامی که دارید به دنبال یک روال در قسمت type میگردید بعد از پیدا کردن نام آن می خواهید که خود آن تابع یا روال را نیز ببنید. برای اینکار خوب حتما نام آن را جستجو میکنید ولی یک راه آسانتر اینست که شما روی نام آن تابع قرار گیرید و کلیدهای Ctrl+Shift+Up/Down را بزنید. در اینحالت اگر روی کد تابع باشید به قسمت تعریف آن خواهید رفت.
    uody

  3. #13
    دوست آشنا
    رشته تحصیلی
    کارشناسی کامپیوتر نرم افزار
    نوشته ها
    1,167
    ارسال تشکر
    2,113
    دریافت تشکر: 2,967
    قدرت امتیاز دهی
    44
    Array

    پیش فرض پاسخ : آموزش دلفی (جامع)

    Database ها در Delphi

    دوستان اول به نظرم لازم بود که درباره معنای بانک اطلاعاتی بدونین.
    برای فهم راحت این موضوع یک مثال میزنم.
    فرض کنید یک دفترچه تلفن خریدید.
    معمولا 3 بند در آن مشترک است :

    1. نام
    2. تلفن
    3. آدرس

    که زیر آنها کلی جای خالی برای نوشتن تلفن و اسم هست.
    در مفهوم بانک اطلاعاتی به هر یک از این بخشهای 1-2-3 یک فیلد گفته میشود.
    به هر یک از اسم و فامیلی که مینویسیم یک رکورد گفته میشود.
    در ساخت بانک اطلاعاتی همیشه تعداد فیلدها محدود است و نوع آنها مشخص میباشد.
    ولی رکوردها تا اندازه ای که هارد شما ضرفیت دارد امکان ذخیره اطلاعات را دارد.
    به مخموعه ای از فیلدها و رکوردها یک بانک اطلاعاتی گویند.

    ساختار بانکهای اطلاعاتی معمولا تجربی است و راه خاصی برای تشخیص تعداد و نوع فیلدها وجود ندارد و فقط با کارکردن زیاد می توان ساختار بهینه را آموخت.
    دیتابیسها دو نوعند. دیتابیسهای یک جدوله مثل فاکسپرو و دی بیس. و دیتابیسهای چند جدوله مانند اکسس.
    چون هدف ما آموزش دیتابیس دلفی است بیشتر درباره این موضوع (طراحی بانک اطلاعاتی) صحبت نمیکنم

    درس2 : معرفی دیتابیس به دلفی

    برای این منظور در دلفی یک سری کامپوننت وجود دارد که در بخش Data Access و Data control قرار دارد.
    در بخش اول معمولترین کامپوننت هایی که استفاده می شود Table و Datasource است.
    Table برای معرفی دیتابیس استفاده میشود
    شما میتوانید در بخش DataBaseName اسم فایل دیتابیس طراحی شده خودتون رو وارد کنید
    پیشنهاد من اینه که همیشه فایل دیتابیستون رو اونجایی قرار بدین که فایا EXE شما قرار داره. چون به این ترتیب نیازی به تعریف مسیر ندارید.
    در بخش TableType شما میتوانید نوع دیتابیسی که باهاش کار می کنید رو معرفی کنید.
    بعد از این دو مورد مهمترین مسائلی که وجود داره اول بخش ----- کردن آن است که میتوانید با ساختار زیر عمل کنید.


    کد:
    (FieldName1) = 'String' and (FieldName2) = number
    منظور از (FieldName1&2) اسم فیلدی هست که شما در دیتابیس معرفی کردید و جنس فیلد اول کاراکتری و جنس فیلد دوم عددی میباشد.

    و دوم بخشی برای استفاده چند کاربره از دیتابیس که در صورتی که مقدار CachedUpdate برار True باشد, امکانپذیر است.
    درباره طرقه استفاده از آن در درسهای بعدی توضیح میدم.

    بعد از تعریف Table شما میتوانید Datasource را روی فرم گذاشته و به راحتی Table رو به Datasource مرتبت کنید.


    منبع:freedownload.ir
    uody

صفحه 2 از 2 نخستنخست 12

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 1
    آخرين نوشته: 21st April 2012, 01:05 AM
  2. علل ناکامی مدیریت کیفیت جامع
    توسط ریپورتر در انجمن مجموعه مدیریت اجرایی
    پاسخ ها: 0
    آخرين نوشته: 30th September 2010, 10:55 AM
  3. مقاله: آموزش Online ره آورد نوین فناوری برای بهبود کیفیت
    توسط MR_Jentelman در انجمن مجموعه مدیریت اجرایی
    پاسخ ها: 0
    آخرين نوشته: 29th September 2010, 12:09 AM
  4. مقاله: یادگیری الکترونیکی
    توسط آبجی در انجمن بخش مقالات وب و اینترنت
    پاسخ ها: 0
    آخرين نوشته: 21st February 2010, 10:59 PM
  5. مقاله: آموزش و پرورش در اسپانیا
    توسط *مینا* در انجمن علوم تربیتی
    پاسخ ها: 0
    آخرين نوشته: 20th November 2009, 10:49 PM

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •