powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DBGrid как отловить событие расширения колонки
8 сообщений из 8, страница 1 из 1
DBGrid как отловить событие расширения колонки
    #39921129
woojin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрейшего вечерка форумчане!

пытаюсь немного переписать DBGrid под свои нужды, на данный момент в шапке колонки можно сделать не ограниченное число строк (установив их количество)

хочется сделать так чтобы ширина оставалась как была установленная в параметрах, а на основе этого длинную строку разделить на строки так чтобы они по ширине вписались в установленную ширину столбца

перед вводом заголовка (Caption) ширина столбца 20, после уже 538
Код: pascal
1.
2.
3.
wb:=dbg.Columns[0].Width;    // ----->ширина 20
  dbg.Columns[0].Title.Caption := 'длинная строка которую надо уместить в ширину столбца без его увеличения после ввода этой строки';
  wa:=dbg.Columns[0].Width;    // ----->ширина 538


пробовал отладчиком пройтись по коду
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
unit Data.DB;

.....................................................

procedure TField.SetDisplayLabel(Value: string);
begin
  if Value = FFieldName then Value := '';
  if FDisplayLabel <> Value then
  begin    // -----> здесь ещё 20
    FDisplaylabel := Value;    // -----> с этой строки перепрыгивает в модуль System
    PropertyChanged(True);    // -----> а тут уже 538
  end;
end;



Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
unit System;

.....................................................

procedure _UStrAsg(var Dest: UnicodeString; const Source: UnicodeString); // globals (need copy)
{$IFDEF PUREPASCAL}

.....................................................

{$ELSE !PUREPASCAL}
{$IFDEF CPUX86}
asm

.....................................................

@@2:    XCHG    EDX,[EAX]    // -----> до этой строчки ширина столбца ещё 20, а после уже 538 
        TEST    EDX,EDX
        JE      @@3
        MOV     ECX,[EDX-skew].StrRec.refCnt
        DEC     ECX
        JL      @@3

.....................................................

end;
{$ENDIF CPUX86}
{$ENDIF !PUREPASCAL}



подскажите каким образом отловить расширение столбца при вводе длинного названия
...
Рейтинг: 0 / 0
DBGrid как отловить событие расширения колонки
    #39921138
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
DBGrid как отловить событие расширения колонки
    #39921154
woojin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
там много интересного написано, но ответа на свой вопрос я так и не нашёл(((
ни сообщения указывающего на действие ни самого действия

можете пояснить?
...
Рейтинг: 0 / 0
DBGrid как отловить событие расширения колонки
    #39921334
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотрите, что вызывается здесь
woojin
Код: pascal
1.
PropertyChanged(True);

может какой-то обработчик OnChange найдете
...
Рейтинг: 0 / 0
DBGrid как отловить событие расширения колонки
    #39921339
V.Borzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В потомках TCustomGrid для отслеживания изменения ширины колонок можно переопределять ColWidthsChanged, используя override, она динамическая.
...
Рейтинг: 0 / 0
DBGrid как отловить событие расширения колонки
    #39921420
woojin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V.Borzov
В потомках TCustomGrid для отслеживания изменения ширины колонок можно переопределять ColWidthsChanged, используя override, она динамическая.


было бы не плохо, если бы не одно НО, в эту процедуру уже приходят данные о увеличенном размере

видимо надо как то запомнить размер до увеличения и уже вернуть его обратно после увеличения
...
Рейтинг: 0 / 0
DBGrid как отловить событие расширения колонки
    #39921424
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
woojin,

Запоминай в предыдущем вызове этого же события.
...
Рейтинг: 0 / 0
DBGrid как отловить событие расширения колонки
    #39923830
woojin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем спасибо!
пока искал решение наткнулся на очень хороший компонент SMDBGrid
в нём оказалось всё как мне надо))
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DBGrid как отловить событие расширения колонки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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