|
|
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
Здравсте, всем!!! Я извиняюсь, но просмотрел по запросу топики - стоящего не нашёл :-( Я хочу свой ДатаГрид, который, по-моемому, используется в типичном приложении Access, когда открываются таблицы, сделать примерно таким же, то есть, что бы ширина столбцов чуток была больше самого длинного текста в этом столбце. Я пробовал сделать так: пробегаю по всему столбцу ДатаГрида, измеряю ширину текста в каждой ячейке этого столбца с помощью функции TextWidth и ищу ширину самого длинного текста. При этом за начальное максимальное значение беру ширину Заголовка столбца. Но проблема в то, что эта функция работает лишь если размер шрифта везде одинаковый, хотя тоже сбои даёт. Вобщем, не совсем верно эта функция работает. Прошу, подскажите, как можно измерять длину/ширину текста какого-либо объекта в точности. И, может быть, для датагрида есть его собственный способ подходить под нужные рамки. Хотя мутата с Меткой, как предложено было на немецком сайте, тоже может подойти, хотя и муторно, но если припрёт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 15:27 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
ДисаНо проблема в то, что эта функция работает лишь если размер шрифта везде одинаковый, хотя тоже сбои даёт. Вобщем, не совсем верно эта функция работает.Проблема в том, что TextWidth использует шрифт, который установлен на форме. Если присвоить форме тот же шрифт, что и гриду, то проблем не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 15:36 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
Antonariy ДисаНо проблема в то, что эта функция работает лишь если размер шрифта везде одинаковый, хотя тоже сбои даёт. Вобщем, не совсем верно эта функция работает.Проблема в том, что TextWidth использует шрифт, который установлен на форме. Если присвоить форме тот же шрифт, что и гриду, то проблем не будет. Спасибо за совет, но в том и вся соль, что форму или что-либо другое трогать не надо, а надо трогать и тискать до потери сознания текст и шрифт и прочее у ДатаГрида. Вот тут можешь помочь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 15:41 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
с TextWidth не знаком =) может по кол-ву знаков считать а потом это значение на некий *пиксельный-эталон* умножить и задать для столбца? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 15:46 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
JaneDoeс TextWidth не знаком =) может по кол-ву знаков считать а потом это значение на некий *пиксельный-эталон* умножить и задать для столбца? эта мысль верна лишь, если шрифт равноширинный (типа Courier New) и известен этот эталон его символов, а если шрифт пропорциональный типа Times New Roman или ещё какой, то тут уже надо знать ширину каждого отдельного символа, так как у каждго символа она разная. Ну, ясно же, что и Автосайз у Метки не с потолка работает, а знает эти длины ширины. Может кто тоже знает, где их искать. А? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 15:50 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
а ты выбери самую широкую букву методом экспериментов например буква "Ш" мне кажется довольно широкой и на ее основе попробуй этот вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 15:57 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
JaneDoeа ты выбери самую широкую букву методом экспериментов например буква "Ш" мне кажется довольно широкой и на ее основе попробуй этот вариант. широкая - это да, но тогда и ширина текста получиться чёрте какая, а мне надо, чтоб не хуже, понимаешь, чем в Аксессе. Чтобы два раза кликнул мышу, а столбец - раз, и точно по ширине самого длинного текста выровнялся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 16:03 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
а если так что бы самое длинное значение из столбца копировалось в поле у которого autosize, а параметры его ширины передавать столбцу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 16:09 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
JaneDoeа если так что бы самое длинное значение из столбца копировалось в поле у которого autosize, а параметры его ширины передавать столбцу? именно этот способ я и нашёл здесь, но мжет есть лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 16:17 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
посмотри там http://www.java2s.com/Code/VB/2D/FontMetricsIllustration.htm может оно =) сам не разбирался так что х3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 16:54 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
JaneDoeпосмотри там http://www.java2s.com/Code/VB/2D/FontMetricsIllustration.htm может оно =) сам не разбирался так что х3 может и то, но то вроде язык Си или нет, ВБ.Нет! Хотя может подобное есть и в ВБ Спасибо, вобщем! Но тема ещё открыта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2007, 08:04 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
Как на счет гридов сторонних разработчиков? True DBGrid например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2007, 08:19 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
WorobjoffКак на счет гридов сторонних разработчиков? True DBGrid например. Если дадите его Длл или ОСиИкс или что у него там, то я с радостью рассмотрю возможные варианты, но пока у меня стандартный, вернее, не стандартный ДатаГрид. Хотя в АПИ я нашёл нечто вразумительное (которое считает попиксельно длину текста, вернее позицию Карета, но это только, если он в текстбоксе например, а так ничего не делает), но вот прошу подсказки: hdc - что это за параметр, от кого его надо брать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2007, 16:46 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
ну... hDC это вроде как контекст устройства... ну например form1.hdc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2007, 17:02 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
Я вроде сам же свою проблему решил!!! Как говориться всё гениальное просто: оказалось мозгой порой надо раскинуть или наоборот не думать и не напрягаться и оно само всё придёт. Если нужен совет, как под размер текста подстраиваться, готов поделиться своим решением, оно щас точно работает и очень даже неплохо. Хотя пришло всё не само, а я просто сложил данные мне тут советы и получилось супер. Кто советы давал — спасибо!!! Кому он самим нужен, готов поделиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 14:30 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
имхо выложи решение =) что бы другие в поиске нашли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 14:35 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
JaneDoeимхо выложи решение =) что бы другие в поиске нашли Выкладывать всё не буду, мне же не всё на блюдце давали, а вот на мысль навести — можно. Просто идея та же, что и высказывал: пробежать по всему Гриду, по каждому столбцу, в каждом - по строкам, измерить ширину максимально длинного текста, включая и заголовки столбцов(полей). Всё измеряю с помощью TextWidth, но вот только предварительно фонту формы присваиваю фонт либо Грида либо.....ну, там догадывайтесь уже сами. Я же сказал, всё гениальное просто☺ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 14:40 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
ну вот.. первый же ответ в этой теме тебе и предлагал это сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 15:07 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
JaneDoeну вот.. первый же ответ в этой теме тебе и предлагал это сделать Но просто так присвоить ничего не надо, надо с умом всё же присваивать, везде свои хитрости нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 15:58 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
авторНо просто так присвоить ничего не надо, надо с умом всё же присваивать, везде свои хитрости нужны. про хитрости не могу ничего сказать - не знаю твоей ситуации(почему нельзя было сразу так сделать, а надо было хитрить) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2007, 16:42 |
|
||
|
DataGrid как в Access
|
|||
|---|---|---|---|
|
#18+
dontKnow авторНо просто так присвоить ничего не надо, надо с умом всё же присваивать, везде свои хитрости нужны. про хитрости не могу ничего сказать - не знаю твоей ситуации(почему нельзя было сразу так сделать, а надо было хитрить) Надеюсь жизнь научит!-)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2007, 09:03 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=231&tid=2163884]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
19ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 286ms |

| 0 / 0 |
