Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732

Несколько вопросов о StringGrid

18.08.2011, 13:53. Показов 1231. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Имею несколько вопросов.
Первый.
Добавляю несколько строк - имен файлов из файлопендиалога в одну колонку в стринггриде. Разрешен мультиселект и файлы добавляются в конец. Но мне почему то, мой код кажется извращенным слегка:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  if (FileOpenDialog1->Execute()) {
    count = FileOpenDialog1->Files->Count;
    if(cnt1==1){
    StringGrid1->RowCount+=count; }
    else  {
    StringGrid1->RowCount+=count-1;}
    rc=StringGrid1->RowCount;
    for (i = 0; i < count ; i++)
{
     start_name = ExtractFileName(FileOpenDialog1->Files->operator [](i) );
     StringGrid1->Cells[1][rc-count+i]=start_name;
 
 
}
 
cnt1=1;
  }
Сразу объясню про if(cnt1==1). Первая (0) строка как заголовок, то есть fixed row. Что бы была fixed row, нужно чтобы начальный row count был >= 2. Так что, при запуске программы стринг грид имеет роукаунт равен 2. И во избежание лишней строчки при первом добавлении файлов есть сей иф.
Все это работает очень даже хорошо (по моему). но можно как то попроще это организовать?
Второй вопрос:
Как обратится к ячейкам из строчки, на которой была нажата ПМК и появилось попап меню?
Третий вопрос.
Как выровнять содержимое ячейки (одной выбранной) скажем по центру.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.08.2011, 13:53
Ответы с готовыми решениями:

Несколько вопросов
Всем привет, появилось пару вопросов. 1. Стандартно TGauge имеет вид типа , но это выглядит совсем не красиво. Можно ли нарисовать...

Несколько вопросов по билдеру
Вопрос 1. Есть компонент TMonthCalendar, на котором я выбираю нужную дату и месяц. Как мне получить день недели того числа которое я...

Несколько вопросов по работе с ADO
Помогите, пожалуйста! Возникло несколько вопросов в работе с БД: 1. База находится в одной папке с приложением которое ее...

4
4 / 4 / 0
Регистрация: 18.08.2011
Сообщений: 39
18.08.2011, 13:57
C++
1
2
3
4
_dgv.Columns["productNameDataGridViewTextBoxColumn"].Frozen = true;
_dgv.Columns["productNameDataGridViewTextBoxColumn"].DividerWidth = 3;
_dgv.Rows[1].Frozen = true;
_dgv.Rows[1].DividerHeight = 4;
Пример
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
19.08.2011, 17:20  [ТС]
Если кому нужно, нашел ответ на свой второй вопрос:
C++
1
2
3
4
5
6
7
8
9
10
int x,y,Col,Row;
 
void __fastcall TForm1::StringGrid1ContextPopup(TObject *Sender, TPoint &MousePos,
          bool &Handled)
{
x=MousePos.x;
y=MousePos.y;
StringGrid1->MouseToCell(x, y, Col, Row);
Label1->Caption="Col="+IntToStr(Col)+" | Row="+IntToStr(Row);
}
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
23.08.2011, 01:23  [ТС]
Можно ли как то сделать, что все колонки кроме одной могли быть ресайзнуты( то есть их можно растянуть мышкой), а ту одну можно нельзя. Я так подумал, можно на ивент ресайзинга(если таковой есть) поставить присвоение нужной ширины колонке, которая должна быть фиксированной. Это нормально?
Есть ли ивент на ресайзинг определенной колонки? Или вроде на ресайзинг колонки
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
05.09.2011, 19:57  [ТС]
Столкнулся тут с проблемой.
Пробую очистить стринг грид, в котором есть текст и tgauge в качестве обджекта.
Пробую тереть так:
C++
1
2
3
4
5
6
7
8
9
10
11
count=StringGrid1->RowCount;
for (b = count; b > 2 ; b--) {
     delete StringGrid1->Objects[1][b];
    ((TSGD*)StringGrid1)->DeleteRow(b)   ;
}
if(StringGrid1->RowCount==2){
delete StringGrid1->Objects[1][1];
StringGrid1->Rows[1]->Clear();
cnt1=0;
offset=1;
}
И получаю дивный эффект
Когда тру по строчке, то все гуд. Там юзаю код:
C++
1
2
3
4
5
6
7
8
9
10
11
if(StringGrid1->RowCount>2 ){
delete StringGrid1->Objects[1][StringGrid1->Row];
((TSGD*)StringGrid1)->DeleteRow(StringGrid1->Row)   ;
 offset=StringGrid1->RowCount;
 }
else
{
delete StringGrid1->Objects[1][StringGrid1->Row];
StringGrid1->Rows[StringGrid1->Row]->Clear();
cnt1=0;
offset=1;}
В чем может быть проблема?
Миниатюры
Несколько вопросов о StringGrid  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.09.2011, 19:57
Помогаю со студенческими работами здесь

Несколько вопросов!
Вопрос 1) Вот код поисковика. Когда я удаляю Name поля Edit1 при запуске прогамы выдает ошибку-&gt; Undefined symbol 'Edit1' еще с таким...

Несколько вопросов
Добрый день. Начал писать одну программу в VS 2008 C++ (консоль) и столкнулся в несколькими проблемами. В общем желательно нужно, чтобы...

Несколько вопросов
Делаю небольшую консольную игру для тренировки и есть несколько вопросов. char *lev; //char lev; //как передать правильно этот массив...

Несколько вопросов
Здравствуйте. Возникло несколько вопросов: 1. Когда нажимаешь на определённую клавишу происходит определённое действие (типа меню)...Я на...

Несколько вопросов к программистам.
Доброго времени суток! я начинающий, последние пару месяцев делал упор на изучение Си, WinAPI и дискретной математики. Наверное, это было...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru