Главная страница
    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
3-1195455544
oxffff
2007-11-19 09:59
2008.04.13
SQL выражение в ADO вызывает исключение в msvcrt.dll


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


15-1204034089
sds
2008-02-26 16:54
2008.04.13
Есть программа которая работает с БД.


15-1203982965
BlackSun
2008-02-26 02:42
2008.04.13
Полупрозрачный заголовок формы в XP


2-1205841012
Washington
2008-03-18 14:50
2008.04.13
ADO и DLL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский