في الرابط السابق تجد كل الدوال التي تحتاجها فقط حاول وجرب...
مثال:
كود :
function GetLayout: string;
begin
SetLength(Result, KL_NAMELENGTH+1);
if not GetKeyBoardLayoutName(PChar(Result)) then
Result := 'Error: No layout name read';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
GetLayout;
case IndexText(GetLayout, ['00000401', '0000040C','00020401', '00010401']) of
0: Edit1.Text := 'Arabic (101)';
1: Edit1.Text := 'Français';
2: Edit1.Text := 'Arabe (102) AZERTY';
3: Edit1.Text := 'Arabe (102)';
end;
end;
أو أن يكون مثلا
عندما يكون في edit الحرف الأول عربي يكون إتجاه النص من اليمين إلى اليسار
وعندما يكون أول حرف غير عربي يكون إتجاه النص من اليسار إلى اليمين
لا أعرف إستخدام تعليمة Length و array
أظن أن الحل بإستخدامهما
ومن يتهيب صعود الجبال يعش أبد الدهر بين التلال و الحفر
شباب للتوضيح أكثر كبف يمكنني معرفة الحرف الأول في Edit إن كان حرف عربي يجعل النص من اليمين لليسار وإن كان غير ذلك يبقى الإسجاه من اليسار لليمين لم أعرف إستعمال Length و array array لوضع الحروف العربية وتحديدها والتحقق منها
Length لمعرفة إن كان الحرف الأول موجود في array أم لا بارك الله فيكم وأرجـو أنكم فهمتم القصد
ومن يتهيب صعود الجبال يعش أبد الدهر بين التلال و الحفر
khiro.alg كتب :شباب للتوضيح أكثر 1- كبف يمكنني معرفة الحرف الأول في Edit 2- إن كان حرف عربي يجعل النص من اليمين لليسار وإن كان غير ذلك يبقى الإسجاه من اليسار لليمين 3- لم أعرف إستعمال Length و array ..... لوضع الحروف العربية وتحديدها والتحقق منها ..... لمعرفة إن كان الحرف الأول موجود في array أم لا
السلام عليكم و رحمة الله و بركاته
1- Edit -> الخاصية Text , من النمط String (سلسلة نصية -جدول-)
الخانة 0 تخزن طول السلسلة .
الخانة 1 عنوان المحرف رقم واحد .
- إذا لمعرفة الحرف الأول يكفي كتابة :
PHP كود :
ShowMessage(Edit.Text[1]);
2- هنا يوجد العديد من الحلول , لتحديد طبيعة الحرف ممكن
نقارن قيمة AScii الخاصة به , أو نراقب حالة 'لغة النظام المفعلة' عند كتابة الحرف ....
- لذا لاحظ هنا
- أيضا هنا
- طريقة معرفة AScii الحرف مثال بسيط : هنا