چگونه یک HotKey یا میان بر سیستم درست کنیم؟


چگونه یک HotKey یا میان بر سیستم درست کنیم؟
--------------------------------------------------------------------------------


چگونه یک HotKey یا میان بر سیستم درست کرده و آن را مدیریت کنیم؟ (که در تمامی برنامه ها کار کند)
مرجع: delphi3000


{**********************

Copyright © by Jim McKeeth Licensed under LGPL
( http://www.gnu.org/licenses/licenses.html#LGPL )

Demo of creating a system wide hotkey or shortcut
This was written in Delphi 7,
but should work in most other versions
(but obviously not Kylix)
You need a form with
1) a THotKey named HotKey1
2) a TCheckBox named CheckBox1
To demo
1) Change the hotkey in the value
2) Check the box
3) Minimize the application
4) Press the hot key
5) Be impressed
---------}
unit SystemHotKeyUnit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics,
Controls, Forms, StdCtrls, ComCtrls, Dialogs,
// Menus need to be added for calls in the code
Menus;

type
TForm1 = class(TForm)
HotKey1: THotKey;
CheckBox1: TCheckBox;
procedure FormCreate(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
protected
// Handle the global hot key
messages when they are sent to the window
procedure HotyKeyMsg(var msg:TMessage); message WM_HOTKEY;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

var
myAtom: integer;

function ShiftState2Modifier(const Shift: TShiftState):Word;
begin
Result := 0;
if ssShift in Shift then
Result := Result or MOD_SHIFT;
if ssAlt in Shift then
Result := Result or MOD_ALT;
if ssCtrl in Shift then
Result := Result or MOD_CONTROL;
end;

function GetShortCutKey(ShortCut: TShortCut):Word;
var
shift: TShiftState;
begin
ShortCutToKey(ShortCut,Result,shift); // call in Menus!
end;

function GetShortCutModifier(ShortCut: TShortCut):Word;
var
key: Word;
shift: TShiftState;
begin
ShortCutToKey(ShortCut,key,shift); // call in Menus!
Result := ShiftState2Modifier(shift);
end;

function RegisterHotShortCut(const h:THandle; const Atom: integer;
const ShortCut: TShortCut):Boolean;
var
key : Word;
Shift: TShiftState;
begin
UnregisterHotKey(h,Atom); // call in Windows
ShortCutToKey(ShortCut,key,shift);
Result := RegisterHotKey(h,Atom,ShiftState2Modifier(Shift),key);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
// you need to type cast it as a pChar if you are using a string
myAtom := GlobalAddAtom(pchar('HotKeyDemo'));
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
UnregisterHotKey(Handle,myAtom);
GlobalDeleteAtom(myAtom);
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
RegisterHotShortCut(Handle,myAtom,HotKey1.HotKey)
else
UnregisterHotKey(Handle,myAtom);
end;

procedure TForm1.HotyKeyMsg(var msg: TMessage);
begin
if (msg.LParamLo=GetShortCutModifier(HotKey1.HotKey))
and (msg.LParamHi=GetShortCutKey(HotKey1.HotKey)) then
begin
Application.BringToFront;
Showmessage('Hey, now that is a system wide hot key!')
end;
end;

end.

نویسنده : محمد باقر معموری
پست الکترونیک : mamouri@ganjafzar.com
منبع مطلب از سایت : irandevelopers

تاریخچه پاسکال


تاریخچه پاسکال

زبان شى گرایى پاسکال که ما در دلفى از آن سود مى جوییم در سال 1995 همراه با محیط برنامه نویسى دیدارى (Visual) دلفى اختراع نشد. این زبان توسعه یافته زبان پاسکال شى گرا بود که قبلا در محصول بورلند پاسکال از آن استفاده شده بود. اما بورلند پاسکال را اختراع نکرد، او تنها به گسترش و عمومى شدن کمک نمود.

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

تولد پاسکال

پاسکال در واقع بوسیله Niklaus Wirth پروفسور دانشگاه پولى تکنیک زوریخ/سوییس در سال 1971 طراحى شد. پاسکال به عنوان زبان ساده شده زبان Algol طراحى شد و مقاصد آمووزشى داشت.

وقتى پاسکال اختراع شد، زبان هاى برنامه نویسى بسیار زیادى وجود ولى تنها چند تا از آنها بسیار استفاده مى شدند که عبارتند از: FORTRANT، C، Assembler، COBOL. ایده اصلى زبان جدید نظم، مدیریت داده‌ها و نیاز به تعریف داده ها بود. این زبان از ابتدا به گونه اى طراحى شده بود که یک زبان آموزشى باشد.

توربو پاسکال

کامپایلر مشهور پاسکال، که توربو پاسکال نام داشت در سال 1983 معرفى شد. توربو پاسکال همیشه در بین زبان هاى برنامه نویسى از فروش بسیار بالایى برخوردار بود.

توربو پاسکال مفهوم جدیدى را به نام Integrated Development Environment و یا به طور خلاصه IDE را معرفى کرد. IDE یعنى محیط برنامه نویسى مجتمع. در واقع شما در این محیط مى توانید کد را ادیت کنید (در یک ویرایشگر هماهنگ با WordStar)، کامپایلر را آغاز کنید، خطاها را ببنید، و به خطهایى که حاوى آن خط ها است بروید. البته این مساله هم اکنون بسیار بى معنى به نظر مى آید، اما در گذشته لازم بود که شما از ادیتور بیرون بروید و به DOS برگردید و سپس کامپایلر را به صورت خط فرمانى آغاز کنید، سپس شماره خطهاى خط را یادداشت کنید، دوباره ویرایشگر را باز کنید و به خطهاى حاوى خطا بروید و دوباره همه چیز را از اول دوباره انجام دهید .......

به علاوه بورلند توربوپاسکال را فقط 49 دلار مى فروخت، در حالى که مایکروسافت کامپایلر پاسکال خود را چند صد دلار به فروش مى رساند. تداوم موفقیت چندساله توربو پاسکال سبب شد که در آمدهاى مایکروسافت از فروش کامپایلر پاسکال بسیار کاهش یاد.
پاسکال دلفی

بعد از 9 نسخه از انتشار توربو پاسکال و بورلند پاسکال، که به تدریج زبان هاى بسیار گسترده اى شده بود، بورلند در سال 1995 دلفى را معرفى کرد که پاسکال را به یک محیط برنامه نویسى دیدارى (Visualی) تبدیل کرده بود.


نویسنده : محمد باقر معموری
پست الکترونیک : mamouri@ganjafzar.com
منبع مطلب از سایت : irandevelopers

Dom چیست ؟ (3), قسمت سوم


Dom چیست ؟ (3)


کد خطای بوجود آمده ، برگردانده می شود .
errorCode
علت خطای بوجود آمده ،برگردانده می شود .
reason
شماره خط خطای بوجود آمده ، برگردانده می شود
line
محل بروز خطاء در خط مربوطه را برمی گرداند .
linePos
رشته ای که شامل خط مربوط به خطای بوجود آمده است، برگردانده می شود
srcText
url مربوط به سند مستقر سده در حافظه ، بر گردانده می شود .
url
محل بروز خطاء در فایل مربوطه، برگردانده می شود .
filePos

حرکت در طول درخت
یکی از متداولترین روش های بازیابی المان های یک سند XML ، حرکت در طول درخت ( از گره ای به گره دیگر ) و استخراج مقدار متن ذخیره شده بهمراه هر یک از المان ها است . کدهای نوشته شده زیر ، امکان حرکت در طول یک درخت XML را فراهم و در ادامه هر یک از المان های سند XML ، در خروجی نمایش داده می شوند ( کدها با استفاده از VBScript نوشته شده اند ) .

حرکت در طول درخت و نمایش المان های یک سند XML

set xmlDoc=CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
for each x in xmlDoc.documentElement.childNodes
document.write(x.nodename)
document.write(": ")
document.write(x.text)
next

ایجاد محتویات مبتنی بر Html برای یک سند XML
یکی از مهمترین قابلیت های XML ، تمایز و تفکیک سندهای Html از داده های مربوطه است . با استفاده از یک پارسر XML ، موجود در مرورگرها ، یک صفحه وب قادر به ایجاد محتویاتی پویا است . در این زمینه می توان از پتانسیل های جاوااسکریپت بمنظور تولید و ارائه محتویات پویا نیز استفاده کرد . در همین راستا ، امکان استفاده از ASP برا ی ایجاد محتویات پویا با تاکید بر نقش سرویس دهنده وب نیز وجود دارد . برنامه زیر ، داده های موجود در یک سند XML را خوانده و آنها را با فرمت Html در خروجی نمایش خواهد داد .

نمایش داده های موجود در یک سند XML با استفاده از جاوااسکریپت

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
nodes = xmlDoc.documentElement.childNodes
to.innerText = nodes.item(0).text
from.innerText = nodes.item(1).text
header.innerText = nodes.item(2).text
body.innerText = nodes.item(3).text

دستیابی به المان ها از طریق نام
رنامه زیر داده های موجود در یک سند XML را خوانده و آنها را با فرمت Html در خروجی نمایش خواهد داد .

دستیابی به المان ها د ر یک سند XML از طریق نام و بکمک جاوااسکریپت

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
document.write(xmlDoc.getElementsByTagName("from").item(0).text)


منبع مطلب از سایت : شرکت سخا روش