PDA

View Full Version : استفاده از توابع API



javidtaheri
چهارشنبه 14 بهمن 1383, 16:53 عصر
با سلام
چگونه توابع API را در دلفی فراخوانی کنیم :گیج:

مهدی کرامتی
چهارشنبه 14 بهمن 1383, 19:36 عصر
کدام تابع API را؟

Delphi Skyline
چهارشنبه 14 بهمن 1383, 19:48 عصر
آخه تابع ها با هم فرق دارن

Developer Programmer
چهارشنبه 14 بهمن 1383, 20:00 عصر
نرم افزاری مثل API-Guide یا AllAPI را دانلود کن

javidtaheri
جمعه 16 بهمن 1383, 12:37 عصر
با سلام
من کتابی را دیدم در مورد توابع API
بعضی از آنها بدرد برنامه ام خورد سوال من اینست که:
1- ایا توابع API را در دلفی میتوان استفاده کرد یا خیر :confy2:
2- اگر جواب بله است کدام توابع را :cry:
3- ابزار بهتر از توابع API آیا وجود دارد که استفاده انها در دلفی بهتر باشد :kaf:
4- در صورت امکان یک مثال :sunglass:

robochoo
جمعه 16 بهمن 1383, 17:07 عصر
فکر منم بعضی هاش توی shelapi باشه

مهدی کرامتی
جمعه 16 بهمن 1383, 18:53 عصر
ایا توابع API را در دلفی میتوان استفاده کرد یا خیر
بله.


اگر جواب بله است کدام توابع را
تمام شان را !


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

در صورت نیاز به فرخوانی مستقیم توابع API کافی است یونیت Windows را در فرم تان Use کنید.

مثال:

<span dir=ltr>

ActivateKeyboardLayout

Unit
Windows.Pas

Syntax
ActivateKeyboardLayout(
klh: HKL; {keyboard layout handle}
Flags: UINT {activation flag}
): HKL; {returns previous handle}

Description
The ActivateKeyboardLayout function activates the keyboard layout identified by the specified keyboard layout handle. In Windows95, it takes effect for the current thread. In Windows NT, it affects all threads.

Parameters
klh: The keyboard layout handle. This handle can be obtained by calling LoadKeyboardLayout or GetKeyboardLayoutList. This parameter can also be set to HKL_NEXT or HKL_PREV which refer to the next or previous entries in the keyboard layout list.

Flags: Specifies Keyboard layout options.

Return Value
If the function succeeds, the return value is the keyboard layout handle of the previous keyboard layout. If the function fails, it returns zero, indicating no matching keyboard layout was found. To get extended error information, call the GetLastError function.

Example:
</span>
var
Form1&#58; TForm1;
List &#58; array &#91;0..MAX_HKL&#93; of HKL; // list of keyboard handles

implementation

&#123;$R *.DFM&#125;

procedure TForm1.Button1Click&#40;Sender&#58; TObject&#41;;
var
MyLangID&#58; WORD; // holds a language identifier
begin
&#123;load the keyboard layout specified by language IDs&#125;
MyLangID&#58;=MakeLangID&#40;WORD&#40;StrToInt&#40;Edit1.Text&#41;&#41;, WORD&#40;StrToInt&#40;Edit2.Text&#41;&#41;&#41;;

if LoadKeyBoardLayout&#40;PChar&#40;'0000' + IntToHex&#40;MyLangID,4&#41;&#41;,KLF_ACTIVATE&#41; = 0
then ShowMessage&#40;'Error loading keyboard layout'&#41;;
end;

procedure TForm1.Button2Click&#40;Sender&#58; TObject&#41;;
begin
&#123;activate the highlighted keyboard layout&#125;
if &#40;ActivateKeyboardLayout&#40;StrToInt&#40;ListBox1.Items&#91;Li stbox1.Itemindex&#93;&#41;,
KLF_REORDER&#41; = 0&#41; then
ShowMessage&#40;'Error activating the keyboard layout'&#41;;

&#123;clear the keyboard layout list and repopulate it&#125;
ListBox1.Clear;
FormCreate&#40;Sender&#41;;
end;

procedure TForm1.FormCreate&#40;Sender&#58; TObject&#41;;
var
pwszKLID&#58; PChar; // holds the name of a keyboard layout
MyListIndex&#58; Integer; // specifies a list index
begin
&#123;get the keyboard layout lists&#125;
GetKeyboardLayoutList&#40;MAX_HKL, List&#41;;

&#123;allocate a buffer for the keyboard layout name string&#125;

GetMem&#40;pwszKLID, KL_NAMELENGTH&#41;;

&#123;retrieve the name string for active keyboard layout&#125;
GetKeyboardLayoutName&#40;pwszKLID&#41;;
ShowMessage&#40;'The active keyboard layout is '+pwszKLID&#41;;
StatusBar1.SimpleText&#58;= 'Active keyboard layout ' + pwszKLID;

&#123;retrieve the code page identifier&#125;
StaticText1.Caption&#58;=IntTostr&#40;GetACP&#41;;

&#123;free the string memory&#125;
FreeMem&#40;pwszKLID&#41;;

&#123;list all the keyboard layout in the list box&#125;

MyListIndex &#58;= 0;
while &#40;List&#91;MyListIndex&#93; &lt;> 0&#41; do
begin
ListBox1.Items.Add&#40;IntToStr&#40;List&#91;MyListIndex&#93;&#41;&#41;;
Inc&#40;MyListIndex&#41;;
end;
end;

procedure TForm1.Button3Click&#40;Sender&#58; TObject&#41;;
begin
&#123;unload keyboard layout&#125;
if not UnloadKeyboardLayout&#40;StrToInt&#40;ListBox1.Items&#91;Listb ox1.ItemIndex&#93;&#41;&#41; then
ShowMessage&#40;'Error Unloading Keyboard Layout'&#41;;

end;

function MakeLangID&#40;PrimLang, SubLang&#58;WORD&#41;&#58; WORD;
begin
&#123;make a Language ID by combining the Primary language ID and Sub language ID&#125;
Result &#58;= &#40;SubLang SHL 10&#41; + PrimLang;
end;

فرزاد دلفی باز
دوشنبه 26 بهمن 1383, 14:42 عصر
دوست عزیز DelphiAssistant :
جالب بود . استفاده کردم .....

saeed_d
دوشنبه 26 بهمن 1383, 16:23 عصر
:تشویق: :تشویق: :موفق:

ho_abedin
دوشنبه 26 بهمن 1383, 22:52 عصر
ببخشید آیا می توانید مرا راهنمایی کنید که چگونه میتوانم API جستجوی یک کلمه خاص را در یک صفحه HTML از داخل دلفی استفاده کنم
در برنامه یک صفحه وب داریم میخواهیم دنبال کلمه خاصی بگردیم ابتدا آن کلمه را داخل یک edit تایپ کنیم و با زدن یک دکمه و با استفاده از API ویندوز تمامی کلمات مشابه در صورت وجود داشتن در صفحه وب مورد نظر به حالت select مشخص شود
اگر لطف کنید بصورت سورس کد کامل برایم مثال بزنید متشکر می شوم
با احترام