|
|
|
Подстройка высоты в MSFlexGrid под содержимое
|
|||
|---|---|---|---|
|
#18+
Кто подскажет, как можно подстроить высоту строки в MSFlexGrid под ее содержимое. Пробовал вычислять по длине строки, но с WordWrap=TRUE все мои вычисления идут "насмарку", к тому же я использую слияние строк: вот и получается, то много установил, то мало. Есть лучше алгоритм (и быстрый)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 06:32:41 |
|
||
|
Подстройка высоты в MSFlexGrid под содержимое
|
|||
|---|---|---|---|
|
#18+
Разве никто не знает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2004, 05:58:50 |
|
||
|
Подстройка высоты в MSFlexGrid под содержимое
|
|||
|---|---|---|---|
|
#18+
Пытался ширину измянять от кол-ва текста, не получилось.... учитывал и размер шрифта и т.д. Возми другой грид. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2004, 17:47:19 |
|
||
|
Подстройка высоты в MSFlexGrid под содержимое
|
|||
|---|---|---|---|
|
#18+
Что-то совсем все затихли, а ведь мне надо очень. Мне удалось найти процедуру, которая в зависимости от параметра "max длина строки" разбивает оригинальную строку на строку с несколькими vbCrLf. НО! MSFlexGrid не переносим строки если не указать WordWrap (не наше ничего, что было бы похоже на MultiLine в TextBox), а с установленным WordWrap она опять переносит не по vbCrLf в строке, а по своему. Причем не так, как я разбиваю с помощью своей функции. А значит, у меня другое число строк. Как так?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 05:55:18 |
|
||
|
Подстройка высоты в MSFlexGrid под содержимое
|
|||
|---|---|---|---|
|
#18+
Для MikeTech: Какой другой грид? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 05:57:05 |
|
||
|
Подстройка высоты в MSFlexGrid под содержимое
|
|||
|---|---|---|---|
|
#18+
vsflexgrid pro 7.... Ширину ячейки точно изменяет по кол-ву текста.... есть свойство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2004, 13:36:47 |
|
||
|
Подстройка высоты в MSFlexGrid под содержимое
|
|||
|---|---|---|---|
|
#18+
vsflexgrid pro 7.... Ширину ячейки точно изменяет по кол-ву текста.... есть свойство. Интересно, но меня интересует высота. Впрочем, возможно это опечатка, дома посмотрю vsflexgrid. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2004, 06:24:07 |
|
||
|
Подстройка высоты в MSFlexGrid под содержимое
|
|||
|---|---|---|---|
|
#18+
На одном немецком сайте нашел такой трюк: создаём Label и устанавливаем шрифт в полном соответствии со шрифтом в нужной ячейке MSFlexGrid. Дальше даём AutoSize и WordWrap у лейбела = TRUE и пихаем текст ячейки в лейбел. Размеры ячейки изменяем теперь в соответствии с новыми размерами Label... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2004, 01:54:04 |
|
||
|
Подстройка высоты в MSFlexGrid под содержимое
|
|||
|---|---|---|---|
|
#18+
VBaserНа одном немецком сайте нашел такой трюк ... А вот и сам код. Я поигрался у себя немного, наилучшие результаты получил вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. конечно, lblJustifier.Visible желательно установить в False . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2004, 18:26:20 |
|
||
|
Подстройка высоты в MSFlexGrid под содержимое
|
|||
|---|---|---|---|
|
#18+
ostap можно TextBox-ом... Это в модуль. Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Это в форму Option Explicit Const EM_GETLINECOUNT = &HBA Private Sub Form_Load() Dim i As Long, j As Long With flx .WordWrap = True .Rows = 10 .Cols = 3 For i = 0 To 9 For j = 0 To 2 .TextMatrix(i, j) = "dfhjgkljhfg" & vbCrLf & "dfhefgjghjfgjk" Next AdjustRowHeight flx, i Next End With End Sub Private Sub AdjustRowHeight(flx As MSHFlexGrid, ByVal i As Long) Dim j As Long Dim lngHeight As Long, lngLinesOfText As Long If flx.RowHeightMin Then flx.RowHeight(i) = flx.RowHeightMin For j = 1 To flx.Cols - 1 flx.Col = j Text1.Width = Abs(flx.CellWidth) Text1.Text = flx.Text ' высота строки lngHeight = Me.TextHeight(Text1.Text) lngLinesOfText = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0&, 0&) If flx.RowHeight(i) < lngLinesOfText * lngHeight Then flx.RowHeight(i) = lngLinesOfText * lngHeight + 50 End If Next j End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2004, 11:33:09 |
|
||
|
|

start [/forum/topic.php?fid=60&gotonew=1&tid=2168739]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 328ms |

| 0 / 0 |
