Сортиране на колони в DBGrid
Сортиране на колони в DBGrid
- размер на шрифта намалете размера на шрифта увеличете размера на шрифта
- Печат
Сортиране на колони в DBGrid
Много професионални приложения показват данни в мрежови полета и ви позволяват да сортирате всяка колона, като просто щракнете върху заглавието й. Това, което е посочено тук, не е най-добрият начин за решаване на проблема, тази технология не е нищо повече от обикновена имитация на поведението на такъв компонент.
Основната пречка при решаването на проблема е самата DBGrid. Проблемът е, че няма събития OnClick или OnMouseDown, които ви позволяват да реагирате на елементарни манипулации със заглавки. Вярно е, че има събитие OnDoubleClick, но то не е много елегантно за тази цел. Всичко, което трябва да направим, е да направим заглавието да реагира на едно щракване. Нека се обърнем към компонента THeaderControl.
THeaderControl е компонент, който беше въведен в палитрата обратно в Delphi 2.0 и осигурява необходимата ни функционалност. Основното предимство е реакцията на компонента, когато щракнете върху отделни панели, панелите също така осигуряват визуален дисплей като бутон (те могат да се натискат навътре и навън). Трябва да "свържем" THeaderControl с DBGrid. Ето как да го направите:
Първо, създайте ново приложение. Поставете THeaderControl във формуляра. Той автоматично ще се подреди към горната част на формуляра. След това поставете DBGrid във формуляра и задайте свойството Align на alClient. След това добавете компонентите TTable и TDataSource. В компонента TTable задайте свойството DatabaseName на DBDEMOS и свойството TableName на EVENTS.DB. В TDataSource задайте свойството DataSet на компонента Table1, а в TDBGrid в свойството DataSource на DataSource1. Ако свойството Active на компонента TTable е било сиво, активирайте го (стойност True). Сега нека направим малко магия!
Нека направим така, че компонентът THeaderControl да изглежда подобно на заглавката на компонента DBGrid. Нека направим необходимите манипулации по време на създаването на формата. Щракнете двукратно върху събитието OnCreate на формуляра и въведете следния код: