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

Вниз

Как в ячейку StringGrid а вставить ComboBox?   Найти похожие ветки 

 
IceBeerg ©   (2005-08-11 18:24) [0]

1ый вопрос собственно сабж.
2ой вопрос как изменить шрифт отделной строки StringGrid"а, например сделать текст жирным?


 
Kazakh   (2005-08-12 07:30) [1]

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


 
begin...end ©   (2005-08-12 07:52) [2]

> IceBeerg ©   (11.08.05 18:24)

> как изменить шрифт отделной строки StringGrid"а, например сделать текст жирным?

TCustomDrawGrid.OnDrawCell.


 
han_malign ©   (2005-08-12 09:55) [3]

>begin...end ©   (12.08.05 07:52) [2]
- в TStringGrid - тоже пройдет, при этом не придется самому контейнер делать под ячейки...

>IceBeerg ©   (11.08.05 18:24)
>2ой вопрос как изменить шрифт отделной строки StringGrid"а, например сделать текст жирным?
- примерно так:
procedure TParamsForm.sgParamsDrawCell(Sender: TObject; ACol,
 ARow: Integer; Rect: TRect; State: TGridDrawState);
var _color: TColor;
   _fs: TFontStyles;
begin
 with sgParams do begin
   _color:=Canvas.Brush.Color;
   _fs:=Canvas.Font.Style;
   if((aRow>0)and(State<>[gdSelected]))then begin
     if(not CanEditCell(ACol,ARow))
     then Canvas.Brush.Color:=$F0F0F0;
     if((ACol<4)and(Objects[0,aRow]<>nil))then begin
Canvas.Font.Style:=TParam(Objects[0,aRow]).FontStyle(_fs,aCol>2);
Canvas.Brush.Color:=TParam(Objects[0,aRow]).Color(Canvas.Brush.Color,aCol>2);
     end;
   end;
   Canvas.TextRect(Rect, Rect.Left+2, Rect.Top+2, Cells[ACol, ARow]);
   Canvas.Brush.Color:=_color;
   Canvas.Font.Style:=_fs;
 end;
end;
</cide>


 
begin...end ©   (2005-08-12 09:59) [4]

> han_malign ©   (12.08.05 09:55) [3]

> в TStringGrid - тоже пройдет

Дык... я и не опровергал это. Просто событие ввели в TCustomDrawGrid, поэтому я и написал так. Поскольку TStringGrid является потомком TCustomDrawGrid, в нём это событие, конечно, тоже есть.



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

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

Наверх





Память: 0.45 MB
Время: 0.013 c
14-1123738422
TUser
2005-08-11 09:33
2005.09.04
Мы ведь не все отвинчиваем...


4-1121604685
FRick
2005-07-17 16:51
2005.09.04
GUID видеокарты


3-1122275206
SLP
2005-07-25 11:06
2005.09.04
timeout expired


2-1089278540
Думкин
2004-07-08 13:22
2005.09.04
Для поддержки


6-1116523854
Dj_Dreamer
2005-05-19 21:30
2005.09.04
VPN! Организовать передачу файлов





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