السلام عليكم ورحمة الله
أخواني
كيف يمكن بالدلفي عرض الجدول في treeview
او بالتحديد عمل شجرة مثلا للحسابات مبنية على جدول واضافة وازالة العقد
السلام عليكم ورحمة الله
أخواني
كيف يمكن بالدلفي عرض الجدول في treeview
او بالتحديد عمل شجرة مثلا للحسابات مبنية على جدول واضافة وازالة العقد
و عليكم السلام
اخي لم تحدد اي دلفي نت vcl winfom webform الكل تختلف عن بعضها و ان كان السؤال في الدلفي win 32 سانقل الموضوع و لك الجابة ان شاء الله .
شكراً مرورك اخي زكيري
الحقيقة اني مبتدأ جداً بالدلفي واردت عمل برنامج محاسبة ومخازن وحملت دلفى دوت نت 2009 و عملت قواعد البيانات على sql server 2000
وليس هناك مشكلة في الربط ولكنى وجدت قلة في شرح ودروس دوت نت ففكرت في الرجوع الى دلفي 7
وكنت ارغب في البداية في عمل شجرة للحسابات
انتظر منك النصيحة وكيفية البدأ ولك شكري وتقديري
تم تعديل هذه المشاركة بواسطة okail في 9 فبراير 2009 في 21:58
فهمت
دلفي 2009 اي حذفت winform :resentful: بقي win32 vcl.net :rose:
اخي لم تحدد اي دلفي
ولانك في منتدي الدلفي نت اذن انت تريد
اقتباسكيف يمكن بالدلفي عرض الجدول في treeview
اقتباسقلة في شرح ودروس دوت نت ففكرت في الرجوع الى دلفي 7
7 win32
:tantrum: لم افهم
تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 10 فبراير 2009 في 14:35
أولا انا شاكر جداً مرورك وإهتمامك بي
بس حلمك علي أخ زكيري شكلك بتضربني الحين
الموضوع بسيط
انا ابغى البدأ بالبرمجة بالدلفي لعمل بداية برنامج محاسبة ومخازن
أي إصدار أفضل هل دلفي ( 7 ) أو( 2009 ) من حيث
-العمل تحت بيئة ويندوز
- عمل البرنامج على شبكة واستخدام قاعدة بيانات sql server 2000
-وفرة الدروس التي يمكن أن تساعدني على اتمام ذلك
ارجو لو إعطائي فكرة عن بداية الموضوع كيف اسوي كيف أضع الخطوة الأولى
حتى عند فتح مشروع جديد للغرض السابق الذكرة ما هي أفضل طرق اتصال هل ADO ام ماذا
-
ومرفق صورة من برنامج اريد عمل مثله (على فكرة البرنامج مصمم بدلفي 7 )
تم تعديل هذه المشاركة بواسطة okail في 10 فبراير 2009 في 16:41
اقتباسبس حلمك علي أخ زكيري شكلك بتضربني الحين
:nose_patch: :haha:
non non
إن لم تفهم الإجابة التي في الروابط فساحاول تسهيلها بمرفق .
ولكن قبل دلك يجب ان نرى محاولتك .
الرابط الاول لاحظ الرابط رقم 18
محمد
مشكور mohfa
بالنسبة للرابط الثاني فقط وصلت إليه من قبل ولكن ارى أنه ليس المطلوب
اما الرابط الأول اطلع إليه الأن وأشكرك على سرعة مرورك
السلام عليكم
تستطيع وبسهولة وباي اصدار من اصدارات الدلفي
انظر الى المرفق تم عمله باصدار 2009 ، وقد عملته سابقا بالاصدار السابع .
تم استخدام كمبوننت TVirtualStringTree لانه يدعم الاتجاه العربي 100% .
السلام عليكم أبو محمد
رائع أبو محمد
و الله هذا هو المثال المطلوب
هلا شرحت لي كيفيه عمله أو إرفاق المثال لكي أتعلم
وجزاك الله عنا كل خير
أبشر أنت آمر .
الأول نزل هذا الكمبوننت وهو مجاني TVirtualStringTree
الثاني قول لي كيف سويت جدول الحسابات بقاعدة البيانات .
بالنسبة
الكمبوننت TVirtualStringTree
أحاول العثور عليه من أخر مشاركة ولكنى لم افلح حتى الأن وأكون شاكراً جداً إذا أرفقتها لي
أما عن الجدول
مرفق قاعدة بيانات sql 2000 بها الجدول
هدا اكيد اخي ابو محمد وكذلكاقتباسستطيع وبسهولة وباي اصدار من اصدارات الدلفي
وبجميع لغات الدلفي الثلاثة WINFORM / VCL.NET / VCL.WIN32
انا لم اتحدث عن الاصدرا بل طلبت منه اي لغة لاني وجدت السؤال في منتدي الدلفي نت.
تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 10 فبراير 2009 في 21:12
أخيراً حصلت على الكمبوننت
http://www.softpedia.com/progDownload/Virt...oad-112548.html
زكيري عبد العالي كتب:هدا اكيد اخي ابو محمد وكذلكوبجميع لغات الدلفي الثلاثة WINFORM / VCL.NET / VCL.WIN32
انا لم اتحدث عن الاصدرا بل طلبت منه اي لغة لاني وجدت السؤال في منتدي الدلفي نت.
بارك الله فيك اخي زكيري .
يبدو اني دخلت عرض في الموضوع واحدث ذلك سوء فهم .
فعذرا اخي الكريم لم انتبه للنقاش الذي دار بينكما ، انا قرأت السؤال وجاوبت مباشرة .
okail كتب:أخيراً حصلت على الكمبوننتhttp://www.softpedia.com/progDownload/Virt...oad-112548.html
تمام عليك ، بقي كتابة حقول الجداول لادلك على الطريقة .
اخي العزيز بما انك جديد فيجب الإنتباه الى ان TVirtualStringTree مختلفة بالنسبة 98 % عن مكون ال TTreeView في الدلفي ومنها ان Nodes في ال TVirtualStringTree تصريحاتها مختلفة تماما عن ال TreeView العادية لانها Virtual فمثلا لا يمكنك إنشاء Nodes مع ال TVirtualStringTree في Design time ولكن فقط في ال Runtime .
انا هنا لااتحدث عن ال Derived Components من ال TVirtualStringTree وإنما عن TVirtualStringTree في حد ذاتها .
ماريد ان انوه اليه حاول قراءة ملف المساعدة للTVirtualStringTree
.
محمد
السلام عليكم
أخوي الـ TVirtualStringTree مختلفة تماما TTreeView ولكن بها مميزات كثيرة جدا .
ما عندي وقت اشرح كامل وخصوصا ان معلوماتي بها قديمة جدا لها اكثر من 6 سنوات .
لكن ساعطيك اكواد قم بتجربتها وقراء المساعد لمعرفة طريقة التعامل معها .
أولا التصريح عنها يكون بهذا الشكل
type PNodeData = ^TNodeData; TNodeData = record Caption: String; Image: Integer; id: Integer; level: Integer; end;
لاعطاء الNode قيمة يجب كتابة هذا الكود
procedure Tfr_acc.vstGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: string); var pData: PNodeData; begin pData := Sender.GetNodeData(Node); CellText := pData^.Caption; end;
هذا الكود للتحكم بالوانها حسب الــ lev
procedure Tfr_acc.vstBeforeCellPaint(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex; CellPaintMode: TVTCellPaintMode; CellRect: TRect; var ContentRect: TRect); var lev : Integer; begin lev := vst.GetNodeLevel(node); if lev = 0 then begin TargetCanvas.Brush.Color:= $00FFCD9B ; TargetCanvas.FillRect(CellRect); end; if lev = 1 then begin TargetCanvas.Brush.Color:= $00D7FFD7 ; TargetCanvas.FillRect(CellRect); end; if lev = 2 then begin TargetCanvas.Brush.Color:= $00FFCD9B ; TargetCanvas.FillRect(CellRect); end; if lev = 3 then begin TargetCanvas.Brush.Color:= $00E8E8FF ; TargetCanvas.FillRect(CellRect); end; end;
اما بالنسبة لشجرةالحسابات يجب ان يكون لديك حقلين : Acc_id رقمي ويمثل رقم تسلسل الحساب . الثاني acc_parent ويمثل رقم حساب الاب .
الفكرة مشروحة بهذا الرابط للاخ العزيز Zaher
http://www.parmaja.com/forums/viewtopic.php?id=82
واطلع على هذا الكود ينفعك باذن الله .
procedure Tfr_acc.uptree;
var i,e,b,t,x,y : integer;
str : Tstrings;
NodeT: array[0..1000] of PVirtualNode;
pData: PNodeData;
begin
vst.Cursor := crhourglass;
vst.BeginUpdate;
str := Tstringlist.Create;
str.Clear;
vst.Clear;
//------------------------------------------
i := 0; x := 0; y := 0;
str.Append('0');
// الحصول على عدد سجلات الحسابات كاملا واسناده الى متغير e
//
with MyQuery1 do
begin
Close;
SQL.Clear;
sql.CommaText := 'select * from v_acc ';
Open;
e := RecordCount;
Close;
SQL.Add('where acc_parent = :p1 ');
ParamByName('p1').Value := str;
Open;
First;
end;
for t := 0 to MyQuery1.RecordCount-1 do
begin
str.Append(MyQuery1.FieldByName('acc_id').AsString);
NodeT[x] := VST.AddChild(nil);
pData := VST.GetNodeData(NodeT[x]);
pdata^.Caption := MyQuery1.FieldByName('acc_name').AsString;
x := x + 1;
MyQuery1.Next;
end;
for b := 0 to e-1 do
begin
i := i + 1;
MyQuery1.Close;
MyQuery1.ParamByName('p1').Value := str;
MyQuery1.Open;
MyQuery1.First;
for t := 0 to MyQuery1.RecordCount-1 do
begin
str.Append(MyQuery1.FieldByName('acc_id').AsString);
NodeT[x] := VST.AddChild(nodeT[y]);
pData := VST.GetNodeData(NodeT[x]);
pdata^.Caption := MyQuery1.FieldByName('acc_name').AsString;
x := x + 1;
MyQuery1.Next;
end;
y := y + 1;
end;
vst.FullExpand(NIL);
vst.EndUpdate;
vst.Cursor := crdefault;
end;مشكور أخي أبو محمد
ان شاء الله أجرب الكود وأطلعك على النتيجة
اقتباسأخوي الـ TVirtualStringTree مختلفة تماما TTreeView ولكن بها مميزات كثيرة جدا .
اكيد
ولكن إستعمالها من طرف مستعمل جديد ياخذ وقت لكي يعرف كيف ينشئ ويستعمل Nodes ..... الخ
لانها كلها Virtual المكون لايعرف شئ في وقت البناء Design Time .
ولاتنسى Node(s) Size .
محمد
تم تعديل هذه المشاركة بواسطة mohfa في 11 فبراير 2009 في 19:56
أخوي الـ TVirtualStringTree مختلفة تماما TTreeView ولكن بها مميزات كثيرة جدا .
ما عندي وقت اشرح كامل وخصوصا ان معلوماتي بها قديمة جدا لها اكثر من 6 سنوات .
لكن ساعطيك اكواد قم بتجربتها وقراء المساعد لمعرفة طريقة التعامل معها .
=======================
الاخ العزيز الفاضل ابو محمد
شكرا لمساعدتك
ولكنى فعلا انا عضو مبتدئ فى الدلفى
وشدنى موضوعTVirtualStringTree
وقرات ماكتبته انت فى الرد
لكنى فعلا لم افهم هذا الكومبوببت وكيفيه التعامل معه
ياريت ياريت تتكرم ويتسع صدرك
وترسل لى مثال للكومبونت
ويتم تعبئه هذا الكومبونت من جدول دليل الحساب من قاعده بيانات اكسيس
واكون شاكر فضلك فى هذه المساعده
تم تعديل هذه المشاركة بواسطة سلامه بيومى في 18 أكتوبر 2009 في 16:06
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…