برنامه نویس

به وبلاگ خودتان خوش آمدید.

برنامه نویس

به وبلاگ خودتان خوش آمدید.

minimize کردن فرم در دلفی

اگر بخواهید با کلیک بر روی فرم صفحه خود را minimize کنید Procedure های زیر را بالای برنامه خود قرار دهید

procedure Tform1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle := WS_EX_APPWINDOW;
end;

{I have tried with and with out the following procedure}
procedure Tform1.WMSyscommand(var Message: TWmSysCommand);
begin
case (Message.CmdType and $FFF0) of
SC_MINIMIZE:
begin
ShowWindow(Handle, SW_MINIMIZE);
Message.Result := 0;
end;
SC_RESTORE:
begin
ShowWindow(Handle, SW_RESTORE);
Message.Result := 0;
end;
else
inherited;
end;

end;
و حالا بر روی دکمه خود کد زیر را وارد کنید .
procedure TForm1.Button1Click(Sender: TObject);
var Message :  TWmSysCommand ;
begin
Message.CmdType    :=61472;
  WMSyscommand(Message  );
end


ایجاد xml با دلفی

برای ایجاد یک xml  به طور خیلی ساده می توانید از کد زیر استفاده کنید .که به طور دلخواه برای ایجاد هر گره مقادیر خود را بین </>  <> تعریف می کنید .

procedure tform1.createxml();
var
DXML:TXMLDocument;


begin
       DXML:=TXMLDocument.Create(Self);
       DXML.Active:=true;
       DXML.XML.Text:='<?xml version="1.0" encoding="windows-1256" ?> '+
                      '<Ask>'+
                          '<systemname>'+ systemname +'</systemname>'+
                          ' <hostname>'+ hostname+'</hostname>'+
                          ' <Date>'+  datetostr(now)+' </Date>'+
                      '</Ask>';

       FileName_xml:= 'options.xml';
       DXML.XML.SaveToFile(ExtractFilePath(Application.ExeName)+FileName_xml);
end;

استفاده از متغیر ها در installshield


شاید شما در installshield به مقداری که کاربر وارد می کند نیاز داشته باشید که برای این کار باید یک متغیر سراسری تعریف کنید . برای تعریف یک متغیر سراسری که بتوان از آن در تمام توابع و دیالوگ ها استفاده کرد مراحل زیر را طی کنید .

در Behavior and logic گزینه installscript را انتخاب کنید حالا در  سمت راست سه شاخه می بینید files , function  و properties بر رو ی properties راست کلیک و add new property را کلیک کنید . در قسمت property name نام متغیر را وارد کنید .  در قسمت data type نوع آن را مشخص کنید و در Local Variable Name نامی را که در حین کدنویسی به آن نیاز دارید را تایپ کنید . در Default Value  هم مقدار پیش فرض خود را قرار دهید . بر روی ok کلیک کنید . خواهید دید که نام متغیر به لیست properties شما اضافه خواهد شد . اگر اضافه نشد باید آن را تعریف کنید برای این کار کد زیر ررا با نام متغیر خود در بالای فرم تعریف کنید در اینجا متغیری با نام sale از نوع number تعریف شده است .



property(get,put) NUMBER sale();
NUMBER m_sale

و پنج تابع زیر هم اضافه خواهد شد .

function InitProperties()
begin
    m_nsale = 0;
end;
 
function ReadProperties(PropertyBag)
begin
    ReadNumberProperty(PropertyBag, "sale", m_nsale);
end;
 
function WriteProperties(PropertyBag)
begin
    WriteNumberProperty(PropertyBag, "sale", m_nsale);
end;
 
function NUMBER get_sale()
begin
    return m_nsale;
end;
 
function void put_sale(newVal)
begin
    m_nsale = newVal;
end;

حال هر جا که احتیاج داشتید با فراخوانی متغیر خود (m_sale) می توانید از آن  استفاده کنید .

فارسی کردن برنامه نصب با installsheild


افراد زیادی برای ساخت یک برنامه نصب از  installshield استفاده می کنند . مزیت این نرم افزار نسبت به بقیه پشتیبانی قوی نسبت به بانک ها ی اطلاعاتی است  اما نسبت به پشتیبانی فارسی کمی دچار مشکل می شویم . درباره این نرم افزار و نحوه کار کردن با آن در سایت های مختلف به صورت تکراری بیان شده است که من  آنها را بیان نمی کنم .  در اینجا چگونه فارسی کردن مراحل setup را یاد می گیریم . که کمترجایی عنوان شده است . 

روش اول :

در زمان ایجاد پروژه جدید  گزینه  Basic MSI Project را انتخاب کنید در این صورت امکانات شما کمتر است . اما برای انجام یک پروژه کوچک مناسب است . در این محیط دست شما برای کدنویسی باز نیست . در نسخه 10.5    و 2008   این نرم افزار از منوی tools\add new language  می توانید زبان فارسی را به برنامه خود اضافه کنید (البته شاید در نسخه های دیگر آن هم این گزینه باشد اما من در نسخه2009 پیدا نکردم اما در نسخه کامل آن زبان فارسی و یا عربی به لیس زبان ها یآن اضافه شده است و شما کافی است فارسی را نتخاب کنید) . حال اگر به لیست زبان های خود در Installation Localization نگاه کنید خواهید دید که زبان فارسی اضافه شده است . در Installation Designer قسمت User Interface بر روی Dialog کلیک کنید . اگر روی هر دیالوگ کلیک کنید خواهید دید که زبان فارسی در آنجا وجو دارد که با انتخاب هر آیتم و تغییر متن خصوصیت text به فارسی  می توانید تمام پنجره های خود را فارسی کنید .  

یک روش دیگر استفاده از تصاویر با پسوند BMP است که این عمل هم تنها در حالت Basic MSI Project درست عمل می کند . اما مزیت این روش این است که می توانید فرم های خود را به صورت دلخواه طراحی کنید برای تغییر زمینه دکمه ها هم باید خصوصیت Control Style آن را به Bitmap و یا Icon تغییر دهید .

روش دوم :

در زمان ایجاد پروژه بر روی Installscript Project کلیک کنید . در اینجا دیگر قادر نیستید در طراحی فارسی تایپ کنید اما با کد نویسی این امکان برای شما وجو دارد . در قسمت Installation Designer  بر روی Behavior and Logic گزینه Installscript را انتخاب کنید . حال با توجه به دیالوگ هایی که مورد نیاز دارید و در حین نصب استفاده می کنید که بیشتر این دیالوگ ها خود در صورت عبور از تمامی مراحل  در اینجا قرار میگیرند  و با تغییر دو لیست باکس بالای صفحه می توانید رویدادهای را که می خواهید اتفاق افتند  را انتخاب کنید .  حالا هرجاییی که متنی قرار گرفته است را با متن فارسی خود جایگزین کنید . که در زیر کد دیالوگ  welcom را به عنوان نمونه قرار داده ام . که به جای متن فارسی قبلا szTitle و szMsg وجود داشته است .

Dlg_SdWelcome:

    szTitle = "";

    szMsg = "";

    //{{IS_SCRIPT_TAG(Dlg_SdWelcome)

   nResult = SdWelcome("به برنامه نصب خوش آمدید" ,"نرم  افزار بر روی سیستم شما نصب خواهد شد " );

    //}}IS_SCRIPT_TAG(Dlg_SdWelcome)

    if (nResult = BACK) goto Dlg_Start;