Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.53 MB
Время: 0.02 c
15-1204209605
Interior
2008-02-28 17:40
2008.04.13
Видео чат по локальной сети


2-1205531607
DJ_UZer
2008-03-15 00:53
2008.04.13
скроллбар и курсор в мемо


11-1187243502
Александр-2006
2007-08-16 09:51
2008.04.13
Про KOLWord


4-1186469502
kotbazilio
2007-08-07 10:51
2008.04.13
Active Desktop


15-1204098805
Ega23
2008-02-27 10:53
2008.04.13
GUID - насколько уникален?