سترينغريد هو عنصر في بيئة البرمجة دلفي مصممة لعرض وتحرير جدول في شكل شبكة. واحدة من المعلمات الهامة التي يمكن أن نحدد في سترينغريد هو توبرو — عدد السلسلة التي سيتم عرضها في الجزء العلوي من المكون. تعريف توبروو هو السؤال الذي يمكن أن يسبب صعوبات لكثير من المبرمجين ، وخاصة المبتدئين.
لتعريف توبرو في سترينغريد ، يمكنك استخدام خاصية توبرو. تتيح لك هذه الخاصية تعيين أو الحصول على رقم السطر الذي سيتم عرضه في الجزء العلوي من المكون. على سبيل المثال ، إذا كنت تريد أن يتم عرض الصف الأول من الجدول في الجزء العلوي من سترينغريد ، يمكنك استخدام التعليمات البرمجية التالية:
سترينجريد1.توبرو: = 1;
وبالتالي ، فإن الخاصية توبروو يسمح لك لتغيير حيوي السلسلة المعروضة في سترينغريد ، اعتمادا على الحاجة. من خلال تعيين قيم مختلفة ل توبروو ، يمكنك السماح للمستخدم لعرض أجزاء مختلفة من الجدول والتنقل من خلال ذلك.
من المهم ملاحظة أن قيم الخاصية العلوية يمكن أن تكون سالبة. على سبيل المثال ، إذا قمت بتعيين قيمة أعلى إلى -1 ، سيعرض مكون سترينجريد الصف الأخير من الجدول في الأعلى. يمكن أن يكون هذا مفيدا إذا كنت بحاجة إلى عرض أحدث البيانات في جدول ، على سبيل المثال ، عند الفرز للخلف أو التمرير للخلف.
- دلفي: حساب توبرو في سترينجريد
- طرق لحساب توبرو في سترينغريد
- سؤال وجواب
دلفي: حساب توبرو في سترينجريد
سترينغريد هو عنصر في بيئة تطوير دلفي ، وهو جدول يتكون من الصفوف والأعمدة. ومع ذلك ، عندما يتجاوز عدد الصفوف في الجدول حجم مكون سترينجريد ، تصبح مهمة حساب توبرو ذات صلة.
توبرو هو خاصية مكون سترينغريد الذي يحدد مؤشر الصف المرئي العلوي في الجدول. عند تمرير الجدول لأعلى أو لأسفل ، تتغير قيمة الصفحة العلوية لعرض الصفوف المقابلة.
لحساب توبرو في سلسلةشبكة وتحديد مؤشر الصف المرئي العلوي ، تحتاج إلى أن تأخذ في الاعتبار الموقف الحالي من شريط التمرير وحجم كل صف. يمكن تقسيم العملية إلى الخطوات التالية:
- احصل على الموضع الحالي لشريط التمرير العمودي
- حدد ارتفاع كل صف في الجدول مسبقا
- احسب فهرس الصف المرئي العلوي باستخدام موضع شريط التمرير الحالي وارتفاع كل صف
وفيما يلي نموذج رمز دلفي مما يدل على حساب توبرو في سترينغريد:
الإجراء رقم 1.أوبداتيتوبروو;
فار
سكرولبوس: عدد صحيح;
ارتفاع: عدد صحيح;
صفوفصفحة: عدد صحيح;
توبروينديكس: عدد صحيح;
بيغن
// احصل على الموضع الحالي لشريط التمرير العمودي
سكرولبوس := GetScrollPos(StringGrid1.Handle, SB_VERT);
// Заранее определить высоту каждой строки в таблице
RowHeight := StringGrid1.RowHeights[0];
// Рассчитать количество строк, помещающихся на одной странице
RowsPerPage := StringGrid1.ClientHeight div RowHeight;
// Рассчитать индекс верхней видимой строки
TopRowIndex := ScrollPos div RowHeight;
// Установить значение toprow в StringGrid
StringGrid1.TopRow := TopRowIndex;
end;
. ثم يحدد ارتفاع كل سطر وعدد الأسطر التي تناسب صفحة واحدة. وأخيرا ، تقوم الدالة بحساب فهرس السلسلة المرئية العليا وتعيين القيمة العليا إلى سترينجريد.
وهكذا ، باستخدام هذا المثال ، يمكنك حساب توبروو في سترينغريد وتحديث القيمة وفقا للتمرير من الجدول.
طرق لحساب توبرو في سترينغريد
سترينغريد هو عنصر في بيئة التنمية دلفي التي تسمح لك لعرض البيانات كجدول. واحدة من الإعدادات الهامة من سترينغريد هو خاصية توبرو ، الذي يحدد عدد الصف الذي يبدأ عرض البيانات في الجدول.
لحساب قيمة توبرو في سترينغريد ، يمكنك استخدام عدة طرق:
- استخدام الخاصية توبرو: توفر هذه الخاصية الوصول إلى رقم الصف العلوي الحالي في الجدول. وبالتالي ، يمكنك ببساطة قراءة قيمة هذه الخاصية للحصول على القيمة العليا.
- حساب ارتفاع الصف: لتحديد قيمة أعلى الصفحة ، يمكنك استخدام ارتفاع الصف في الجدول. على سبيل المثال ، إذا كان الجدول يحتوي على ارتفاع صف ثابت ، فيمكنك تقسيم التمرير الرأسي على ارتفاع الصف وتقريب النتيجة لأسفل للحصول على القيمة العلوية.
- باستخدام طريقة روفرومديسبلايبوس: تسمح لك هذه الطريقة بتحديد رقم الصف من خلال إحداثيات العرض في الجدول. لحساب قيمة توبروو ، يمكنك استخدام إحداثيات الصف المرئي العلوي واستدعاء طريقة روفرومديسبلايبوس ، ويمر هذه الإحداثيات إليها.
مثال على استخدام طريقة توبرو:
فار
توبرو: عدد صحيح;
بيغن
توبرو: = سترينجريد1.توبرو;
شومسيج ('توبرو الحالي:' + إنتوستر(توبرو));
النهاية;
مثال على الحساب بناء على ارتفاع الصف:
فار
توبرو: عدد صحيح;
بيغن
توبرو: = سترينجريد1.شريط التمرير.موقف شعبة سترينجريد1.DefaultRowHeight;
ShowMessage('Текущий toprow: ' + IntToStr(topRow));
end;
Пример использования метода RowFromDisplayPos:
var
topRow: Integer;
displayPos: TGridCoord;
begin
displayPos := StringGrid1.DisplayCoord[0, 0];
topRow := StringGrid1.RowFromDisplayPos(displayPos.X, displayPos.Y);
ShowMessage('Текущий toprow: ' + IntToStr(topRow));
end;
Вычисление значения toprow в StringGrid позволяет контролировать видимость данных в таблице и управлять отображением строк. إذا لزم الأمر ، يمكنك أيضا استخدام سلسلة أخرىطرق الشبكة والخصائص لتحديد أكثر دقة قيمة توبروو.