powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / DataGrid как в Access
21 сообщений из 21, страница 1 из 1
DataGrid как в Access
    #34578077
Диса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравсте, всем!!!

Я извиняюсь, но просмотрел по запросу топики - стоящего не нашёл :-(
Я хочу свой ДатаГрид, который, по-моемому, используется в типичном приложении Access, когда открываются таблицы, сделать примерно таким же, то есть, что бы ширина столбцов чуток была больше самого длинного текста в этом столбце.
Я пробовал сделать так: пробегаю по всему столбцу ДатаГрида, измеряю ширину текста в каждой ячейке этого столбца с помощью функции TextWidth и ищу ширину самого длинного текста. При этом за начальное максимальное значение беру ширину Заголовка столбца. Но проблема в то, что эта функция работает лишь если размер шрифта везде одинаковый, хотя тоже сбои даёт. Вобщем, не совсем верно эта функция работает.

Прошу, подскажите, как можно измерять длину/ширину текста какого-либо объекта в точности. И, может быть, для датагрида есть его собственный способ подходить под нужные рамки. Хотя мутата с Меткой, как предложено было на немецком сайте, тоже может подойти, хотя и муторно, но если припрёт
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34578125
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДисаНо проблема в то, что эта функция работает лишь если размер шрифта везде одинаковый, хотя тоже сбои даёт. Вобщем, не совсем верно эта функция работает.Проблема в том, что TextWidth использует шрифт, который установлен на форме. Если присвоить форме тот же шрифт, что и гриду, то проблем не будет.
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34578144
Диса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy ДисаНо проблема в то, что эта функция работает лишь если размер шрифта везде одинаковый, хотя тоже сбои даёт. Вобщем, не совсем верно эта функция работает.Проблема в том, что TextWidth использует шрифт, который установлен на форме. Если присвоить форме тот же шрифт, что и гриду, то проблем не будет.

Спасибо за совет, но в том и вся соль, что форму или что-либо другое трогать не надо, а надо трогать и тискать до потери сознания текст и шрифт и прочее у ДатаГрида. Вот тут можешь помочь?
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34578166
JaneDoe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с TextWidth не знаком =)
может по кол-ву знаков считать а потом это значение на некий *пиксельный-эталон* умножить и задать для столбца?
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34578191
Диса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaneDoeс TextWidth не знаком =)
может по кол-ву знаков считать а потом это значение на некий *пиксельный-эталон* умножить и задать для столбца?

эта мысль верна лишь, если шрифт равноширинный (типа Courier New) и известен этот эталон его символов, а если шрифт пропорциональный типа Times New Roman или ещё какой, то тут уже надо знать ширину каждого отдельного символа, так как у каждго символа она разная. Ну, ясно же, что и Автосайз у Метки не с потолка работает, а знает эти длины ширины. Может кто тоже знает, где их искать. А?
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34578233
JaneDoe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ты выбери самую широкую букву методом экспериментов
например буква "Ш" мне кажется довольно широкой и на ее основе попробуй этот вариант.
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34578264
Диса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaneDoeа ты выбери самую широкую букву методом экспериментов
например буква "Ш" мне кажется довольно широкой и на ее основе попробуй этот вариант.

широкая - это да, но тогда и ширина текста получиться чёрте какая, а мне надо, чтоб не хуже, понимаешь, чем в Аксессе. Чтобы два раза кликнул мышу, а столбец - раз, и точно по ширине самого длинного текста выровнялся
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34578290
JaneDoe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если так что бы самое длинное значение из столбца копировалось в поле у которого autosize, а параметры его ширины передавать столбцу?
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34578323
Диса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaneDoeа если так что бы самое длинное значение из столбца копировалось в поле у которого autosize, а параметры его ширины передавать столбцу?
именно этот способ я и нашёл здесь, но мжет есть лучше?
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34578481
JaneDoe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотри там
http://www.java2s.com/Code/VB/2D/FontMetricsIllustration.htm
может оно =)
сам не разбирался так что х3
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34579745
Диса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaneDoeпосмотри там
http://www.java2s.com/Code/VB/2D/FontMetricsIllustration.htm
может оно =)
сам не разбирался так что х3

может и то, но то вроде язык Си или нет, ВБ.Нет! Хотя может подобное есть и в ВБ

Спасибо, вобщем! Но тема ещё открыта.
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34579771
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как на счет гридов сторонних разработчиков?
True DBGrid например.
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34581748
Диса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WorobjoffКак на счет гридов сторонних разработчиков?
True DBGrid например.

Если дадите его Длл или ОСиИкс или что у него там, то я с радостью рассмотрю возможные варианты, но пока у меня стандартный, вернее, не стандартный ДатаГрид. Хотя в АПИ я нашёл нечто вразумительное (которое считает попиксельно длину текста, вернее позицию Карета, но это только, если он в текстбоксе например, а так ничего не делает), но вот прошу подсказки: hdc - что это за параметр, от кого его надо брать.
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34581818
JaneDoe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну...
hDC это вроде как контекст устройства...
ну например form1.hdc
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34586213
Диса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вроде сам же свою проблему решил!!!
Как говориться всё гениальное просто: оказалось мозгой порой надо раскинуть или наоборот не думать и не напрягаться и оно само всё придёт. Если нужен совет, как под размер текста подстраиваться, готов поделиться своим решением, оно щас точно работает и очень даже неплохо. Хотя пришло всё не само, а я просто сложил данные мне тут советы и получилось супер. Кто советы давал — спасибо!!! Кому он самим нужен, готов поделиться
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34586230
JaneDoe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо выложи решение =)
что бы другие в поиске нашли
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34586244
Диса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaneDoeимхо выложи решение =)
что бы другие в поиске нашли

Выкладывать всё не буду, мне же не всё на блюдце давали, а вот на мысль навести — можно.

Просто идея та же, что и высказывал: пробежать по всему Гриду, по каждому столбцу, в каждом - по строкам, измерить ширину максимально длинного текста, включая и заголовки столбцов(полей). Всё измеряю с помощью TextWidth, но вот только предварительно фонту формы присваиваю фонт либо Грида либо.....ну, там догадывайтесь уже сами. Я же сказал, всё гениальное просто☺
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34586335
JaneDoe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вот.. первый же ответ в этой теме тебе и предлагал это сделать
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34586460
Диса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaneDoeну вот.. первый же ответ в этой теме тебе и предлагал это сделать

Но просто так присвоить ничего не надо, надо с умом всё же присваивать, везде свои хитрости нужны.
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34586550
dontKnow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНо просто так присвоить ничего не надо, надо с умом всё же присваивать, везде свои хитрости нужны.
про хитрости не могу ничего сказать - не знаю твоей ситуации(почему нельзя было сразу так сделать, а надо было хитрить)
...
Рейтинг: 0 / 0
DataGrid как в Access
    #34587700
Диса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dontKnow авторНо просто так присвоить ничего не надо, надо с умом всё же присваивать, везде свои хитрости нужны.
про хитрости не могу ничего сказать - не знаю твоей ситуации(почему нельзя было сразу так сделать, а надо было хитрить)

Надеюсь жизнь научит!-))))
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / DataGrid как в Access
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]