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




Вниз

Создать выпадающий список в StringGride, типа Lookup в DBGride 


Кто нибудь делал?   (2001-12-14 08:12) [0]

Пробовал создавать форму с BorderStyle=bsNone а на ней ListBox, работает, но во время ее появления заголовок формы становиться неактивным.
При использовании компонентов, они не могут выйти за пределы формы.
Может кто уже поборол подобное.



Владислав   (2001-12-14 08:47) [1]

Может контекстное меню попробовать?



Кто нибудь делал?   (2001-12-14 09:04) [2]

Спасибо Владислав.
Я уже думал об этом: морока с перерисовкой, нужно, что бы выглядело как нормальный выпадающий список.
Может можно окну задать какой стиль, что бы оно не деактивировло основное?



Владислав   (2001-12-14 10:42) [3]

Могу тебе скинуть небольшой пример (на скорую руку). Может чем-то поможет.



Mark_a   (2001-12-15 11:16) [4]

На форме должен быть StringGrid и ComboBox
Используйте следующий код:

procedure TForm1.FormCreate(Sender: TObject);
begin
{Высоту combobox"а не изменишь, так что вместо combobox"а
будем изменять высоту строки grid"а !}
StringGrid1.DefaultRowHeight := ComboBox1.Height;
StringGrid1.Cells[3,0]:= "Здесь выпадает список";
{Спрятать combobox}
ComboBox1.Visible := False;
ComboBox1.Items.Add("Первый пункт");
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.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;



vlv   (2001-12-15 11:43) [5]

В библиотеке RX есть класс что-то типа TPopupWindow...




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




Наверх





Память: 0.73 MB
Время: 0.027 c
6-22282           Mamed                 2001-10-08 10:08  2002.01.08  
ПОМОЩ ПОМОЩ!!! до 01/11 Как написат программу для работы в Pocket CE?


1-22128           vinni2000             2001-12-18 17:17  2002.01.08  
RichEdit!!!!!!!!!!!!!!!!!


3-21958           bk                    2001-12-05 19:15  2002.01.08  
Pomogite kto moget ADO Unikal nomer


1-22115           DerZky                2001-12-19 18:14  2002.01.08  
Как сравнить даты и разницу между ними получить Integer


3-21989           Борис                 2001-12-06 15:50  2002.01.08  
При написании запроса в TQuery загружаются все записи.