Главная страница
    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
1-48091
EternalWonderer
2002-08-05 11:25
2002.08.15
Как


3-47999
lety
2002-07-26 22:19
2002.08.15
фильтрация в dbf


14-48253
Эндрю2
2002-07-17 21:01
2002.08.15
Поиск по DOC файлам


6-48242
Ampersand
2002-05-31 07:42
2002.08.15
Запретить работу по TCP/IP


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





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