Главная страница
    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.007 c
3-47997
Alfred
2002-07-27 17:19
2002.08.15
Ошибка


6-48227
nejest
2002-06-01 01:51
2002.08.15
отправка html файла по e-mail


3-47952
Ola
2002-07-22 13:05
2002.08.15
Connect!!!!!!


14-48319
Alexandr
2002-07-11 12:43
2002.08.15
Блондинка за рулем


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