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

Вниз

Help. Нужно встроить комбобокс с стринггрид.   Найти похожие ветки 

 
Ura   (2002-08-02 12:01) [0]

Посмотрел примеры на сайте. Комбобокс просто не отображается.
Код такой
//-----------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
{Высоту у combobox не получится установить, поэтому мы будем}
{подгонять размер у грида под размер combobox!}
StringGrid1.DefaultRowHeight := ComboBox1.Height;
{Скрываем combobox}
ComboBox1.Visible := False;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
{Получаем выбранный элемент из ComboBox и помещаем его в грид}
StringGrid1.Cells[StringGrid1.Col,
StringGrid1.Row] :=
ComboBox1.Items[ComboBox1.ItemIndex];
ComboBox1.Visible := False;
StringGrid1.SetFocus;
end;

procedure TForm1.ComboBox1Exit(Sender: TObject);
begin
{Получаем выбранный элемент из ComboBox и помещаем его в грид}
StringGrid1.Cells[StringGrid1.Col,
StringGrid1.Row] :=
ComboBox1.Items[ComboBox1.ItemIndex];
ComboBox1.Visible := False;
StringGrid1.SetFocus;
end;

procedure TForm1.StringGrid1SelectCell(Sender: TObject; Col,
Row: Integer; var CanSelect: Boolean);
var
R: TRect;
begin
if ((Col = 3) AND
(Row <> 0)) then begin
{Размер и расположение combobox подгоняем под ячейку}
R := StringGrid1.CellRect(Col, Row);
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;
//-----------------------------


 
MBo   (2002-08-02 12:07) [1]

Здесь все верно. У тебя есть 4-я колонка ( if ((Col = 3) )
комбобокс появляется при выборе ячейки в ней


 
Skier   (2002-08-02 12:08) [2]

>Ura

Может это "мешает" (?) :


if ((Col = 3) AND
(Row <> 0)) then begin



 
Ura   (2002-08-02 12:17) [3]

1. Четверта колонка есть
2. При попаданиии на нее я не вижу комбобокс, но данные из него вставляются в ячеку. НО САМОГО КОМБОБОКА НЕВИЖУ НА ЭКРАНЕ


 
Skier   (2002-08-02 12:22) [4]

>Ura
А как насчёт Row <> 0 ?


 
Виктор Щербаков   (2002-08-02 12:25) [5]

Работает код. Только я исправил
if ((Col = 3) AND
(Row <> 0)) then begin
на
if ((ACol = 3) AND
(ARow <> 0)) then begin


 
MBo   (2002-08-02 12:28) [6]

>Ura
не вижу комбобокс
данные из него вставляются
как так??????????


 
Ura   (2002-08-02 12:35) [7]

Спасибо всем. Разобрался.
Комбобокс лежал на другой панели. И наверное был просто под гридом. Его небыло видно, но данные он вставлят нормально.
Переложил сомбобокс на грид и все заработало!!!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.08.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
3-47927
Life
2002-07-24 17:47
2002.08.15
Как связать данные 2-х таблиц в 1-м DBGird?


4-48356
Эльдар
2002-06-09 16:23
2002.08.15
Вывод текста по центру рисунка


3-47950
Alex_M
2002-07-25 15:59
2002.08.15
Как обойти пароль при подключении к IB через BDE?


14-48278
pkm
2002-07-21 16:23
2002.08.15
FAT


3-48003
BAY
2002-07-27 21:20
2002.08.15
Настройка IBTransaction





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