در دلفی اگر می خواهید در TreeView گره ها راست به چپ نمایش داده شوند از کد زیر استففاده کنید .
const
WS_EX_NOINHERITLAYOUT = $00100000; // Disable inheritence of mirroring by children
WS_EX_LAYOUTRTL = $00400000; // Right to left mirroring
procedure SetWinControlBiDi(Control: TWinControl);
var
ExStyle: Longint;
begin
ExStyle := GetWindowLong(Control.Handle, GWL_EXSTYLE);
SetWindowLong(Control.Handle, GWL_EXSTYLE, ExStyle or WS_EX_RTLREADING or WS_EX_RIGHT
or WS_EX_LAYOUTRTL or WS_EX_NOINHERITLAYOUT );
end;
ودر رویداد FormShow کد زیر را بنویسید .
SetWinControlBiDi(TreeView);
TreeView.Refresh;
موفق باشید
استفاده از DLL و کدهای داخل آن بهترین راه حل برای برنامه شما می باشدچرا که در آینده اگر قصد تغییراتی در برنامه خود را داشته باشید می توانید با ویرایش این DLL آن تغییرات را اعمال کنید.با ساخت دستورات و عملکردهای گوناگون در DLL می توانید سورس کد راحت تر و منظم تری در برنامه اصلی خود داشته باشید. یکی دیگر از مزایای DLL قابلیت Update نرم افزار می باشد. به طور مثال فرض کنید برنامه شما از یک DLL برای دستورات خود استفاده می کند. اگر در آینده نیاز به تغییراتی در آن داشته باشید ، می توانید DLL خود را تغییر دهید و از کاربران بخواهید تا به جای تغییر دادن کل برنامه شما ، فقط DLL مربوطه را تغییر دهند تا برنامه شما عملکرد جدیدی داشته باشد. ضمناْ به یاد داشته باشید DLL نوشته شده در هر زبانی قابل استفاده در زبانهای برنامه نویسی دیگر نیز می باشند .پس به خاطر داشته باشید استفاده از DLL ها مزایای فراوانی را به شما در برنامه نویسی می دهد.
ایجاد Dll
ابتدا از منوی File گزینه New و سپس Other را انتخاب نمایید. زینه DLL Wizard را انتخای کرده و OK را فشار دهید. اکنون فرمی باز شده که حاوی یک سری توضیحات می باشد. این فایل رابا نام MyDll.dpr ذخیره کنید. از منوی File گزینه New و سپس Unit را انتخاب نمایید . اکنون این فایل را با نام Msg.pas در همان شاخه ای که فایل قبلی خود را با نام MyDll.dpr قرار دادید ، ذخیره نمایید.
حال کدهای خود را در unit ایجاد شده وارد کنید . در انتهای نام پروسیژر از کلمه stdcall استفاده می کنیم به این منظور که در تما زبان های برنامه نویسی قابل استفاده باشد .
unit MsgDll;
interface
uses SysUtils;
procedure ShowMessage (var textmsg:string);stdcall;
implementation
uses Msg;
procedure ShowMessage (var textmsg:string);stdcall;
begin
Msg:=TMsg.create(nil);
Msg.show;
end;
end.
زمانی که کدهای خود را نوشتید . پروسیژرهایی که در برنامه های دیگر قرار است فراخوانی شوند را باید تعریف کنیم برای این کار به صفحه اصلی خود MyDll رفته و قبل از begin با دستور Exports نام پروسیژر خود را تعریف کنید مانند زیر :
exports
ShowMessage;
فراخوانی dll در دلفی
باید در بالای برنامه قبل از implementation پروسیژر مورد نیاز در dll را تعریف کنید که این کار با دستور زیر است.
Procedure ShowMessage(textMsg:String); StdCall;
external 'MsgDLL.dll';
نکته 1
در dll ها نمی توان یک فرم را به راحتی با دستور show ,showmodal نشان داد و باید فرم مورد نظر را create کرد . این کار را با دستور زیر انجام می دهیم . Msg نام فرم است .
Msg:= Msg.create(nil);
Msg.ShowModal;
نکته2
برای ارسال یک فرم یا Application و یا Screen به dll باید حتما از کلمه Var در تعریف پروسیژر استفاده کنید .
نکته 3
در دلفی 7 برای ارسال مقدار از نوع رشته ای باید نوع ان را widestring در نظر گرفت
نکته 4
در دلفی 7 با استفاده از یونیت sharemem برای ارسال صحیح اطلاعات میتوان استفاده کرد
کامپوننت های دلفی یکی از فایل ها با پسوند زیر هستند که در اینجا هر کدام را جداگانه توضیح می دهیم .
نحوه نصب کامپوننتهای با پسوند bpl ، .dpk ، .pas ، .ocx و .dll
ادامه مطلب ...