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

Вниз

Как разрешить изменять текст в StringGrid и как получить Reсt   Найти похожие ветки 

 
Kolan ©   (2005-07-04 14:32) [0]

Здравствуйте,
 Сразу два вопроса:
   1: Как разрегшить пользователям менять содержимое ячеек. Не нашел...
   2: Я хотел бы подогнать надписи в я чейках под их ширину. Для этого у меня есть функция котороя подгоняет текст под определенный Rect.

function TMainForm.AdjustStringToRect(DC: HDC; S: string;
 Rect: TRect): string;
var
 P: PChar;
begin
 P := AllocMem(Length(S) + 1);
 StrCopy(P, PChar(S));
 Rect.BottomRight.X := Rect.BottomRight.X - 2;
 DrawText(DC, P, Length(s), Rect,
   DT_SINGLELINE or DT_CALCRECT or DT_LEFT or
   DT_MODIFYSTRING or DT_PATH_ELLIPSIS);
 Result := P;
 FreeMem(P);
end;


Как мне получить Rect каждой ячейки.


 
begin...end ©   (2005-07-04 14:39) [1]

> Kolan ©   (04.07.05 14:32)

> Как разрегшить пользователям менять содержимое ячеек.

TCustomGrid.Options + goEditing.

> Как мне получить Rect каждой ячейки.

TCustomGrid.CellRect.


 
Думкин ©   (2005-07-04 14:43) [2]

> P := AllocMem(Length(S) + 1);
>  StrCopy(P, PChar(S));
....
>  Result := P;
>  FreeMem(P);

?


 
begin...end ©   (2005-07-04 14:45) [3]

> Думкин ©   (04.07.05 14:43) [2]

Всё нормально. Кроме отсутствия try/finally и использования устаревших функций.


 
Думкин ©   (2005-07-04 14:49) [4]

> [3] begin...end ©   (04.07.05 14:45)

Да? Ну ладно. А резалт куда? И где подгонка текста - в упор не вижу?

Автору: посмотри для начала статью Паши Голубя про многострочный TStyringGrid.


 
begin...end ©   (2005-07-04 14:51) [5]

> Думкин ©   (04.07.05 14:49) [4]

> А резалт куда?

В строке
> Result := P
копируется не указатель, а тело строки.

> И где подгонка текста - в упор не вижу?

DT_CALCRECT ?


 
Kolan ©   (2005-07-04 14:54) [6]

Как до них добраться?
пробовал так

TFakeGrid=class(TCustomGrid);

var
 I: Integer;
 OptionsSet: TGridOptions;
...
 OptionsSet := TFakeGrid(ReportGrid).Options;
 Include(OptionsSet, goEditing);
 TFakeGrid(ReportGrid).Options := OptionsSet;


Это правильно.


 
Думкин ©   (2005-07-04 14:59) [7]


>  [5] begin...end ©   (04.07.05 14:51)
> > И где подгонка текста - в упор не вижу?
>
> DT_CALCRECT ?

И что? Где-то вычисленная высота используется?


 
Kolan ©   (2005-07-04 14:59) [8]


> Думкин ©   (04.07.05 14:49) [4]


Хорошо. А эта функция обрежет строку вот так:
Some String -> Som...ing. В зависимости от длинны прямоугольника.


> Это правильно.

Читакть как - Это правильно?


 
begin...end ©   (2005-07-04 15:04) [9]

> Kolan ©   (04.07.05 14:54) [6]

Grid.Options := Grid.Options + [goEditing]

> Думкин ©   (04.07.05 14:59) [7]

DT_MODIFYSTRING ?


 
Думкин ©   (2005-07-04 15:04) [10]

А...
я это в DrawCell все делал. Ясно.


 
Kolan ©   (2005-07-04 15:09) [11]


> Думкин ©   (04.07.05 14:59) [7]


Возми проверь. Кинь Edit. И используй функцию...


 
Kolan ©   (2005-07-04 15:22) [12]


> begin...end ©   (04.07.05 15:04) [9]


Намудрил я... :)


 
Думкин ©   (2005-07-05 08:59) [13]

> [11] Kolan ©   (04.07.05 15:09)

Я это понимаю. Просто речь была о TStringGrid - там решается все у меня иначе. И обрезание есть и подгонка высоты и хинты если надо - поэтому в  код и не въехал сходу... лишнего для себя заметил. и всего.



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

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

Наверх





Память: 0.47 MB
Время: 0.01 c
9-1111844692
wiz
2005-03-26 16:44
2005.07.25
Rust (Public Demo)


4-1117287880
zeroo
2005-05-28 17:44
2005.07.25
Как отловить нажатие клавиши TAB


14-1120124105
stone
2005-06-30 13:35
2005.07.25
Hello, World. На разных языках


9-1112994430
Yegorchic
2005-04-09 01:07
2005.07.25
Модель Солн. Системы


14-1120244921
ArMellon
2005-07-01 23:08
2005.07.25
Дайте образ загрузочного диска win98 или Me





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