• 0
Mazzay

Как в TStringGrid или TGrid зафиксировать первый столбец

Вопросы

Есть хоть какая-нибудь возможность зафиксировать первый столбец, чтобы он не прокручивался?

То есть нужен аналог свойства FixedCols из VCL,

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 ответ на этот вопрос

  • 0

Сделал в результате два грида: левый — с одним столбцом, правый — с остальными. Прокрутку синхронизировал:

void __fastcall TMainForm::Grid2ViewportPositionChange(TObject *Sender, const TPointF &OldViewportPosition, const TPointF &NewViewportPosition,
					const bool ContentSizeChanged)
{
	Grid1->ViewportPosition = TPointF(Grid1->ViewportPosition.X, Grid2->ViewportPosition.Y);
}

void __fastcall TMainForm::Grid1ViewportPositionChange(TObject *Sender, const TPointF &OldViewportPosition, const TPointF &NewViewportPosition,
					const bool ContentSizeChanged)
{
	Grid2->ViewportPosition = TPointF(Grid2->ViewportPosition.X, Grid1->ViewportPosition.Y);
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От SIARHEI RAHOUSKI
      Здравствуйте, у меня возник вопрос Как базу данных подключить к TGrid? Я использую Delphi XE3 и База данных Accsess: ADOConnection + ADOQuery + DataSource. И вот как отобразить в TGrid Таблицу бд ?
    • От Niddarun
      На форме стоит tgrid при прокрутке есть заддержка. не большая но все равно не приянто. программа под windows. И еще при прокрутке идет нагрузка на процессор. 
    • От Sashar333
      Здравствуйте!
      Помогите разобраться пожалуйста.
      Delphi 10.1 и 10.2, Windows
      Программа прекрасно работала и программировалась.
      Добавил две колонки в StringGrid:

      сразу понял что не красиво и попытался их удалить(ничего в программе больше не менял и не добавлял!?) таким образом:

      но после нажатии кнопки "Delete" получил сообщение:

      дальше программировать, данный проект, нет возможности из таких сообщений и дальнейших разрушительных сбоев
      при новой загрузке проекта в DELPHI все работает и запускается, Project1.exe из Debug'а тоже работает.
      Но стоит только в DELPHI попытать что то сделать(бывает достаточно навести курсор мыши) с именно этим StringGrid то сразу выдает ошибки:


      помогает полное удаление StringGrid но так как 
      это не в первый раз и в разных версиях это сильно напрягает
      переустановки delphi не помогают
      может кто знает в чем дело?
      Заранее спасибо за ответ...
    • От GoldenEalge
      Всем привет, подскажите как организовать MultiSelect в grid
      Нашел статью ,но как понимаю она уже не очень актуальна
      Поиск по форуму тоже не дал результатов
    • От Павел Караваев
      Добрый вечер, форумчане! Возможно ли менять ширину разделительных линий в StringGrid'е, гугол мне с этим не помог. Мне необходимо каждую пятую вертикальную и каждую пятую горизонтальную линию чуть шире остальных.(Delphi 10.2, Windows)
    • От Павел Караваев
      Люди добрые, помогите) Я не понимаю, как закрасить ячейки в зависимости от информации в данной ячейке. Если в ячейке 1, то нужно покрасить белым, если 0, то чёрным. Имеющиеся на форуме ответы не помогают, ячейки не красятся=(
    • От Freezer_86
      Пишу кроссплатформенное приложение. Результат поиска отображается в TGrid. Стал вопрос отображения картинки в одной из колонок.
      На Windows все ок, но на планшете происходят просто чудеса: при первом отображение все корректно, но если простоколить вверх-вниз как картинки одни перетираются другими, часть вообще отображается вверх ногами.
      Код для сохранение картинки(jpg) в базу:
      if Assigned(sm) then begin sm.Position := 0; //TBlobField(dmData.cdsPlayerData.FieldByName('Photo')).LoadFromStream(sm); vImage := TImage.Create(nil); try sm.Position := 0; vImage.Bitmap.LoadFromStream(sm); vKoef := vImage.Bitmap.Height / 64; vImage.Bitmap.Resize(Trunc(vImage.Bitmap.Width / vKoef), Trunc(vImage.Bitmap.Height / vKoef)); sm.Free; sm := TMemoryStream.Create(); try vImage.Bitmap.SaveToStream(sm); TBlobField(dmData.cdsPlayerData.FieldByName('SmallPhoto')).LoadFromStream(sm); finally sm.Free; end; finally vImage.Free; end; end{if}; До скрола:

      После скрола:

      Пробовал и LiveBinding, и ручную прорисовку - результат один и тот же. Есть идеи что не так?
      P.S. Знаю что нужно делать через TListView, но заказчик хочет «сеточку как в старой программе», так как на android будет работать только на планшетах – я согласился.
       
    • От Clio
      Добрый день !
      В приложении я использую базу SQLite (полt, содержащие дату и время тип REAL) . В TFDQuery я описал это поле - тип Float и через LiveBindings подключил к TGrid (Date Column). 
      Но в гриде отображается только год, а не полное время. 
      Подскажите, пожалуйста, как необходимо настроить поле в Query и TGrid, чтобы дата и время отображалась правильно.
    • От ENERGY
      Нужно сделать компонент TGrid. Стандартный Grid не подходит, потому что нужно чтобы строки (raws) были разной высоты, а также чтобы была возможность соединять (сливать) ячейки.
      Я решил сделать его на основе TListView и его DynamicAppearance. Использовать кастомные объекты, отнаследованные от TListItemObject + возможность рисовать на Canvas каждого ListItem, например прямоугольники.
      Т.к. колонки он не поддерживает, есть идея использовать THeader и подстраивать их под размер своих колонок. Также важно быстродействие компонента.
      Как вы думаете есть ли в этом смысл?
      Возможно кто-то уже занимался подобным, и может что-нибудь посоветовать.
      Спасибо.
       
    • От ENERGY
      1. Можно ли установить разную высоту у ячеек (точнее raws)?
      2. Можно ли объединять ячейки?
      3. Если писать свой компонент, и отнаследоваться от ScrollBox - то при отрисовке всех ячеек, будут ли отрисовываться невидимые ячейки или TscrollBox игнорирует и не отрисовывает невидимую часть?  Или лучше стоит отнаследоваться от TScrollContent и высчитывать самостоятельно? Компонент не будет связан со стилями. Как будет быстрее в плане производительности компонента?
      4. Что лучше для этого случая TScrollContent или TScrollBox?
      4. Если 1 и 2 - нет, то придется писать свой компонент - возможно у вас будут какие то рекомендации на этот счет.
      Спасибо. Очень жду ваш ответ.
      @RoschinSpb
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу