powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Автоширина колонок в TDBGrid (TRzDBGrid)
9 сообщений из 9, страница 1 из 1
Автоширина колонок в TDBGrid (TRzDBGrid)
    #40072020
Benten
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую всех знатоков Delphi.
Если есть желание и время помочь, буду очень благодарен.

Я хочу использовать в своей программе стандартный грид для работы с БД - TDBGrid или TRzDBGrid.
В БД SQLite я планирую хранить различные настройки программы, коих вырисовывается не мало.

Столкнулся с ограниченностью стандартного грида. Не могу найти свойство "автоподбор ширины колонок".
Раньше всегда использовал TсxGridDBTableView, так там это решалось двумя кликами
Код: pascal
1.
TсxGridDBTableView.OptionsView.ColumnAutoWidth := True;


Неужели в TDBGrid нет чего-то похожего?
Писать обработчик на событие OnResize лениво.

Может посоветуете другой компонент для следующей задачи:
Слева есть грид, где всего одна колонка с названием раздела настроек. Я хочу, чтобы эта колонка всегда была по ширине компонента.
Перемещаясь между строками грида, рядом активируется карточка для записи БД, где на обычных TDBEdit я редактирую поля, в которых хранятся настройки раздела.

Спасибо всем, кто дочитал до конца.

----------------------------------------------------------------------------
Embarcadero® Delphi 10.4 Version 27.0.38860.1461
...
Рейтинг: 0 / 0
Автоширина колонок в TDBGrid (TRzDBGrid)
    #40072025
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И оно того стоит? Ставить дополнительную бибилиотеку? Если задача действительно настолько примитивна - то проще одну строчку в обработчике стандартного грида написать
...
Рейтинг: 0 / 0
Автоширина колонок в TDBGrid (TRzDBGrid)
    #40072028
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотрю у стандартного грида нет OnResize. Тогда кинь TDBGrid в TPanel, выставь гриду Align=alClient, а у панели назначь эвент OnResize

Код: pascal
1.
2.
3.
4.
procedure TForm1.Panel1Resize(Sender: TObject);
begin
  DBGrid1.Columns[0].Width := DBGrid1.ClientWidth;
end;
...
Рейтинг: 0 / 0
Автоширина колонок в TDBGrid (TRzDBGrid)
    #40072056
Benten
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_nigger, спасибо тебе большое за подсказку.
В принципе, я так и думал, что в TDBGrid нет штатного способа автовыравнивания ширины колонок.
Что ж, буду юзать событие OnResize, тем более, что это не так уж и сложно.
...
Рейтинг: 0 / 0
Автоширина колонок в TDBGrid (TRzDBGrid)
    #40072100
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger
Смотрю у стандартного грида нет OnResize. Тогда кинь TDBGrid в TPanel, выставь гриду Align=alClient, а у панели назначь эвент OnResize
Код: pascal
1.
2.
3.
4.
procedure TForm1.Panel1Resize(Sender: TObject);
begin
  DBGrid1.Columns[0].Width := DBGrid1.ClientWidth;
end;


Серьёзно?..

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
type
  TGridCracker = class(TCustomGrid);

procedure TForm1.DBGrid1_OnResize(Sender: TObject);
begin
  Self.Caption := IntToStr(DBGrid1.Width) + 'x' + IntToStr(DBGrid1.Height);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  TGridCracker(DBGrid1).OnResize := DBGrid1_OnResize;
end;

end.


http://ljubomirdjokicdelphi.blogspot.com/2010/06/tdbgrid-onresize.html
...
Рейтинг: 0 / 0
Автоширина колонок в TDBGrid (TRzDBGrid)
    #40072109
Benten
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alekcvp, да, действительно OnResize в гриде есть
...
Рейтинг: 0 / 0
Автоширина колонок в TDBGrid (TRzDBGrid)
    #40072117
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp
Серьёзно?..
Да. Мой код меньше и делает то, что нужно ТС без всяких крякеров.
...
Рейтинг: 0 / 0
Автоширина колонок в TDBGrid (TRzDBGrid)
    #40072276
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger
Да. Мой код меньше и делает то, что нужно ТС без всяких крякеров.

Попутно добавляя новый контрол и цепочку взаимодействий через align, вместо использования уже существующего события.
С таким подходом я понимаю почему девки такие тормознутые.
...
Рейтинг: 0 / 0
Автоширина колонок в TDBGrid (TRzDBGrid)
    #40072287
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp, ну да, куда уж лучше умничать, давая код который вообще не решает исходную проблему
ТС-а
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Автоширина колонок в TDBGrid (TRzDBGrid)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]