Главная страница
    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-48010
Alexsys
2002-07-25 21:43
2002.08.15
Поиск в табличке по неполному слову по нескольким полям


14-48288
cyborg
2002-07-22 10:21
2002.08.15
Sound Forge


1-48038
BAY
2002-08-03 14:37
2002.08.15
А из Новосибрска есть кто?


8-48213
Javlon
2002-04-11 11:53
2002.08.15
OpenGl Создание обекта


14-48252
Бармен
2002-07-19 16:24
2002.08.15
Как вам это?





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