Главная страница
    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.012 c
14-1123370803
Джо
2005-08-07 03:26
2005.09.04
Киевляне и гости столицы!


5-1097327118
Navi
2004-10-09 17:05
2005.09.04
Коллекции


14-1123497616
ЙЦУКЕН
2005-08-08 14:40
2005.09.04
3D-модели химических соединений


5-1096957853
Jiny
2004-10-05 10:30
2005.09.04
Как закрасить закладки компоненты TPageControl


3-1121934665
Fedelio_
2005-07-21 12:31
2005.09.04
Время работы с DBF на разных машинах





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