![]() |
|
|
![]()
|
|
| Гость_Инна |
|
|||
|
Unregistered |
Подскажите как правильно удалить строку с известным номером из StringGrid?
Спасибо. |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
поднимаем все строки под этой на одну вверх и уменьшаем RowCount на 1
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Гость_Инна |
|
|||
|
Unregistered |
Пытаюсь убрать все строки у который во второй колонке пусто. Как правильно поднимать строки?
int u = Form1->StringGrid1->RowCount; for (int i = 0; i<u ; i++) { if(Form1->StringGrid1->Cells[1][i] == "") //поднять как? Form1->StringGrid1->RowCount = Form1->StringGrid1->RowCount-1; } |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
поднять -- это перенести значения всех ячеек строки
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Гость_Инна |
|
|||
|
Unregistered |
int yborka = Form1->StringGrid1->RowCount;
for (int i = 0; i<yborka ; i++) { if(Form1->StringGrid1->Cells[1][i] == "") { for (int i = 0; i<yborka ; i++) { Form1->StringGrid1->Cells[0][i]=Form1->StringGrid1->Cells[0][i+1]; Form1->StringGrid1->Cells[1][i]=Form1->StringGrid1->Cells[1][i+1]; } Form1->StringGrid1->RowCount = Form1->StringGrid1->RowCount-1; } } Не работает. Где ошибка? |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
на вопрос
я могу ответить только "там". что значит "Не работает"? Добавлено @ 16:36 P.S. не стесняемся на кнопку "Код" тыкать... P.P.S. два цикла с одной переменной -- не есть гут... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Гость_Инна |
|
|||
|
Unregistered |
СтрингГрид состоит из двух колонок. Во второй колонке есть пустые ячейки. Строки в которых присутствуют пустые значения во второй колонке надо убрать из СтрингГрид. Код выше с этим не справляется. Остаются пустые строки во второй колонке.
Еще подскажите: при старте приложения всегда выделена первая ячейка в первой колонке СтрингГрида, как сделать, чтобы этого выделения не было. И как менять размеры колонок, установила goColSizing в true, но поменять размер колонок не удается курсором мыши. У меня СтрингГрид без фиксированных колонок и строк. Спасибо. |
|||
|
||||
| Vyacheslav |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Надо нежнее, еще нежнее
Добавлено @ 16:51
-------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
| Гость_Инна |
|
|||
|
Unregistered |
Спасибо, работает
Теоретически это как реализовано? Идет переопределение защищенной переменной из класса TStringGrid? За что отвечает эта переменная в базовом классе TStringGrid? Почему классический TStringGrid не дает так просто удалять? Еще вопросы: Подскажите, как программно установить ширину двух колонок в StringGrid в зависимости от самого длинного текста в каждой из них и как снять выделение с первой ячейки StringGrid в момент его появления на форме? Спасибо. |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
это называется взлом класса ( и нет там никакой переменой )
а почему удалять не дает -- у разработчиков спрашивать надобно... ширину установить -- ColWidths длину текста определить -- stringGrid->Canvas->TextWidth() выделение убрать -- Col в -1 поставить попробуй ( ну или HideSelection в Design Time' е в true а потом вернуть в false ) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Здесь прсото создается некий прокси-класс, у которого всего лишь чисто декоративное отличие:
метод DeleteRow, объявленный как protected, объявляется в новом классе открытым.
Я бы не назвал, это взломом. Вполне стандартный прием. Просто разработчики решили, что этот не стоит этот метод делать открытым для данного класса. А Вам он понадобился -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Гость_Инна |
|
|||
|
Unregistered |
Cпасибо за обяснения.
Кто знает, подскажите где ошибка. Пробую установить ширину двух своих колонок в СтрингГрид:
Как-то странно работает |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
странный код...
зачем постоянно вычислять длины ( if (Form1->StringGrid1->Canvas->TextWidth(Form1->StringGrid1->Cells[1][stolb2])< Form1->StringGrid1->Canvas->TextWidth(Form1->StringGrid1->Cells[1][stolb2+1])) )? создай перед циклом переменную int maxWidth = 0; и проверяй больше ли длина столбца этой переменной. если больше -- обновляй значение. после цикла ставь длину в maxWidth и все... + ты, похоже путаеш столбцы и строки ( Cells[int ACol][int ARow] ) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Здравствуйте!
1) Как в StringGrid удалить выделенную строку? Причем не просто очистить ее ячейки, а удалить полностью. 2) Как сделать выделенную строку доступной для редактирования? Т.е. выбераем строку, жмем на клавишу и можем изменять текст в любой ячейки строки прямо в таблице! Модератор: зачем подымать старый топик. Я дал ссылку на него, что бы Вы смогли решить проблему с ошибкой. Ответы на это топик и тот, который Вы открыли полностью дают ответ на Ваши вопросы http://forum.vingrad.ru/index.php?showtopic=113677 |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Извините, но я не могу выделить строку. Это вообще возможно?
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 11 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Спасибо большое, но я не пойму... куда вставить этот код, а то куда бы не вставлял - эффекта нет...
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 11 Всего: 146 |
туда где выделяешь строку
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
В обрабочик кнопки? Не выделяет он строки...
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 11 Всего: 146 |
в конце обработчика передай фокус стринггриду!
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
В конец кнопки удалить уже пробовал добавлять.... результатов ноль...
Добавлено @ 21:44 Мне кажется, что всему виной центрирование хидеров и проблемы с прорисовкой.... Посмотри, пожалуйста, код формы с первой страницы. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 11 Всего: 146 |
К чему это все? после этого добавь StringGrid1->SetFocus(); -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Очищаются все строки + хидеры....
|
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Пересобрал весь проект. Помогите, пожалуйста, разобраться в удалением и редактированием выделенной строки!
Предложенные варианты удаления строки либо удаляют все строки, либо ничего вообще не делают! |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 11 Всего: 146 |
У тя билдер какой?
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Шестой.
|
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
docwar,
Посмотри свойство Options, там есть goRowSelect, поставь в true, чтобы выделить целую строку. Объявляешь класс как советовал Vyacheslav : class TPublicGrid: public TStringGrid { public: using TStringGrid::DeleteRow; }; а потом в обработчик кнопки, например, ставишь: ((TPublicGrid*)StringGrid1)->DeleteRow(sRow); Значение sRow - индекс выбранной строки, можно получить в событии OnSelectCell. Кстати, совсем необязательно выделять целую строку, дастаточно встать в одну из ячеек этой строки. Для редактирования, опять же используй Options, goEditing void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, int ACol, int ARow, bool &CanSelect) { sCol = ACol; sRow = ARow; } Добавлено @ 15:41 docwar, Да, ещё, можно программно выделить строку. Для этого устанавливаешь StringGrid->Row номер строки, которую нужно выделить и в Options должно быть установлено goRowSelect и goDrawFocusSelected У меня по крайней мере выделяет нужную строку... |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 11 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Vyacheslav |
|
||||||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Romikgy,
Ну зачем выдавать такой навороченный код Давали же уже.
Что тут непонятного ? Вот этот код работать не будет
Надо делать вот так
И зачем использовать FormCreatе? Вместо него используем конструктор.
И еще. Вот это выглядит довольно забавно
Может все таки стоит хоть немного внимать рекомендациям Borland
"Не вызывайте метод Free. Вместо него используйте delete -------------------- С уважением, Вячеслав Ермолаев |
||||||||||||||
|
|||||||||||||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Спасибо Вам огромное за ответы!!!
Только у меня опять вопросы! Удаляю как советует Vyacheslav, добавление данных у меня оформлено так:
Потом делаю следующее: 1) Добавляю данные 2) Удаляю эту строку 3) Добавляю новую и в результате в таблицу выводится вторая строка, потом первая... |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 11 Всего: 146 |
Vyacheslav, ты дал один способ решения проблемы , я дал другой, автор выбрал который ему больше понравился А зачем... имхо да потому что это форум, или я кого то повторил? Добавлено @ 21:04 здесь согласен , по инерции из дельфей Добавлено @ 21:07
я из этого мало что понял , но имхо можно поменять местами, или подкорректировать ввод -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Сначала добавил данные в таблицу, потом удалил только что созданную строку, потом опять пользуюсь формой ввода. И в таблице отображаются ДВЕ строки: вторая - первая (сверху вниз!) А не подскажите как? |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 11 Всего: 146 |
код бы привел подразумеваю надо после удаления позицию Row корректировать -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| docwar |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Это добавление!
Это сообщение отредактировал(а) docwar - 9.10.2006, 22:11 |
||||
|
|||||
| Romikgy |
|
||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 11 Всего: 146 |
1 ты уверен что
а не Form1->StringGrid1->RowCount? 2 как удаялешь PS елы палы что по пункно надо вытягивать? написал
покажи это все и это имхо .... не надо -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
||||
|
|||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
docwar,
у меня тоже так было Умного решения не нашла :-), просто очищала ячейки в добавленной строке: StringGrid1->Cells[0][StringGrid1->RowCount-1]=""; StringGrid1->Cells[1][StringGrid1->RowCount-1]=""; |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Я делаю это все после запуска программы! Скриншоты показать? |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 11 Всего: 146 |
на кой они!? исходник покажи как ты это делаешь (последний раз прошу, далее просто не появлюсь в этой теме) -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Romikgy, извини, пожалуйста, что не понял тебя с первого раза!
После твоего ответа стал внимательно вчитываться в код и заметил, что я невнимателен! Осталось только написать код для редактирования выделенной строки! |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
И снова здравствуйте!
Помогите, пожалуйста, написать код для редактирования строки! Спасибо! Это сообщение отредактировал(а) docwar - 15.10.2006, 12:49 |
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
docwar,
Что значит "написать код для редактирования строки"? Ты толком можешь объяснить, что тебе надо? Что тебе со строкой делать надо? |
|||
|
||||
| FFFFFFF7 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 13.10.2006 Репутация: 2 Всего: 2 |
действительно. docwar, ты когда научишься пользоваться мануалом? Заметка: редактировать строку невозможно. Заруби это =)))! Можно - ячейку. --------------------
Да помоги кодеру, а значит - ближнему своему! |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Тогда помогите, пожалуйста, с кодом редактирования выделенной ячейки!
Делать всю таблицу доступной для редактирования мне не надо! =) Спасибо! |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Надеюсь, что кто-нибудь мне поможет!
|
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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; } |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Aline, извини! Просто только сейчас вернулся к редактированию ячеек и забыл о твоем сообщении...
Не пойму... компилятор ругается, что символы sCol и sRow не определены... |
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
docwar,
ну так правильно, их объявить надо как int в OnSelectCell объявлены ACol и ARow, а если тебе индексы ячеек нужны в другом месте, то другим переменным присваиваешь эти значения и потом работаешь с этой ячейкой как хочешь |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Aline, ну не получается у меня... :'(
Все время ругается, что-либо неопределен элемент, либо что значение не используется... Смысл такой, чтобы при нажатии на клавишу редактирование становилось возможным. Пишу так: (уже кучу вариантов перебрал, определял уже и через AnsiString...)
Это сообщение отредактировал(а) docwar - 20.10.2006, 22:59 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: нет Всего: 196 |
docwar, ты, надеюсь, сам понимаешь, что чушь написал? Три метода, два из которых вообще ничего не делают, а первый делает неизвестно что (от случая к случаю).
Может сначала стоит C++ выучить? А теперь по порядку. В первом методе ты объявляешь sCol и sRow, но не присваиваешь им ничего. Поэтому операция if (sCol == 1) ... будет иногда срабатывать, но чаще будет работать то, что после else. Так как в sCol в идеале случайное значение. Во втором методе ты просто выполняешь лишние операции, который будут потеряны, после выхода из данного метода. А третий метод вообще не скомпилируется (если, конечно, в классе нет аттрибутов ACol и ARow, а их скорей всего нет), но даже если и скомпилируется, то будет тоже самое, что и во втором методе. Тебе надо объявить int sCol, sRow; В ОПРЕДЕЛЕНИИ КЛАССА (в .h файле). А все локальные определения убрать. |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Естественно понимаю! =) Ничего не получалось(забыл, что обьявлять надо в .h) + был после стоматолога... вот и написал такой код... Спасибо! Ошибок нет, но действий никаких не выполняется. ? |
|||
|
||||
| Aline |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 470 Регистрация: 22.7.2005 Где: Таруса Репутация: нет Всего: нет |
docwar, Всё должно работать, проверь ещё раз. В крайнем случае поставь точку останова и посмотри в отладчике что происходит. А вообще, что ты хотел увидеть? По тому условию что ты поставил, у тебя будет разрешено редактирование во второй колонке, т.е. там будет курсор появляться. |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Aline, спасибо! Проверю код как только получу доступ к своему компьютеру (завтра вечером примерно).
Хотел, чтобы прямо в таблице можно было вносить изменения или с помощью вызова доп. формы. Ввел данные в редактируемую строку - данные в ней заменились. |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Вопрос еще не решен!
Прошу вашей помощи!!! |
|||
|
||||
| Reptile |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 30.9.2006 Где: Украина, Первомай ск Репутация: 2 Всего: 3 |
Ну так создай еще одну форму, набросай Edit-ы и при нажатии на кнопку редактирования показываеш форму с Edit-ми, а в них заполняеш значения из StringGrid, нажимаеш ОК и все данные из Edit-ов переносиш в StringGrid и закрываеш доп. форму. И все |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 32 Всего: 158 |
docwar,
в дизайнере форм тыкни ЛКМ(левая кнопка мыши) на свой StringGrid. нажми F11. найди там Options. нажми "+". найди goEditing. поставь значение true. |
|||
|
||||
| васек |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 9.11.2006 Репутация: нет Всего: нет |
Люди подскажите как разработать визуальную компаненту таблицы умножения String Grid?
|
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Reptile, это понятно! У меня трудности с написанием кода! Можешь помочь? =)
dumb, без комментариев... |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 11 Всего: 146 |
docwar, я сколько смотрю , ты все просишь, помогите , помогите,
только я до сих пор не понял , чем помочь то? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Reptile |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 30.9.2006 Где: Украина, Первомай ск Репутация: 2 Всего: 3 |
docwar, есть 2-а способа:
ОЙ Сорри проект на Delphi (забыл какой раздел но думаю алгоритм под Builder переделать не сложно Это сообщение отредактировал(а) Reptile - 10.11.2006, 11:05 Присоединённый файл ( Кол-во скачиваний: 7 ) |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Reptile, буду благодарен, если проект под Билдер адаптируешь, а то открыть cpp не смог...
Romikgy, надо открыть доп. форму, содержащую в Эдитах текст выделенной строки (причем каждый столбец - отдельный эдит), внести изменения, нажать на клавишу и заменить ранее выделенную строку измененной... =) |
|||
|
||||
| Reptile |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 30.9.2006 Где: Украина, Первомай ск Репутация: 2 Всего: 3 |
Под рукой Builder-а нету
Пишу здесь могут быть опечятки Вот это вешаеш на нажатие кнопки:
Это во второй форме на нажатие "Сохранить"(или как там у тебя...):
Если будут ошибки - пиши P.S.Не забудь подключить формы друг к другу. Это сообщение отредактировал(а) Reptile - 10.11.2006, 13:47 |
||||
|
|||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Reptile, спасибо огромное!!!
Я писал такой же код, но строка после редактирования добавлялась ПОСЛЕ, а не заменяла строку, текст которой помещался в Эдиты... поэтому и решил, что метод мой ошибочный! )) Уже и перед нажатием на ОК (на форме редактирования) активировал ф-ию удаления строки и Form1->StringGrid1->RowCount--; писал..... Как быть? =) Добавлено @ 17:13 Строка после редактирования добавляется после всех остальных строк.... |
|||
|
||||
| Reptile |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 30.9.2006 Где: Украина, Первомай ск Репутация: 2 Всего: 3 |
Значит уже не такой
Не понял Етот код редактирует, для добавления строки делай похожую форму но увеличивай Form1->StringGrid1->RowCount и добавляй.
Как это?
Изменяет сущуствующие ячейки,он не добавляет В чем вопрос? |
||||||||
|
|||||||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Вопрос в том, что строка, которую мы выбираем для редактирования остается неизменной, а отредактированная добавляется ПОСЛЕ всех строк таблицы...
Увеличивать RowCount или нет? Только смысл? Уменьшение желаемого результата тоже не принесло. Забыл сказать, что у меня на главной форме прописано StringGrid1->Options = StringGrid1->Options << goRowSelect; ..... но это ни на что не должно влиять... |
|||
|
||||
| Reptile |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 30.9.2006 Где: Украина, Первомай ск Репутация: 2 Всего: 3 |
Покажи код навешаный на кнопку ОК. А лучше прикрепи проект, я проверю и завтра выложу Какие у Тебя значения в FixedRows и FixedCols ? Нет, если надо только редактировать.
Это логично, иначе Ты бы не выделял всей строки Это сообщение отредактировал(а) Reptile - 10.11.2006, 18:45 |
||||
|
|||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
FixedRows=1
StringGrid1->FixedCols = 0; Сожалею, но весь проект прикрепить не могу....
|
|||
|
||||
| Reptile |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 30.9.2006 Где: Украина, Первомай ск Репутация: 2 Всего: 3 |
Тогда ничем не могу помочь У меня все работает Не могу понять Как Это сообщение отредактировал(а) Reptile - 10.11.2006, 19:30 Присоединённый файл ( Кол-во скачиваний: 8 )
22.GIF 26,97 Kb |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Reptile, вопрос решил добавление переменной, хранящей номер строки, которую мы хотим отредактировать.
Как же ты без этого сделал не пойму! Спасибо большое за помощь! |
|||
|
||||
| Reptile |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 30.9.2006 Где: Украина, Первомай ск Репутация: 2 Всего: 3 |
||||
|
||||
| XPyCT |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 24.8.2007 Где: Moldova Репутация: 10 Всего: 10 |
что тут не ясного! хоть пост был давно но отпишу Предположим у вас стрингрид с одним выделенным рядом и одним выделенным столбцом! нумерация в стрингриде идет с нуля! и так первый фикс ряд =0 и фикс кол=0; идем дальше вам нужно к примеру выделить ряд под номером №5 кидаем на форму едит и кнопку Далее пишем там этот код по событию нажатия кнопки
Одновременное применение своиств goRowSelect и goEditing не дает эфекта (goEditing);- только goRowSelect Это сообщение отредактировал(а) XPyCT - 2.7.2008, 14:27 |
||||
|
|||||
| XPyCT |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 24.8.2007 Где: Moldova Репутация: 10 Всего: 10 |
вот написал думаю поможет!
прошу не пинать сам не силен но пишу то что знаю и делал! и так есть две формы fmBaza - Главная форма fmADD- Форма добавления товара SGBaza- StringGrid по нажатию клавиши ентер появляется форма добавления которая смотрит какая колонка и ряд и исходя из этого уже добавляет привожу код 1. Главная форма
2. Форма добавления
|
||||
|
|||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |