Jump to content

آستفسآر عن قريد ليست ( Dx )


Recommended Posts

سلام عليكم

لو آني مبتدآ بآلدي آكس , ومآ آعرف آصمم فيه شي

بقدر آسوي قريد ليست دي آكس , ولآ آلآمر صعب شوية ويحتآج خبرة ؟

ـــ

+ gui لو لوحة دي آكس , وآلقريد ليست 

بتكون شكل آللوحة مب حلو ولآ عآدي ؟

Link to comment
24 minutes ago, *RayaN-Alharbi. said:

بالعكس مو صعبة بالنسبة لك ك متمرس وخبير بالغة لكن صعبه عليه ك متعلم وبتدئ بالغة

هو فعليا يعتمد علي الحساب بنسبه 99% و الباقي الي هو فقط

dxDrawRectangle

عشان ترسمه , ذا الجزء الوحيد الي له علاقه بالبرمجه

 

  • Like 1
Link to comment

درجة الصعوبة تعتمد على الي تبي تسويه

مثلاً تقدر تسويه بدون columns

وهذا بيكون ابسط شي

 

اما لو بتسويه مثل العادي بالمميزات الي فيه ف هذا صعب عليك ويحتاج منك خبرة عشان تحاول تخليه بقدر الامكان مايسبب لاق

Link to comment
1 hour ago, H25 said:

درجة الصعوبة تعتمد على الي تبي تسويه

مثلاً تقدر تسويه بدون columns

وهذا بيكون ابسط شي

 

اما لو بتسويه مثل العادي بالمميزات الي فيه ف هذا صعب عليك ويحتاج منك خبرة عشان تحاول تخليه بقدر الامكان مايسبب لاق

اها تمام

Link to comment
11 hours ago, Mr.Mostafa said:

طيب يعتمد علي آلريآضيآت بوش بآلظبط ؟

22 hours ago, Master_MTA said:

لانه اصعب شي قابلني تقريبا اثناء صنعي بالدي اكس جريد لست  بحيث انك  تحسب  scroll + تقلل عمليات الرسم 

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

يعني بشكل اوضح مثلا طبعا مثال

لو عندك اكثر من row

بدال ما تسوي drawText

لكل row

يمديك تستخدم 1 

لكل ال row

هذا مثال طبعا ما ادري هل يمديك تطبقه او لا

عالعموم بالتوفيق

Link to comment

راح يكون عندك أعمدة وصفوف لكل عمود صف فيه عناصر محددة عشان تسوي هذه الطريقة بالخوارزمية التالية



-- ثوابث نحتاجها
COL_WIDTH_BY_SINGLE_CHAR = 10 -- هذا ثابت نضربه في حجم نص العمود عشان يعطينا طول يوازي نص العمود
COL_MARGIN_RIGHT = 15 -- نعطي مسافة فاصلة بين كل نص عمود
ROW_HEIGHT = 24 -- طول الصف

local cols = {"#", "name", "score"}
local rows = {
	-- {VALUE_FOR_COLUMN_1, VALUE_FOR_COLUMN_2, VALUE_FOR_COLUMN_3}
	{"1", "Tn6el", "300000"},
	{"2", "Player", "0"},
	-- {...} وتضيف المزيد من الصفوف
}

-- ولاضافة على الشاشة نستخدم

local x, y = 0, 0 -- احداثيات القائمة

local pcol_x = COL_MARGIN_RIGHT -- متغير يعطينا اخر احداثيات العمود
for i=1, #cols do
	local ctext = cols[i] -- نص العمود
	-- #text تعطينا طول النص
	-- ملاحظة اذا كان عربي يعطيك طول النص مرتين فاستخدم وظائف utf8
	
	text(ctext, x+pcol_x, ROW_HEIGHT/2) -- مثال لعرض النص  للعمود

	-- نعرض الصفوف لكل عمود
	for j=1, #rows do
		--
		local rtext = rows[i] -- نص الصفوف للعمود رقم i
		local row_y = (j+1)*ROW_HEIGHT -- نعرض الصفوف تحت بعض
		-- حيث نضرب رقم ترتيب الصف في الطول للصف ويعطينا نتيحة ان جميع الصفوف تحت بعض
		text(rtext, pcol_x, row_y) -- مثال لعرض النص للصف
		-- draw rows
	end
	-- نحدث احداثيات اخر عمود عشان نستخدمه للمرة القادمة
	pcol_x += (#ctext*COL_WIDTH_BY_SINGLE_CHAR)+COL_MARGIN_RIGHT
			(طول النص * ثابت يمثل عرض كل حرف) + المسافة الفاصلة
end

 

سأشرح لك الطريقة بالخطوات

أولا نعمل لوب للعواميد عشان نعرض بيانات الصفوف لها

يعني لكل عمود صفوف خاصة فيها واحداثيات

في الللوب الأول نعرض اسم العمود على الشاشة ونحسب مكانه على الشاشة كما وضحنا بالكود

اما باللوب الثاني اننا نسوي لوب داخل اللوب الأول عشان تتكرر العملية لكل عمود

نبدأ نحسب مكان الصف افقياً اي نجعلها تحت العمود الخاص به ونعرضها كما وضحنا بالكود

 

طبعا الطرق كثيرة لكن هذه ابسطها والله أعلم واعذرني اذ كان هناك خطأ

  • Thanks 3
Link to comment
7 minutes ago, </Mr.Tn6eL> said:

راح يكون عندك أعمدة وصفوف لكل عمود صف فيه عناصر محددة عشان تسوي هذه الطريقة بالخوارزمية التالية



-- ثوابث نحتاجها
COL_WIDTH_BY_SINGLE_CHAR = 10 -- هذا ثابت نضربه في حجم نص العمود عشان يعطينا طول يوازي نص العمود
COL_MARGIN_RIGHT = 15 -- نعطي مسافة فاصلة بين كل نص عمود
ROW_HEIGHT = 24 -- طول الصف

local cols = {"#", "name", "score"}
local rows = {
	-- {VALUE_FOR_COLUMN_1, VALUE_FOR_COLUMN_2, VALUE_FOR_COLUMN_3}
	{"1", "Tn6el", "300000"},
	{"2", "Player", "0"},
	-- {...} وتضيف المزيد من الصفوف
}

-- ولاضافة على الشاشة نستخدم

local x, y = 0, 0 -- احداثيات القائمة

local pcol_x = COL_MARGIN_RIGHT -- متغير يعطينا اخر احداثيات العمود
for i=1, #cols do
	local ctext = cols[i] -- نص العمود
	-- #text تعطينا طول النص
	-- ملاحظة اذا كان عربي يعطيك طول النص مرتين فاستخدم وظائف utf8
	
	text(ctext, x+pcol_x, ROW_HEIGHT/2) -- مثال لعرض النص  للعمود

	-- نعرض الصفوف لكل عمود
	for j=1, #rows do
		--
		local rtext = rows[i] -- نص الصفوف للعمود رقم i
		local row_y = (j+1)*ROW_HEIGHT -- نعرض الصفوف تحت بعض
		-- حيث نضرب رقم ترتيب الصف في الطول للصف ويعطينا نتيحة ان جميع الصفوف تحت بعض
		text(rtext, pcol_x, row_y) -- مثال لعرض النص للصف
		-- draw rows
	end
	-- نحدث احداثيات اخر عمود عشان نستخدمه للمرة القادمة
	pcol_x += (#ctext*COL_WIDTH_BY_SINGLE_CHAR)+COL_MARGIN_RIGHT
			(طول النص * ثابت يمثل عرض كل حرف) + المسافة الفاصلة
end

 

سأشرح لك الطريقة بالخطوات

أولا نعمل لوب للعواميد عشان نعرض بيانات الصفوف لها

يعني لكل عمود صفوف خاصة فيها واحداثيات

في الللوب الأول نعرض اسم العمود على الشاشة ونحسب مكانه على الشاشة كما وضحنا بالكود

اما باللوب الثاني اننا نسوي لوب داخل اللوب الأول عشان تتكرر العملية لكل عمود

نبدأ نحسب مكان الصف افقياً اي نجعلها تحت العمود الخاص به ونعرضها كما وضحنا بالكود

 

طبعا الطرق كثيرة لكن هذه ابسطها والله أعلم واعذرني اذ كان هناك خطأ

غبت وغاب الابداع ورجعت تعدل الاوضاع يا ولكم :mrgreen:

Link to comment
On 07/09/2018 at 20:04, </Mr.Tn6eL> said:

راح يكون عندك أعمدة وصفوف لكل عمود صف فيه عناصر محددة عشان تسوي هذه الطريقة بالخوارزمية التالية



-- ثوابث نحتاجها
COL_WIDTH_BY_SINGLE_CHAR = 10 -- هذا ثابت نضربه في حجم نص العمود عشان يعطينا طول يوازي نص العمود
COL_MARGIN_RIGHT = 15 -- نعطي مسافة فاصلة بين كل نص عمود
ROW_HEIGHT = 24 -- طول الصف

local cols = {"#", "name", "score"}
local rows = {
	-- {VALUE_FOR_COLUMN_1, VALUE_FOR_COLUMN_2, VALUE_FOR_COLUMN_3}
	{"1", "Tn6el", "300000"},
	{"2", "Player", "0"},
	-- {...} وتضيف المزيد من الصفوف
}

-- ولاضافة على الشاشة نستخدم

local x, y = 0, 0 -- احداثيات القائمة

local pcol_x = COL_MARGIN_RIGHT -- متغير يعطينا اخر احداثيات العمود
for i=1, #cols do
	local ctext = cols[i] -- نص العمود
	-- #text تعطينا طول النص
	-- ملاحظة اذا كان عربي يعطيك طول النص مرتين فاستخدم وظائف utf8
	
	text(ctext, x+pcol_x, ROW_HEIGHT/2) -- مثال لعرض النص  للعمود

	-- نعرض الصفوف لكل عمود
	for j=1, #rows do
		--
		local rtext = rows[i] -- نص الصفوف للعمود رقم i
		local row_y = (j+1)*ROW_HEIGHT -- نعرض الصفوف تحت بعض
		-- حيث نضرب رقم ترتيب الصف في الطول للصف ويعطينا نتيحة ان جميع الصفوف تحت بعض
		text(rtext, pcol_x, row_y) -- مثال لعرض النص للصف
		-- draw rows
	end
	-- نحدث احداثيات اخر عمود عشان نستخدمه للمرة القادمة
	pcol_x += (#ctext*COL_WIDTH_BY_SINGLE_CHAR)+COL_MARGIN_RIGHT
			(طول النص * ثابت يمثل عرض كل حرف) + المسافة الفاصلة
end

 

سأشرح لك الطريقة بالخطوات

أولا نعمل لوب للعواميد عشان نعرض بيانات الصفوف لها

يعني لكل عمود صفوف خاصة فيها واحداثيات

في الللوب الأول نعرض اسم العمود على الشاشة ونحسب مكانه على الشاشة كما وضحنا بالكود

اما باللوب الثاني اننا نسوي لوب داخل اللوب الأول عشان تتكرر العملية لكل عمود

نبدأ نحسب مكان الصف افقياً اي نجعلها تحت العمود الخاص به ونعرضها كما وضحنا بالكود

 

طبعا الطرق كثيرة لكن هذه ابسطها والله أعلم واعذرني اذ كان هناك خطأ

شرحك بطل

ياريت يكون افاده مثل مفادني

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...