StringGrid
Копирует содержимое ячеек StringGrid в ClipBoard в формате, позволяющем
вставку, например, в Word или Excel. При CopySel=True копирует выделение,
иначе всю таблицу или указанный диапазон (CL- левый столбец и т.д.).
- Подробности
- Родительская категория: StringGrid
- Категория: Буфер обмена
Code: |
Grid.Row := YourRowNumber; Grid.TopRow := YourFirstVisibleRow; Grid.LeftCol := YourFirstVisibleColumn;
|
- Подробности
- Родительская категория: StringGrid
- Категория: Фокус
Я наконец нашел время и создал заказной компонент TWrapGrid, функционально идентичный TStringGrid, но умеющий переносить текст в ячейках. Пока это бета-версия, поэтому поэкспериментируйте с ним, и в случае наличия каких-либо замечаний или предложений не забудьте уведомить об этом меня. При использовании компонента не забывайте про RowHeights (или DefaultRowHeight), т.к. при переносе текста потребуется отобразить несколько строк.
Для использования скопируйте код в модуль, сохраните его с именем 'Wrapgrid.PAS' и следуйте за инструкциями, расположенными в верхней части кода.
Присылайте свой комментарии и пожелания. Вот код:
- Подробности
- Родительская категория: StringGrid
- Категория: Многострочность
Если вы создаете собственный обработчик компонента TStringGrid OnDrawCell, то вы можете нарисовать все, что вам заблагорассудится. Попробуйте, к примеру, это:
- Подробности
- Родительская категория: StringGrid
- Категория: Фокус
Автор: Rick Rogers
У меня есть StringGrid, который выглядит очень красивым, за исключением заголовков колонок, где я хотел бы иметь их размер равным 1 ячейке, но с заголовком, размещенным в нескольких строках, например,
Индекс Фондовой Биржи
показывалось бы как
Индекс
Фондовой
Биржи
было бы классно, если можно было этот заголовок размещать еще и по центру.
Рисовать сами ячейки вы можете в обработчике события OnDrawCell. Для определения ячейки (заголовок?), обрабатываемой в текущий момент, используйте параметр GridState.
Я выводил тест с помощью обычных методов рисования (которые хорошо "приживаются" в данном компоненте), с поддержкой вертикального выравнивания, полей и переноса слов. Вот сам код:
- Подробности
- Родительская категория: StringGrid
- Категория: Многострочность
Автор: Simon
Code: |
procedure SetGridFocus(SGrid: TStringGrid; r, c: integer); var SRect: TGridRect; begin with SGrid do begin SetFocus; {Передаем фокус сетке} Row := r; {Устанавливаем Row/Col} Col := c; SRect.Top := r; {Определяем выбранную область} SRect.Left := c; SRect.Bottom := r; SRect.Right := c; Selection := SRect; {Устанавливаем выбор} end; end;
//Для вызова процедуры:
SetGridFocus(StringGrid1, 10, 2); |
Это всегда срабатывает в случае, если никакая ячейка не выбрана или фокус имеет другой элемент управления.
- Подробности
- Родительская категория: StringGrid
- Категория: Фокус
Code: |
Procedure GridRemoveColumn(StrGrid: TStringGrid; DelColumn: Integer); Var Column: Integer; begin If DelColumn <= StrGrid.ColCount then Begin For Column := DelColumn To StrGrid.ColCount-1 do StrGrid.Cols[Column-1].Assign(StrGrid.Cols[Column]); StrGrid.ColCount := StrGrid.ColCount-1; End; end; |
- Подробности
- Родительская категория: StringGrid
- Категория: Многострочность
Данный код переводит ввод на другую колонку. При достижении конца колонок, ввод перемещается на следующую строку. При достижении самого конца сетки, управление перемещается в ее самое начало - естественно, вы можете изменить это поведение, и передавать управление в этом случае другому элементу управления.
- Подробности
- Родительская категория: StringGrid
- Категория: Клавиатура
Пользователь может перемещать строки и колонки StringGrid при помощи мышки. Можно ли это сделать программно? В описании TCustomGrid можно увидеть методы MoveColumn и MoveRow, однако они скрыты в TStringGrid. Но нам ничего не мешает просабклассить TStringGrid и объявить эти методы как public:
- Подробности
- Родительская категория: StringGrid
- Категория: Перемещение строк, столбцов и ячеек
Следующий пример демонстрирует перехват сообщения CM_DIALOGCHAR на уровне формы. Это даст нам возможность реагировать на диалоговые комбинации клавишь только, если нажата клавиша Alt, не давая тем самым отработать стандартному обработчику.
- Подробности
- Родительская категория: StringGrid
- Категория: Клавиатура
Code: |
{ **** UBPFD *********** **** >> Обмен строк StringGrid Обмен содержимого указанных строк StringGrid. Варианты без копирования связанных с ячейками объектов и вместе с ними. Зависимости: Grids Автор: Борис Новгородов (MBo), Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра., Новосибирск Copyright: MBo ***************************************************** } procedure SGExchangeRows(SG: TStringGrid; Row1, Row2: Integer); var TempString: string; begin if (Row1 in [0..SG.RowCount - 1]) and (Row2 in [0..SG.RowCount - 1]) then begin TempString := SG.Rows[Row1].Text; SG.Rows[Row1].Assign(SG.Rows[Row2]); SG.Rows[Row2].Text := TempString; end; end;
procedure SGExchRowsWithObj(SG: TStringGrid; Row1, Row2: Integer); var TempList: TStringList; begin with SG do if (Row1 in [0..RowCount - 1]) and (Row2 in [0..RowCount - 1]) then begin TempList := TStringList.Create; TempList.Assign(Rows[Row1]); Rows[Row1].Assign(Rows[Row2]); Rows[Row2].Assign(TempList); TempList.Free; end; end; |
- Подробности
- Родительская категория: StringGrid
- Категория: Перемещение строк, столбцов и ячеек
Страница 1 из 6