Поиск:

Ответ в темуСоздание новой темы Создание опроса
> StringGrid, удаление строки 
:(
    Опции темы
Romikgy
Дата 9.10.2006, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Цитата(Vyacheslav @  9.10.2006,  15:41 Найти цитируемый пост)
Ну зачем выдавать такой навороченный код 


Vyacheslav, ты дал один способ решения проблемы , я дал другой, автор выбрал который ему больше понравился

А зачем... имхо да потому что это форум, или я кого то повторил?

Добавлено @ 21:04 
Цитата(Vyacheslav @  9.10.2006,  15:41 Найти цитируемый пост)
Вот это выглядит довольно забавно 
Выделить всёкод C++ Builder
1:
    
sl->Free();

Может все таки стоит хоть немного внимать рекомендациям Borland
Цитата

Do not call the Free method of an object. Instead, use the delete keyword, which invokes Free to destroy an object. Free automatically calls the destructor if the object reference is not NULL.

"Не вызывайте метод Free. Вместо него используйте delete

здесь согласен , по инерции из дельфей

Добавлено @ 21:07 
Цитата(docwar @  9.10.2006,  17:21 Найти цитируемый пост)
Потом делаю следующее:
1) Добавляю данные
2) Удаляю эту строку
3) Добавляю новую
и в результате в таблицу выводится вторая строка, потом первая..

я из этого мало что понял , но имхо можно поменять местами, или подкорректировать ввод


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
docwar
Дата 9.10.2006, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 24.9.2006

Репутация: нет
Всего: нет



Цитата(Romikgy @  9.10.2006,  21:02 Найти цитируемый пост)
я из этого мало что понял

Сначала добавил данные в таблицу, потом удалил только что созданную строку, потом опять пользуюсь формой ввода. И в таблице отображаются ДВЕ строки: вторая - первая (сверху вниз!)

Цитата(Romikgy @  9.10.2006,  21:02 Найти цитируемый пост)
можно поменять местами, или подкорректировать ввод

А не подскажите как?  smile 
PM MAIL   Вверх
Romikgy
Дата 9.10.2006, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Цитата(docwar @  9.10.2006,  20:18 Найти цитируемый пост)
Сначала добавил данные в таблицу, потом удалил только что созданную строку, потом опять пользуюсь формой ввода. И в таблице отображаются ДВЕ строки: вторая - первая (сверху вниз!)

код бы привел
Цитата(docwar @  9.10.2006,  20:18 Найти цитируемый пост)
А не подскажите как?

подразумеваю надо после удаления позицию Row корректировать 



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
docwar
Дата 9.10.2006, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 24.9.2006

Репутация: нет
Всего: нет



Код
if(!Edit1->Text.IsEmpty() && !Edit2->Text.IsEmpty())
{
Form1->StringGrid1->Cells[0][Form1->StringGrid1->RowCount-1] = Edit1->Text;
Form1->StringGrid1->Cells[1][Form1->StringGrid1->RowCount-1] = Edit2->Text;
...
Form1->StringGrid1->Cells[1][Form1->StringGrid1->RowCount-1] = Edit6->Text;
Edit1->Clear();
Edit2->Clear();
...
Edit6->Clear();
Form1->StringGrid1->RowCount++;
}


Это добавление! smile А есть еще и центрирование заголовков таблицы:
Код
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
      int ARow, TRect &Rect, TGridDrawState State)
{
TStringGrid *pSG = (TStringGrid *)Sender;
AnsiString nameCol = pSG->Cells[ACol][ARow];
int Align;
if(!ARow)
{
Align = DT_CENTER | DT_VCENTER | DT_SINGLELINE;
pSG->Canvas->Brush->Color = clBtnFace;
}
else
{
Align = DT_LEFT | DT_VCENTER | DT_SINGLELINE;
pSG->Canvas->Brush->Color = clWhite;
}
pSG->Canvas->FillRect(Rect);
TRect r = Rect;
DrawText(pSG->Canvas->Handle,nameCol.c_str(),nameCol.Length(),&r,Align);
}


Это сообщение отредактировал(а) docwar - 9.10.2006, 22:11
PM MAIL   Вверх
Romikgy
Дата 9.10.2006, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



1 ты уверен что

Цитата(docwar @  9.10.2006,  21:06 Найти цитируемый пост)
Form1->StringGrid1->Cells[0][Form1->StringGrid1->RowCount-1] = Edit1->Text;

а не Form1->StringGrid1->RowCount?
2 как удаялешь

PS елы палы что по пункно надо вытягивать?
написал
Цитата(docwar @  9.10.2006,  17:21 Найти цитируемый пост)
1) Добавляю данные
2) Удаляю эту строку
3) Добавляю новую
и в результате в таблицу выводится вторая строка, потом первая..

покажи это все
Цитата(docwar @  9.10.2006,  21:06 Найти цитируемый пост)
А есть еще и центрирование заголовков таблицы:

и это имхо .... не надо


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Aline
Дата 10.10.2006, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



docwar, 
у меня тоже так было
Умного решения не нашла :-), просто очищала ячейки в добавленной  строке:

 StringGrid1->Cells[0][StringGrid1->RowCount-1]="";
 StringGrid1->Cells[1][StringGrid1->RowCount-1]="";
PM MAIL   Вверх
docwar
Дата 10.10.2006, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 24.9.2006

Репутация: нет
Всего: нет



Цитата
покажи это все

Я делаю это все после запуска программы! Скриншоты показать?  smile 
PM MAIL   Вверх
Romikgy
Дата 10.10.2006, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 11
Всего: 146



Цитата(docwar @  10.10.2006,  16:45 Найти цитируемый пост)
Скриншоты показать? 

на кой они!? исходник покажи как ты это делаешь 
(последний раз прошу, далее просто не появлюсь в этой теме)


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
docwar
Дата 11.10.2006, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 24.9.2006

Репутация: нет
Всего: нет



Romikgy, извини, пожалуйста, что не понял тебя с первого раза!
После твоего ответа стал внимательно вчитываться в код и заметил, что я невнимателен! smile

Осталось только написать код для редактирования выделенной строки!  smile 
PM MAIL   Вверх
docwar
Дата 15.10.2006, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 24.9.2006

Репутация: нет
Всего: нет



И снова здравствуйте!
Помогите, пожалуйста, написать код для редактирования строки! smile 
Спасибо!  

Это сообщение отредактировал(а) docwar - 15.10.2006, 12:49
PM MAIL   Вверх
Aline
Дата 16.10.2006, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



docwar, 
Что значит "написать код для редактирования строки"? Ты толком можешь объяснить, что тебе надо? Что тебе со строкой делать надо?
PM MAIL   Вверх
FFFFFFF7
Дата 16.10.2006, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 13.10.2006

Репутация: 2
Всего: 2



Цитата(Aline @  16.10.2006,  12:21 Найти цитируемый пост)
Ты толком можешь объяснить, что тебе надо?

действительно.
docwar, ты когда научишься пользоваться мануалом?
Заметка: редактировать строку невозможно. Заруби это =)))!
Можно - ячейку.
--------------------
Да помоги кодеру, а значит - ближнему своему!
PM MAIL   Вверх
docwar
Дата 16.10.2006, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 24.9.2006

Репутация: нет
Всего: нет



Тогда помогите, пожалуйста, с кодом редактирования выделенной ячейки!
Делать всю таблицу доступной для редактирования мне не надо! =)
Спасибо!
PM MAIL   Вверх
docwar
Дата 18.10.2006, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 24.9.2006

Репутация: нет
Всего: нет



Надеюсь, что кто-нибудь мне поможет!  smile 
PM MAIL   Вверх
Aline
Дата 18.10.2006, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 470
Регистрация: 22.7.2005
Где: Таруса

Репутация: нет
Всего: нет



docwar, 

Слушай, посмотри текст на предыдущей странице, по-моему я тебе уже писала, что надо использовать свойство Options и событие OnSelectCell

По этому событию можно получить индексы выделенной ячейки, а с помощью Options настроить её свойства

Например:

void __fastcall TMainForm::StringGridClick(TObject *Sender)
{
  if (sCol == 1) StringGrid->Options = StringGrid->Options << goEditing;  //разрешаем редактирование во второй колонке
  else StringGrid->Options = StringGrid->Options >> goEditing;  //запрещаем редактирование
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::StringGridSelectCell(TObject *Sender, int ACol,
      int ARow, bool &CanSelect)
{
  sCol = ACol;
  sRow = ARow;
} 



PM MAIL   Вверх
Страницы: (5) Все 1 2 [3] 4 5 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0564 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.