Главная страница
    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
3-1122273709
Talan
2005-07-25 10:41
2005.09.04
"Глючит" Filter


2-1093966312
Mihass
2004-08-31 19:31
2005.09.04
Нужна Помощь в разработке программы


14-1123683162
Kerk
2005-08-10 18:12
2005.09.04
Абрамович предложил своим футболистам отдохнуть на Чукотке


14-1123259592
Джо
2005-08-05 20:33
2005.09.04
Какую еду предпочитают программисты?


1-1124071417
Uin
2005-08-15 06:03
2005.09.04
GIF в Image





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