Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];

Вниз

Помогите компонентом-табличкой...   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.008 c
2-1205901637
HTML
2008-03-19 07:40
2008.04.13
Html редактор


2-1205944504
vegarulez
2008-03-19 19:35
2008.04.13
Вопрос про передачу UDP инди 10.


15-1204011180
Small Donkey
2008-02-26 10:33
2008.04.13
Интернет радио


2-1205833337
Dima
2008-03-18 12:42
2008.04.13
Как узнать расширение воспроизводимого файла


2-1205773174
SpellCaster
2008-03-17 19:59
2008.04.13
Условное компилирование модулей





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский