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

Вниз

Давайте мне поможем с DbgridEh из Ehlib   Найти похожие ветки 

 
vopros ©   (2003-03-14 10:39) [0]

Пользователи хотят чтобы высота строк соответсвовала размеру содержимого этих строк. ТОбишь как в Printdbgrideh-RowStretch.
Я еще не разбирался но Вас прощу помочь дабы время не тратить много весна все таки.
Да, сейчас влюблен в Наташу- замечательную девушку из медцентра где я кодировался от алкоголя. Собрались расписать летом.Извините за оффтопик.


 
Danilka ©   (2003-03-14 10:55) [1]

:)))
весна это хорошо, влеблен в Наташку, вообще класс, а вот расписаться... поживи с этой Наташкой сначала пару лет, потом поймешь, хочется тебе расписываться или нет.

А по теме, DbgridEh, честно говоря, не видел, для своего грида, насленика от стринггрида делать примерно так:
В обработчике OnPressKey толи OnKeyUp (уже не помню, давно дело было) проверял, сколько строк в тексте и потом:

RowHeights[i]:=y*canvas.TextHeight("W")+5;
InplaceEditor.Height:=RowHeights[i];

были еще какие-то приколы, но их я уже не помню...


 
Кулюкин Олег ©   (2003-03-14 12:11) [2]

Я делал это с обычным гридом.

THackGrid = class(TDBGrid)
public
property RowHeights;
property DataLink;
end;

procedure TGeogrObjProp.DBGrid2DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var R : TRect;
S : String;
Y : integer;
begin
if not (Sender as TDBGrid).DataSource.DataSet.IsEmpty then
begin
R := Rect;
S := (Sender as TDBGrid).DataSource.DataSet.FieldByName("Comment").AsString;
Y := DrawText((Sender as TDBGrid).Canvas.Handle, PChar(S), -1, R, DT_WORDBREAK or DT_CALCRECT);
if Y > THackGrid(Sender).RowHeights[THackGrid(Sender).DataLink.ActiveRecord + 1] then
THackGrid(Sender).RowHeights[THackGrid(Sender).DataLink.ActiveRecord + 1] := Y;
R := Rect;
R.Bottom := R.Top + Y;
DrawText((Sender as TDBGrid).Canvas.Handle, PChar(S), -1, R, DT_LEFT or DT_WORDBREAK);
end;
end;
end;


 
Danilka ©   (2003-03-14 12:18) [3]

Кулюкин Олег © (14.03.03 12:11)
а как во время едита? ;))


 
Кулюкин Олег ©   (2003-03-14 13:08) [4]

2 Danilka © (14.03.03 12:18)
Никак :)
Только смотреть.

В вопросе не было сказано, что надо редактировать. :)


 
Danilka ©   (2003-03-14 13:11) [5]

Кулюкин Олег © (14.03.03 13:08)
точно нет. :))
это все весна пополам с тяпницей...


 
Кулюкин Олег ©   (2003-03-14 13:12) [6]

2 Danilka © (14.03.03 13:11)
Надо подумать как лучше сделать с редактированием.


 
Danilka ©   (2003-03-14 13:32) [7]

Кулюкин Олег © (14.03.03 13:12)
с этим геморой еще тот... надо сделать свой InplaceEdit-ор - стандартный TInplaceEdit пишет все в одну строку, можно наследоваться и от него, и переопределить CreateParams примерно вот-так:

procedure TDanInplaceEdit.CreateParams(var Params: TCreateParams);
const
Alignments: array[TAlignment] of DWORD = (ES_LEFT, ES_RIGHT, ES_CENTER);
begin
inherited CreateParams(Params);
if wrapEdit then
with Params do Style := Style or Alignments[FAlignment] xor ES_AUTOHSCROLL
else with Params do Style := Style or Alignments[FAlignment] or ES_AUTOHSCROLL;
end;


Потом надо обьяснить гриду, чтобы он пользовался этим едитором, вместо стандартного, и в нем уже, при редактировании при обработке нажатия клавиши смотреть сколько строк получается и в соответствии с этим увеличивать/уменьшать высоту строки грида.


 
Danilka ©   (2003-03-14 13:42) [8]

но вообще, это только начало гемороя :))
затем захочется, чтобы во время редактирования ячейки можно було менять выравнивание текста, по левому/правому краю, по центру (по-крайней мере мне захотелось) и еще всяких фичь, вобщем, едитор сам распухнет очень даже нехило...


 
Mike Kouzmine   (2003-03-14 13:43) [9]

В OptionEh что-то типа dghFitRow что-то там Text



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

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

Наверх




Память: 0.49 MB
Время: 0.017 c
14-100461
Maximator Vetera
2003-03-14 15:32
2003.03.31
Переход между листами в Excel 97 с помощью горячей клавиши


1-100244
Vlad Oshin
2003-03-18 16:25
2003.03.31
Как получить цветовые составляющие произвольной точки.


3-100164
Val_123
2003-03-11 13:25
2003.03.31
Изменение записи MySQL таблице


8-100346
Konstantin
2002-12-20 20:21
2003.03.31
Размерность . Wav файла


7-100489
Lexa2003
2003-01-24 23:53
2003.03.31
Запуск программы при старте Windows