السلام عليكم ورحمة الله وبركاته من لا يشكر الناس لا يشكر الله .
لقد شجعني حصولي على إجابة غاية في الدقة
- من الأعضاء الكرام جزاهم الله كل خير- لأول سؤال لي أطرحه في منتديات هذا الموقع إلى وضع سؤال جديد .
السؤال :
قمت ببرمجة قائمة منسدلة عن طريق جدول DBGrid1 وهي تعمل لكن ينقصني بعض التعديل بتغير مفتاح مكان مفتاح
تنظر الصورة : ؟؟؟؟؟؟ أسف أنا جديد على المشاركة في المنتديات ولم أعرف كيف أدرج الصورة
قمت بوضع هذا الكود داخل حدث EditNomPrenomKeyDown
أنظر الكود
procedure TFormConsultationDonneur.EditNomPrenomKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if DBGrid1.Visible =False then
begin
if (Shift=[ssCtrl]) and (Key =Ord(78))then
begin
DBGrid1.Visible :=True;
Table1.Open;
Table1.First;
Table1.Filtered:=False;
Table1.Filtered:=True;
Table1.Filter:=
'NomPrenom='''+AnsiUpperCase(EditNomPrenom.Text)+'*''';
end;
end;
end;عند الضغط على مفتاح Ctrl مع الإبقاء عليه مضغوط ثم نضغط على حرف N في لوحة المفاتيح كي تسدل القائمة مرشحة جدول أسماء المتبرعين حسب حروف الخانة EditNomPrenom
الطريقة تعمل لكن أردت أن أجعلها مثل طريقة تكملة الشفرة في محرر الكود في دلفي انظر الصورة :
الصورة ؟؟؟؟؟؟
المهم أنا أريد أن أعرف كيف أغير الكود حتى يصبح المفتاح espace مكان المفتاح N معنى هذا الشرط هو عندا الضغط على مفتاح Ctrl مع الإبقاء عليه مضغوط ثم أضغط على مفتاح espace تسدل قائمة الأسماء المرشحة
طبعا مع مراعاة عدم كتابة المفتاح لحرف ابيض في الخانة Edit عندما يكون مفتاح Ctrl مضغوط بل تسدل قائمة ترشيح الأسماء وعندما نضغط مفتاح espace لوحده يعمل عادي ويطبع حرف أبيض في الخانة Edit .
ملاحظة ينظر : هذا الكود
procedure TFormConsultationDonneur.FormKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if DBGrid1.Visible =True then
begin
if (Key in [Ord(38),Ord(40)])then
begin
DBGrid1.SetFocus;
end;
end;
end;يقوم باختبار DBGrid هل هي مخفية إذا كانت غير مخفية يتنقل بمفتاح الأسهم العلوي والسفلي إلها وتصبح نشطة ... أي مفعلة .
من أرد أن يضيف عليه . أو يعقب لتعم الفائدة.
أرجو أن يكون سؤالي مفهوم .
وأكرر شكري للجميع .... وأتمنى لكم عيد فطر مبارك و سعيد .