ListBox
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
- папа Карло
- Шарманщик
- Сообщения: 8565
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
ListBox
по клику на контрое А рисуется на нем листбокс, при этом получается так, что этот листбокс "отрезается" границей контрола А. как сделать так чтобы не отрезался? например если вы повесите комбобокс на край диалога и потом его раскроете то он раскроется за границу окна, как такогоже поведения добиться от листбокса?
Последний раз редактировалось папа Карло 15 сен 2003, 07:21, всего редактировалось 1 раз.
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Папа Карло, известно как.
Если в VC++ с MFC, то только "руками". При этом я бы на написал, наверное, свой класс, некий комбинированный CListBoxТвойКонтрол.
Наследовать такой класс думаю, надо от твоего "контрола", CListBox - агрегировать, вернее, указатель на него.
Впрочем, можно так и сяк. В инете полно инфы по контролам. Но руками придётся в любом случае. Хотя ничего страшного в этом и нет.
Если в билде или дельфах, то я бы положил и контрол и TListBox на отдельную панельку (TPanel), "привязав" их соответвенно при помощи пропертей - анкер. А дальше только управлял бы только видимостью листбокса в зависимости от нажатия на контрол.
Если в VC++ с MFC, то только "руками". При этом я бы на написал, наверное, свой класс, некий комбинированный CListBoxТвойКонтрол.
Наследовать такой класс думаю, надо от твоего "контрола", CListBox - агрегировать, вернее, указатель на него.
Впрочем, можно так и сяк. В инете полно инфы по контролам. Но руками придётся в любом случае. Хотя ничего страшного в этом и нет.
Если в билде или дельфах, то я бы положил и контрол и TListBox на отдельную панельку (TPanel), "привязав" их соответвенно при помощи пропертей - анкер. А дальше только управлял бы только видимостью листбокса в зависимости от нажатия на контрол.
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
- Marmot
- Графоман
- Сообщения: 39274
- Зарегистрирован: 17 фев 2003, 17:58
- Откуда: Caulfeild
- Контактная информация:
- Циник
- Завсегдатай
- Сообщения: 442
- Зарегистрирован: 17 фев 2003, 17:17
Re: ListView
Ну и вопросы ты задаешь, товарищ Карло. Прямо как Олеся про самолет
Видно, GUIнёй ты маешься редко и нерегулярно
Ну, давай попробуем разобраться.
Или что-то иное нужно?
У комбобокса раскрывается выпадающий список, который представляет из себя отдельное окно. У листбокса нечему выпадать и раскрываться.
К тому же, основное окно комбобокса (которое нераскрытое) точно так же уйдет за край окна-родителя, как и окно листбокса, если расположить его у края, без запаса. В этом плане поведение этих двух контролов абсолютно одинаково.

Тьфу ты, на топик-то я и не посмотрел. И правда не определился. Однако что бокс, что вью - все вышесказанное остается в силе.

Видно, GUIнёй ты маешься редко и нерегулярно

Ну, давай попробуем разобраться.
Какой границей - правой, нижней, еще какой-нибудь?папа Карло писал(а):по клику на контрое А рисуется на нем листбокс, при этом получается так, что этот листбокс "отрезается" границей контрола А.
Расположить его в нужном месте, с запасом, учитывая его размеры. Математика элементарная - два действияпапа Карло писал(а):как сделать так чтобы не отрезался?

Или что-то иное нужно?
Такого же - никак. Это два разных контролапапа Карло писал(а):например если вы повесите комбобокс на край диалога и потом его раскроете то он раскроется за границу окна, как такогоже поведения добиться от листбокса?

У комбобокса раскрывается выпадающий список, который представляет из себя отдельное окно. У листбокса нечему выпадать и раскрываться.
К тому же, основное окно комбобокса (которое нераскрытое) точно так же уйдет за край окна-родителя, как и окно листбокса, если расположить его у края, без запаса. В этом плане поведение этих двух контролов абсолютно одинаково.
Это в общем случае глубоко порочный подход, товарищ - создать все, что может когда-нибудь понабиться, заранее, и держать до поры до времени невидимым. Это, товарищ, двойка на экзамене по гуёвому дизайну. Ну, или тройка, если на дополнительный вопрос ответишь. Но то, что без стипендии останешься - это точноvg писал(а):я бы положил и контрол и TListBox на отдельную панельку (TPanel), "привязав" их соответвенно при помощи пропертей - анкер. А дальше только управлял бы только видимостью листбокса в зависимости от нажатия на контрол.

А он разве не определился? Прямо ведь так и говорит - листбокс.vg писал(а):Да, и ты определись, что у тебя литбокс или листвью
Тьфу ты, на топик-то я и не посмотрел. И правда не определился. Однако что бокс, что вью - все вышесказанное остается в силе.
Последний раз редактировалось Циник 14 сен 2003, 23:03, всего редактировалось 2 раза.
- Циник
- Завсегдатай
- Сообщения: 442
- Зарегистрирован: 17 фев 2003, 17:17
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Циник,
Так ты помоги челу, а не хлопай его отечески по плечу. Помочь - это значит стихотворную или мемуарную форму заменить предложениями, лексемами, в крайнем случае описанием основных особенностей алгоритма.Ну и вопросы ты задаешь, товарищ Карло. Прямо как Олеся про самолет
Видно, GUIнёй ты маешься редко и нерегулярно
Ну, давай попробуем разобраться.
Нет не элементарная, если чел только начинает, как ты говоришь"гуить". Не элементарная, т.к. надо не то чтобы знать, а иметь практические навыки использовать те или другие архитектуры, библиотеки и т.д. Для начала челу в твоей "элементарной" математике нужно уметь получать координаты оконных объектов и знать как их изменять. Если не для начала, то, Циник, необходимо уметь это делать не как попало, а в общем консепсьоне построения приложения, если хочешь архитектуры.папа Карло:
как сделать так чтобы не отрезался?
Расположить его в нужном месте, с запасом, учитывая его размеры. Математика элементарная - два действия
Или что-то иное нужно?
"Такого же - никак". Ты забыл добавить здесь имхо. Т.е. что для тебя никак. Любой программер с квалификацией ниже средней использует классы объектов-контролов только в качестве базовых в VC. Непосредственно это барахло, например, MFC никто не использует. Пишут свои классы на основе базовых решений мелкософта, или используют классы других. Это так, поскольку программерам почти всегда необходимо поведение контролов, которое не предусмотрено разработчиками мелкософта. Не предусмотренно не потому, что в мелкософте дураки, а потому, что они дают базовые решения, базовые классы.папа Карло:
например если вы повесите комбобокс на край диалога и потом его раскроете то он раскроется за границу окна, как такогоже поведения добиться от листбокса?
Такого же - никак. Это два разных контрола
У комбобокса раскрывается выпадающий список, который представляет из себя отдельное окно. У листбокса нечему выпадать и раскрываться.
Мне твои оценки здесь ни к чему. Чел может сделать это в динамике, если ему эффективности захочется. Есль ключевое слово new. Слыхал про такое?vg:
я бы положил и контрол и TListBox на отдельную панельку (TPanel), "привязав" их соответвенно при помощи пропертей - анкер. А дальше только управлял бы только видимостью листбокса в зависимости от нажатия на контрол.
Это в общем случае глубоко порочный подход, товарищ - держать создать все, что может когда-нибудь понабиться, заранее, и держать до поры до времени невидимым. Это, товарищ, двойка на экзамене по гуёвому дизайну. Ну, или тройка, если на дополнительный вопрос ответишь. Но то, что без стипендии останешься - это точно
Читай тему топика - там ListViewvg:
Да, и ты определись, что у тебя литбокс или листвью
А он разве не определился? Прямо ведь так и говорит - листбокс.
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
2Циник
Тьфу ты, забыл ещё уколоть.
Тщательнее надо быть, товарищЬ, когда учите других.
Что скажите?
PS. (это редакция) А я не понял, чё мы вообще завелись? Ладно пойду домой пить валерьянку.
Тьфу ты, забыл ещё уколоть.
Бокс и вью - это разные весчи. Например, CListView - это совсем даже и не контрол. Это класс представления приложений архитектуры документ/вид классов MFC.Тьфу ты, на топик-то я и не посмотрел. И правда не определился. Однако что бокс, что вью - все вышесказанное остается в силе.
Тщательнее надо быть, товарищЬ, когда учите других.
Что скажите?
PS. (это редакция) А я не понял, чё мы вообще завелись? Ладно пойду домой пить валерьянку.
- папа Карло
- Шарманщик
- Сообщения: 8565
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
Папа Карло,
Было и так понятно, что ты хочешь с самого начала. Про листвью и бох - это я так, по приколу.
В целом, как мне кажется, ты идешь правильной дорожкой, когда пытаешься найти общие подходы решения, казалось бы, частной задачи. Важно здесь только не переусердствовать. Иногда частное решение бывает полезнее общего (в реальных проектах программистов).
Я не знаю шарп, поэтому и не могу подсказать тебе что-либо толковое. По началу я думал, что ты рисуешь на С++. Но вот такой вопрос... Создание контролов для программистов VC++ - это как здрасьте, т.к. мелкософт говорит - ДОделыйте всё сами. И это правильно. Но как я понимаю, в шарпе (вернее в System.Windows.Forms) практически всё уже есть в части GUI. Практически "набор" классов не меньше чем в борланде? Я могу сильно ошибаться, но может лучшим решением для "нестандартных" контролов является создание их в С++, а затем использование их (как активХ) в шарпе?
Я таких не знаю. Не знаю, как у вас там в Америках, а здесь, в России, чтобы зарабатывать приходится делать всё самому, даже пачкорды юзерам втыкать и вытыкать из розеток и при этом наблюдать их недовольные рожи.
Так, что ничего не поделаешь, как бы неприятно это тебе ни было. Придётся тебе постоянно заниматься гуи, если ты хочешь то, о чём пишешь.
Было и так понятно, что ты хочешь с самого начала. Про листвью и бох - это я так, по приколу.
В целом, как мне кажется, ты идешь правильной дорожкой, когда пытаешься найти общие подходы решения, казалось бы, частной задачи. Важно здесь только не переусердствовать. Иногда частное решение бывает полезнее общего (в реальных проектах программистов).
Я не знаю шарп, поэтому и не могу подсказать тебе что-либо толковое. По началу я думал, что ты рисуешь на С++. Но вот такой вопрос... Создание контролов для программистов VC++ - это как здрасьте, т.к. мелкософт говорит - ДОделыйте всё сами. И это правильно. Но как я понимаю, в шарпе (вернее в System.Windows.Forms) практически всё уже есть в части GUI. Практически "набор" классов не меньше чем в борланде? Я могу сильно ошибаться, но может лучшим решением для "нестандартных" контролов является создание их в С++, а затем использование их (как активХ) в шарпе?
А ты считаешь, что есть предметные специалисты гуи?да GUI я занимаюсь лчень редко, не моя область.
Я таких не знаю. Не знаю, как у вас там в Америках, а здесь, в России, чтобы зарабатывать приходится делать всё самому, даже пачкорды юзерам втыкать и вытыкать из розеток и при этом наблюдать их недовольные рожи.
Так, что ничего не поделаешь, как бы неприятно это тебе ни было. Придётся тебе постоянно заниматься гуи, если ты хочешь то, о чём пишешь.
- папа Карло
- Шарманщик
- Сообщения: 8565
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
специалистов по ГУИ я знаю. собственно как и специалистов других областей
писать это на си++ или на шарпе пофиг, я могу перевести с любого языка. мне исходник надо. сейчас докопано до того, что этот листбокс создается как чайлдвиндов, а его надо делать видимо ПОПАПом.... и если его сделать таковым, то все наврное получится....

- Циник
- Завсегдатай
- Сообщения: 442
- Зарегистрирован: 17 фев 2003, 17:17
А я что делаю, товарищ? Внимательнее читаем тексты собеседников, вдумчивее, доходим до сути.vg писал(а):Так ты помоги челу, а не хлопай его отечески по плечу
Это уже не математика, товарищ.vg писал(а):Нет не элементарная, если чел только начинает, как ты говоришь"гуить". Не элементарная, т.к. надо не то чтобы знать, а иметь практические навыки использовать те или другие архитектуры, библиотеки и т.д.Математика элементарная - два действия
Или что-то иное нужно?
Математика - элементарная.
“О друг мой, Аркадий Николаич! Об одном прошу тебя: не говори красиво”vg писал(а):Не элементарная, т.к. надо не то чтобы знать, а иметь практические навыки использовать те или другие архитектуры, библиотеки и т.д. Для начала челу в твоей "элементарной" математике нужно уметь получать координаты оконных объектов и знать как их изменять. Если не для начала, то, Циник, необходимо уметь это делать не как попало, а в общем консепсьоне построения приложения, если хочешь архитектуры.
Ну почему же - сознательно не добавил, товарищ.vg писал(а):"Такого же - никак". Ты забыл добавить здесь имхо.
И для меня, и для тебя, и для папы римского.vg писал(а):Т.е. что для тебя никак.
С этим - к Лепсику, товарищvg писал(а):Любой программер с квалификацией ниже средней использует классы объектов-контролов только в качестве базовых в VC. Непосредственно это барахло, например, MFC никто не использует. Пишут свои классы на основе базовых решений мелкософта, или используют классы других. Это так, поскольку программерам почти всегда необходимо поведение контролов, которое не предусмотрено разработчиками мелкософта. Не предусмотренно не потому, что в мелкософте дураки, а потому, что они дают базовые решения, базовые классы.

Ты перепутал, товарищ - я обращался к читателям, а не к тебе лично. Есть такой стилистичский прием, употребительный в риторике - обобщенное второе лицо называется.vg писал(а):Мне твои оценки здесь ни к чему.
Хорошо излагаешь, товарищ!vg писал(а):Чел может сделать это в динамике, если ему эффективности захочется. Есль ключевое слово new. Слыхал про такое?

После торможения, товарищ, не забываем своевременно сниматься с ручникаvg писал(а):vg:
Да, и ты определись, что у тебя литбокс или листвью
А он разве не определился? Прямо ведь так и говорит - листбокс.
Читай тему топика - там ListView

Не суетись, товарищ. Тебя уже мелом посыпали?vg писал(а):Тьфу ты, забыл ещё уколоть.

А в Киеве, oчевидно, дядька, товарищ.vg писал(а):Бокс и вью - это разные весчи. Например, CListView - это совсем даже и не контрол. Это класс представления приложений архитектуры документ/вид классов MFC.Однако что бокс, что вью - все вышесказанное остается в силе.
Но даже если его фамилия Листвьюк, к предмету разговора это имеет весьма опосредованное отношение.
Ибо предмет этот - ListBox Control, как недвусмысленно указывал товарищ Карло. Который ведет себя (контрол, а не папа Карло) в части выпадания и незалезания точно так же, как и ListView Control. Eсли ты в данный момент чуть поднимешь глаза, товарищ, то увидишь, что, собственно, именно это я и утверждал ранее. Более лаконично, впрочем. Но это уж не моя вина

Еще тщательнее?vg писал(а):Тщательнее надо быть, товарищЬ, когда учите других.

- Циник
- Завсегдатай
- Сообщения: 442
- Зарегистрирован: 17 фев 2003, 17:17
Да все понятно, товарищ Карло.папа Карло писал(а):мне надо отрисовывать произвольный контрол за границу парент контрола, на важно вправо, вниз или вверх. так понятно?сейчас надо листбокс отрисовать, завтра тривью.
Тут нужно сперва уяснить тебе, что за свои пределы родительский контрол никого не выпускает, по определению. Именно для этого, в частности, его и придумали. Если нужно, чтобы один контрол выходил за границу другого, они не должны состоять в родительских отношениях. Рисуй его самого по себе, без явного парента, и располагай где хочешь. Понятно уже или еще вопросы остаются? Если последнее, то давай их сюда.
Узнаю брата Колю!папа Карло писал(а):специалистов по ГУИ я знаю. собственно как и специалистов других областейписать это на си++ или на шарпе пофиг, я могу перевести с любого языка.

Ну... да, примерно так, товарищ. См. выше.папа Карло писал(а):мне исходник надо. сейчас докопано до того, что этот листбокс создается как чайлдвиндов, а его надо делать видимо ПОПАПом.... и если его сделать таковым, то все наврное получится....
-
- Маньяк
- Сообщения: 2803
- Зарегистрирован: 29 май 2003, 22:29
- Откуда: Магадан - Миссиссага
- Циник
- Завсегдатай
- Сообщения: 442
- Зарегистрирован: 17 фев 2003, 17:17