Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.01;
Скачать: CL | DM;

Вниз

StringGrid   Найти похожие ветки 

 
KB ©   (2002-03-19 13:45) [0]

Помогите, плиз
как в StringGrid сделать чтоб ячейки автоматически увеличивались или уменьшалсиь, типи autosize.


 
Song ©   (2002-03-19 13:56) [1]

Ну, например, можно обрабатывать onSetEditText и проверять, что если размер вводимого текста превышает ширину столбца, то увеличивать ширину столбца на размер вводимой буквы, изменяя ColWidths


 
KB ©   (2002-03-19 14:01) [2]

как узнать размер вводимой буквы?


 
Виктор Щербаков ©   (2002-03-19 14:04) [3]

Если известен DC, то можно узнать средний размер буквы выбранного шрифта с помощью GetTextMetrics.
Но проще TCanvas.TextWidth


 
KB ©   (2002-03-19 14:09) [4]

может кинете отрывок кода проги небольшой


 
Сергей Иванов ©   (2002-03-19 14:11) [5]

uses
procedure WriteToCell(Sender :TStringGrid; ACol, ARow :integer; Value :variant);
var
Len: TSize;
begin
with Sender do begin
if Value<>null then Cells[ACol, ARow] := value else Cells[ACol, ARow] := "";
Win32Check(GetTextExtentPoint32(Canvas.Handle, Pchar(Cells[ACol, ARow]),
Length(Cells[ACol, ARow]), Len));
if Len.cx > ColWidths[ACol] then ColWidths[ACol] := Len.cx+6;
if Len.cy > RowHeights[ARow] then RowHeights[ARow] := Len.cy+2;
end;
end;


 
Song ©   (2002-03-19 14:13) [6]

procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
ARow: Integer; const Value: String);
Var Rect:TRect;
begin
With TStringGrid(Sender) Do
Begin
Rect:=CellRect(ACol,ARow);
With Canvas Do
IF TextWidth(Cells[ACol,ARow])>Rect.Right-Rect.Left then
ColWidths[ACol]:=ColWidths[ACol]+TextWidth(Cells[ACol,ARow][Length(Cells[ACol,ARow])]);
End;
end;

Написать-написал, но на работспособность не проверил. Посмотри, чего получиться.


 
Сергей Иванов ©   (2002-03-19 14:14) [7]

PS. Извини, uses с перепугу поставил пустой :(
uses Windows, Sysutils


 
Song ©   (2002-03-19 14:17) [8]

:))
2Сергей Иванов, а чего Вы испугались?
Мы такие страшные?


 
Song ©   (2002-03-19 14:18) [9]

Кстати, в моём примере Cells[ACol,ARow] везде можно в лёгкую заменить на Value.



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

Текущий архив: 2002.04.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
14-312
Дмитрий_Б
2002-02-20 14:09
2002.04.01
Пересылка файлов по ЛВС


14-294
Fellomena
2002-02-13 15:53
2002.04.01
Помяните меня в своих молитвах - в ближайшее время меня обрекли на Фортран =(


6-278
Velocity
2002-01-17 07:28
2002.04.01
BROADCAST-пакет в локалке


14-309
McSimm
2002-02-18 15:47
2002.04.01
Клиент для форумов. Dolphin 1.2. Новая версия.


1-110
Aleksandr
2002-03-19 12:38
2002.04.01
Базовый вопрос: корректно ли в дестракторе нилить указатель на объект?