Текущий архив: 2008.04.13;
Скачать: CL | DM;
Вниз
Помогите компонентом-табличкой... Найти похожие ветки
← →
DevilDevil © (2008-01-31 15:44) [0]как в бате в одном окне: http://devilhome.narod.ru/component.PNG
Крайне желательно, чтобы ячейки таблички обладали возможностью выбора значения из списка.
← →
Andy BitOff © (2008-01-31 18:58) [1]TJvgAskListBox?
← →
wicked © (2008-01-31 19:11) [2]T(Custom)StringGrid
обработать напильником
← →
DevilDevil © (2008-02-28 13:27) [3]Извиняюсь, что вернулся так поздно.
> wicked © (31.01.08 19:11) [2]
> T(Custom)StringGridобработать напильником
это понятно :)
> Andy BitOff © (31.01.08 18:58) [1]
> TJvgAskListBox?
Тут желательно не таскать огромных библиотек как JVCL - свои причины. Идеальный вариант - 1 *.pas :)
Может кто подскажет другие решения (не из JVCL и без напильника) ? Я искал на Torry.net, ничего похожего не нашёл; может я плохо ищу.
← →
Игорь Шевченко © (2008-02-28 13:32) [4]TStringGrid
← →
DevilDevil © (2008-02-28 13:43) [5]> Игорь Шевченко © (28.02.08 13:32) [4]
> TStringGrid
Как к TStringGrid-у привязать выпадающий список, SpinEdit или поле ввода ?
← →
Skier © (2008-02-28 13:59) [6]
> Как к TStringGrid-у привязать выпадающий список, SpinEdit
> или поле ввода ?
как минимум создать его...
← →
DevilDevil © (2008-02-28 14:30) [7]я понимаю, это открытый чемпионат по краткости слова... :)
но убедительная просьба давать развёрнутые ответы.
особенно интересны Grid-ы со встроенной возможностью выпадающих списков, спин-едита и поля ввода.
← →
DiamondShark © (2008-02-28 14:47) [8]
> DevilDevil © (28.02.08 14:30) [7]
Наглеем, батенька.
От готовых компонентов нос воротишь, а сам ничего делать не хочешь.
Ты уже посмотрел, как стандартный ДБГрид сделан? Исходники-то есть.
Ты хотябы посмотрел в справке TCustomGrid и список медотод, доступных для перекрытия?
CreateEditor, TInplaceEdit -- о чём-то говорят?
← →
Игорь Шевченко © (2008-02-28 14:49) [9]
> особенно интересны Grid-ы со встроенной возможностью выпадающих
> списков
А где на твоем рисунке выпадающий список ?
> но убедительная просьба давать развёрнутые ответы.
Сказал бы проще - убедительная просьба давать халяву. А вот хрен тебе.
← →
DevilDevil © (2008-02-28 14:56) [10]> DiamondShark © (28.02.08 14:47) [8]
> Наглеем, батенька.
> Игорь Шевченко © (28.02.08 14:49) [9]
> Сказал бы проще - убедительная просьба давать халяву. А вот хрен тебе.
Узнаю старых добрых Мастеров Delphi ))
> CreateEditor, TInplaceEdit -- о чём-то говорят?
спасибо, буду смотреть.
← →
DevilDevil © (2008-02-28 16:03) [11]хммм, начинаю с самых основ, на форме не появляется... чтож за ерунда?
{ TUniversalFilterGrid }
constructor TUniversalFilterGrid.Create(AOwner: TComponent);
begin
inherited;
Options := Options + [goEditing, goColSizing] - [goRangeSelect];
DefaultRowHeight := 17;
ColCount := 3;
RowCount := 3+1;
FixedCols := 0;
Cells[0, 0] := "Столбец";
Cells[1, 0] := "Условие";
Cells[2, 0] := "Значение";
// Width := 200;
// Height := 100;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Grid := TUniversalFilterGrid.Create(Self);
Grid.Visible := true;
end;
← →
DevilDevil © (2008-02-28 16:21) [12]Вопрос снят, Parent решил проблему.
← →
Семеныч (2008-02-28 16:30) [13]PickList не катит?
← →
DevilDevil © (2008-02-28 16:45) [14]> Семеныч (28.02.08 16:30) [13]
первый раз слышу, рамблер ничего не ответил.
дай линк
← →
DevilDevil © (2008-02-28 17:09) [15]
> CreateEditor, TInplaceEdit -- о чём-то говорят?
Ищу-ищу, пока не нахожу как этим пользоваться.
Пока на уровне предположений:
- нужно переопределить метод CreateEditor и в зависимости от условий, вызывать конструктор соответствующего Editor-а.
- как определить, в какой ячейке происходит редактирование ?
- как привязать SpinEdit и выпадающий список к TInplaceEdit ?
← →
Compiler © (2008-02-28 17:12) [16]StringGrid1.DefaultDrawing:=False
procedure TForm1.FormCreate(Sender: TObject);
begin
{Высоту combobox?а не изменишь, так что вместо combobox?а
будем изменять высоту строки grid?а !}
StringGrid1.DefaultRowHeight := ComboBox1.Height; {Спрятать combobox}
ComboBox1.Visible := False; ComboBox1.Items.Add(?Delphi Kingdom?);
ComboBox1.Items.Add(?Королевство Дельфи?);
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
{Перебросим выбранное в значение из ComboBox в grid}
StringGrid1.Cells[StringGrid1.Col,
StringGrid1.Row] := ComboBox1.Items[ComboBox1.ItemIndex];
ComboBox1.Visible := False; StringGrid1.SetFocus;
end;
procedure TForm1.ComboBox1Exit(Sender: TObject);
begin
{Перебросим выбранное в значение из ComboBox в grid}
StringGrid1.Cells[StringGrid1.Col,
StringGrid1.Row] := ComboBox1.Items[ComboBox1.ItemIndex];
ComboBox1.Visible := False; StringGrid1.SetFocus;
end;
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
var
R: TRect;
begin
if ((ACol = 3) and (ARow <> 0)) then
begin
{Ширина и положение ComboBox должно соответствовать ячейке StringGrid}
R := StringGrid1.CellRect(ACol, ARow); R.Left := R.Left + StringGrid1.Left;
R.Right := R.Right + StringGrid1.Left; R.Top := R.Top + StringGrid1.Top;
R.Bottom := R.Bottom + StringGrid1.Top; ComboBox1.Left := R.Left + 1;
ComboBox1.Top := R.Top + 1; ComboBox1.Width := (R.Right + 1) - R.Left;
ComboBox1.Height := (R.Bottom + 1) - R.Top; {Покажем combobox}
ComboBox1.Visible := True; ComboBox1.SetFocus;
end;
CanSelect := True;
end;
(c) Королевство Delphi
← →
Amoeba © (2008-02-28 17:24) [17]xStringGrid:
http://www.eye.ch/~mduerig/prog/
← →
DevilDevil © (2008-02-28 17:32) [18]> Compiler © (28.02.08 17:12) [16]
спасибо.
а как бороться с такой вот штукой:
http://devilhome.narod.ru/bug.PNG
Кликаю по ячейке в последней строке, в 3м стобце, у комбобокса меняется местоположение, а после потом происходит автоматический скроллинг.
← →
Compiler © (2008-02-28 17:47) [19]> StringGrid1.DefaultDrawing:=False
Это ненужно. Перемудрил чуток.:)
> DevilDevil © (28.02.08 17:32) [18]
У меня никаких глюков нет
← →
Prohodil Mimo © (2008-02-28 18:01) [20]DevilDevil © (28.02.08 17:32) [18]
а это ты где-то в координатах ошибся или поторопился с определением их.
← →
DevilDevil © (2008-02-28 18:37) [21]> У меня никаких глюков нет
> а это ты где-то в координатах ошибся или поторопился с определением их.
Всё сделал, как показали:
http://devilhome.narod.ru/real_bug.PNG
НаDefaultDrawing
не обращайте внимания
← →
Compiler © (2008-02-28 19:03) [22]А-а-а-а. Понял. Или пиши свой обработчик нажатия левой кнопки мыши для StringGrid или делай, чтоб видимой была вся строка, а не половина (как на рисунке)
← →
DevilDevil © (2008-03-03 12:27) [23]> Amoeba © (28.02.08 17:24) [17]
решений много разных, кидаюсь от однго к другому.
не пойму, как связать редактор с ячейкой ?
Страницы: 1 вся ветка
Текущий архив: 2008.04.13;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.007 c