الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اريد حلا

مغلق
بدأه mortaja في 21 ديسمبر 2001 · 9 رد · 1,018 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم ورحمة وبركاته

تحية طيبة وبعد

كل عام وانتم جميعا بالف خير

اتوجة بالشكر الى جميع القائمين على هذا المنتدى الرائع والله يوفقكم والى الامام

ارجوا منكم مساعدتي في التالي

لدي برنامج اصممه حاليا في دلفي 6 عن صيدلية

واجهتني مشكلة في عملية البحث عن طريق اسم الدواء فقد استخدمت دالة findkey ولكن لم افلح في الوصول الى النتيجة المرجوه ،وكذلك كيف يمكنني تغيير مثلا شكلا الفورم الى مثلا شكل بيضاوي او كروي الى اخره ارجوا من لديه اي معلومات حول هذا الموضوع ان يوافيني بها او حتى من عنده مواقع عن مشارع بالدلفي مثلا عن صيدلية او عن اي مشروع او برنامج اخر اكون له من الشاكرين.

وشكرا لكم جميع سلفا

mortaja

#2

شكل الفورم

اما عملية البحت فعليك باستخدام أمر locate فهو اسهل فياجرا عمليات البحت

locate(value,fieldname,option) 0

value القيمة

fieldname اسم الحقل

option بعض التعديلات على عملية البحت

متلا تريد ان تبحت عن شخص اسمه ali

locate('ali',name,[]) 0

ولو تريد اي اسم يبدا بحرف a بحت جزئي

locate('a',name,[loparitialkey]) 0

وشكرا

#4

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

تحية طيبة وبعد

شكرا كثيرا للاخ madi الذي تجاوب مع رسالتي هذه ولكن اقصد في عملية البحث هو انني عندما اصنع فورم خاص بالاستعلامات وهذا الفورم يستعلم عن دواء ما فاريد من البرنامج انه بمجرد ان يكتب المستخدم في ال edit المحدد لعملية البحث عن اي اسم دواء ان يظهره لا ان احدد فقط اسم دواء معين وعليه تتم عملية الفحص كما اشرت اخي شيه في رسالة الرد علي .

المطلوب الاخر هو كيفية تعامل ال combobox من خلال ال data base اقصد لو انني في فورم المبيعات لو انني وضعت combbox خاص باسماء الشركات اي انه عند بيع دواء ما يستلزم مني معرفة هذا الدواء تابع للشركة x مثلا فهنا اود عمل كود بحيث هذه ال combbox الموجودة في فورم المبيعات تظهر للمستخدم جميع اسماء الشركات الموجودة في جدول الشركات وذلك ممايسهل على المستخدم من استخدامه للبرنامج بدلا من ان المستخدم يكتب اسم الشركة بنفسه.

ولكم جزيل الشكر سلفا

والسلام عليكم ورحمة الله وبركاته

#5

الأخ mortaja

السلام عليكم ورحمة الله وبركاته:

إذا كنت تريد مثلا عرض الشركات التي تبدأ بأول حرف كتبته:

مثلا عند كتابة X تريد أن يظهر في combobox كل الشركات التي تبدأ بـ X اكتب الكود التالي:

//Suppose you use a Text box to write the company you look for

//in the OnChange event for the Edit box write

Table1.FindNearest([Edit1.Text]);

أرجو أن يكون هذا هو الحل

#6

اخي العزيز

اولا هدا الكود يقوم بملاء عناصر compobox باسماء الشركات

Table1.First;

ComboBox1.Items.clear;

while(not Table1.Eof) do

begin

ComboBox1.Items.Add(Table1.fieldbyname('name').asstring);

Table1.next;

end;

end;

وهدا الكود يعطي خاصية الاكمال التلقائي ل combobox

عند الحدت KeyDown ضع

procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

LastKey:=Key;

end;

وعند الحدت onChange ضع

procedure TForm1.ComboBox1Change(Sender: TObject);

Var

Srch : String;

ix : Integer;

Begin

Srch := combobox1.Text;

if LastKey = $08 then

Begin

LastKey := 0;

Exit;

end;

LastKey := 0;

ix := combobox1.Perform(CB_FINDSTRING,-1,LongInt(PChar(Srch)));

if ix > CB_ERR then

Begin

combobox1.ItemIndex := ix;

combobox1.SelStart := Length(Srch);

combobox1.SelLength := (Length(combobox1.Text) - Length(Srch));

end;

end;

وشكرا (*)

#7

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

تحية طيبة وبعد

خالص الشكر والامتنان للاخ العزيز madi على الجهود التي بذلها معي في عملية البحث وتغير شكل الفورم فالشكر كل الشكر لك وبارك الله فيك وزاد الله من علمه والى الامام.

#8

الشكر لله سجانه وتعالى ,

و اهل وسهلا بيك اخي العزيز ,

وشكرا (*)

#9

الشكر لله سجانه وتعالى ,

و اهل وسهلا بيك اخي العزيز ,

وشكرا (*)

madi

#10

السلام عليكم

اخواني اسف على الانقطاع فالمشكلة هي رسالة التخرج التي بدات

فيها منذاسبوع تقربا بعد ان ياست من البحث عن موضوع جيد وجديد

بعد ان رفض المأطر (تسيير مقهى الانترنت )و(التعرف عل الاشخاص

مصلحة الجنايات ) .

فإتجهت الى الادوية (تسيير المخازن ) كما اني اتابعكم يوميا .

وبما انني كنت في فريق سابق للبرمج حيث عملنا تطبيق لتسيير

صيدلية .

1- البحث عن تسجيلة ب findkey يكون اسرع واحسن من locate

لان البحث يتم في ملف الفهرسة Px ,اما locate البحث يتم في

ملف db

2- لا تستطيع البحث على دواء بواسطة الاسم فقط لانه توجد ادوية

بنفس الاسم لكن مختلفة باحد الخصيات الاخرة (مثلا :تاريخ نهاية

الصلاحية ).

راجع الدراسة المسبقة للتطبيق .lot+nom

3- اسعمال findkey للبحث عن الحقلين المفهرس عليهم

If not(Table1.FindKey([edit1.text,edit2.text])) then

MessageBox( Handle,'هذا الدواء غير موجود', ' تنبيه',

+MB_YES+ MB_ICONQUESTION + MB_DEFBUTTON1 + MB_APPLMODAL)

4-استعمل DBLookupComboBox1

*DataSource2 : الربط القاعدة دواء

*datafield :الحقل النتيجة

* ListSource1 : الربط القاعدة صانع

*listfield :الحقل المعرض

5- تقبل مني فائق الاحترام ةالتقدير .

pati انتضروه ......................سيعود الى منتداه المفضل .

هذا الموضوع مغلق.

مواضيع مشابهة