עבור לתוכן

הסבר בבקשה לקוד קצר בDelphi

Featured Replies

פורסם

זה הקוד:

Procedure TForm2.DBGrid1TitleClick(Column: TColumn);

{$J+}

const PreviousColumnIndex : integer = 1;

{$J-}

begin

if DBGrid1.DataSource.DataSet is TCustomADODataSet then

with TCustomADODataSet(DBGrid1.DataSource.DataSet) do

begin

try

DBGrid1.Columns[PreviousColumnIndex].title.Font.Style :=

DBGrid1.Columns[PreviousColumnIndex].title.Font.Style - [fsBold];

except

end;

Column.title.Font.Style :=

Column.title.Font.Style + [fsBold];

PreviousColumnIndex := Column.Index;

if (Pos(Column.Field.FieldName, Sort) = 1)

and (Pos(' DESC', Sort)= 0) then

Sort := Column.Field.FieldName + ' DESC'

else

Sort := Column.Field.FieldName + ' ASC';

end;

end;

הפרוצדורה עובדת מצוין, היא אמורה להפעיל sorting על עמודות בDBGrid ע"י לחיצה על Titles.

הבעיה שלי היא שאני לא מבין את השימוש בpos וב"משתנה" sort, אשר בכלל לא מוגדר.

אם יש פה מישהו שמבין/ה את הקוד, בבקשה השאירו לי הסבר קצר.

תודה מראש, קובי.

פורסם

אני מנחש ש- sort זה משתנה שמוגדר על ה- form ואמור להכיל את החלק של מחרוזת ה- SQL שמטפלת בסידור.

pos זאת פונקציה של פסקל שמחזירה לך את מיקום המחרוזת הראשונה בתוך המחרוזת השניה, ו- 0 אם היא לא שם.

כשמקליקים על הכותרת של העמודה, הפרוצדורה מחפשת את השם של השדה במחרוזת ההסידור.

אם הוא שם וגם הסידור הוא בסדר עולה אז היא הופכת את הסדר, אחרת - היא מסדרת בסדר עולה לפי השדה.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים