السلام عليكم ..
عندما استخدم Clipboard.AsText لوضع نص عربي في الحافظة فإنه لا يظهر بشكل سليم عند عملية اللصق.
فما هو السبب؟
وشكراً لكم.
السلام عليكم ..
عندما استخدم Clipboard.AsText لوضع نص عربي في الحافظة فإنه لا يظهر بشكل سليم عند عملية اللصق.
فما هو السبب؟
وشكراً لكم.
لو راجعت Delphi Help ستلاحظ ان Clipboard.AsText سواء أثناء القراءة أو الكتابة تستعمل AnsiString وهنا ستحدث المشكلة ..
جرب إستعمالClipboard Win32 API function وعندما تستدعي التابع SetClipboardData استخدم CF_UNICODETEXT
ربما كود كهذا قد يفيد
procedure SetClip(handle:Thandle;unicodestring:widestring); VAR DataHandle : THandle; FromPointer: Pointer; ToPointer : Pointer; ws : WideString; begin ws := UnicodeString; SetLength(ws, Length(ws)+1); ws[Length(ws)] := WideChar($0000); // Null-terminator DataHandle := GlobalAlloc(GMEM_DDESHARE OR GMEM_MOVEABLE, Length(ws)*SizeOf(WChar)); ToPointer := GlobalLock(DataHandle); FromPointer := @UnicodeString[1]; Move(FromPointer^, ToPointer^, Length(ws)*SizeOf(WChar)); GlobalUnlock(DataHandle); OpenClipboard(Handle); EmptyClipboard; SetClipboardData(CF_UNICODETEXT, DataHandle); CloseClipboard; end;
هو مأخوذ من المثال في : http://www.efg2.com/Lab/OtherProjects/Unicode.htm
لاحظ كود الدلفي
procedure TClipboard.SetAsText(const Value: string); begin SetBuffer(CF_TEXT, PChar(Value)^, Length(Value) + 1); end; function TClipboard.GetAsText: string; var Data: THandle; begin Open; Data := GetClipboardData(CF_TEXT); try if Data <> 0 then Result := PChar(GlobalLock(Data)) else Result := ''; finally if Data <> 0 then GlobalUnlock(Data); Close; end; end;
"First they ignore you, then they laugh at you, then they attack you, then you win"
===
اقتباسحُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا
هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا
الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا
القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ
لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ
البردوني "أبو تمام وعروبة اليوم" 1971
===
اقتباسعبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــمو تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم
ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم
أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟
ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا
البردوني "نحن و الحاكمون "
انا جربتها من قبل فهي تعمل على جهازي
يمكن لان جهازي يدعم العربي و بالتالي تعمل بشكل صحيح
اما اذا كان الجهاز لا يدعم العربي فتحصل المشكلة التي تحدث عنها الاخ
شكرا اخ cipher على هذه المعلومات القيمة في التعامل مع اللغة بالشكل الصحيح و السليم
وذلك بغض النظر عن دعم نظام التشغيل للغة العربية او عدم دعمه
رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"
أشكرك كثيراً أستاذ cipher
تم حل المشكلة
أخي وائل
جهازي XP واللغة العربية منصبة عليه، ومع ذلك ظهرت المشكلة.
هذا الموضوع مغلق.