Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2007, 05:01   #1
fluer
Пользователь
 
Регистрация: 10.03.2007
Сообщений: 14
По умолчанию из edit1.text в stringgrid.

всем привет. ещё такой вопрос как перекинуть числовое значение из едита в стринггрид постепенно всь стринггрид должен заполниться
fluer вне форума Ответить с цитированием
Старый 24.04.2007, 08:30   #2
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
Сообщение

for i:=0 to StringGrid1.ColCount-1 do
begin
for j:=0 to StringGrid1.RowCount-1 do
begin
StringGrid1.Cells[i,j]=edit1.text;
end;
end;
Alex21 вне форума Ответить с цитированием
Старый 24.04.2007, 10:07   #3
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Для удобочитаемости лучше уберите первые операторные скобки
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 24.04.2007, 17:38   #4
fluer
Пользователь
 
Регистрация: 10.03.2007
Сообщений: 14
По умолчанию

спасибо. т.е. теперь я нажимаю кнопку после ввода цифры и эта цифра занимает первую, потом ввожу вторую нажимаю и она идёт во вторую. я правильно понял?

не народ.так не пойдёть к сожалению. она конечно выдаёт, но заполняет сразу все поля. надо както ухитриться и задать иф ячейка пустая то пишу иф нет иду на следующую.

Последний раз редактировалось zetrix; 24.04.2007 в 19:18.
fluer вне форума Ответить с цитированием
Старый 24.04.2007, 19:20   #5
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Мда.. странный код написали...
1) Сделай глобальную переменную, например Х
2) в обработчике кнопки напиши:

inc(x);
StringGrid1.Cells[1,x]=edit1.text;

так можно заполнить только один столбец, для других - аналогично.
zetrix вне форума Ответить с цитированием
Старый 24.04.2007, 23:02   #6
fluer
Пользователь
 
Регистрация: 10.03.2007
Сообщений: 14
По умолчанию

хахаха. это велено зделать с помощью хэша. тока что выяснил... т.е. нужно как я понял здеать стрингрид и вбивать в него спомощью хэш (целочисленное деление если не ошибаюсь)
fluer вне форума Ответить с цитированием
Старый 25.04.2007, 09:13   #7
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Цитата:
хэш (целочисленное деление если не ошибаюсь)
теперь уже моя очередь смеятся
Вы знаете что такое хэш??
Скорее всего не хЭш, а хЕш - это разные вещи.
Цитирую:
Цитата:
Хешированием называется процесс выделения элемента индексно-
го массива непосредственно по информации, которая содержится в
массиве. Полученный индекс называется хеш-адресом. Хеширование
обычно используется для уменьшения времени доступа к дисковым
файлам.
т.е. Значит записывать строку надо в определённое место в стринггриде, например хеш по первому символу:
S:=edit1.text;
StringGrid1.Cells[1,ord(s[1])]=s;
- тупо по ASCII коду первого символа
Можно придумать другую формулу, НО есть проблема, например Болван и Борис - запишутся в одну и туже строку! (это называется коллизией) Следовательно хеш надо делать не по 1 а по всем символам, но тогда очень много строк окажутся пустыми (лишний расход памяти)

Коллизия решается с помощью вспомогательных файлов, например на одну позицию (например 53) претендуют 3 записи (строки, числа - всё что угодно), в этом случае одна запись записывается в таблицу/БД(кароче в оригинал), а другие в файл с уникальным именем (например 53.txt) последовательно.
Скорее всего в стринг гриде надо будет записывать записи в 1-ы столбец, а коллизию - в нужной строке в другом столбце.
Т.е. записал ты одну запись в [1,53], то другие записи, которые должны встать в 53 строку будешь записывать в [2,53], [3,53] и т.д.

Тонкостей много. Хорошая задачка, наконец-то люди о деле спрашиваю, а не "2+2"...
zetrix вне форума Ответить с цитированием
Старый 25.04.2007, 09:52   #8
fluer
Пользователь
 
Регистрация: 10.03.2007
Сообщений: 14
По умолчанию

СПАСИБО ЧТО ПРОСВЕТИЛ. ПРОСТО НА ЛЕКЦИИ ПРЕПОД ГОВОРИЛ ХЕШ А НА ДОСКЕ КАК ЭТО ПИШЕТСЯ Я НЕ ВИЖУ ДЩАЖЕ С ПЕРВОГО РЯДА..
fluer вне форума Ответить с цитированием
Старый 25.04.2007, 11:23   #9
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
Сообщение

Цитата:
Сообщение от zetrix Посмотреть сообщение
Хорошая задачка, наконец-то люди о деле спрашиваю, а не "2+2"...
только вот спрашивают с 3 подсказки .. в начале топика вобще не понять о чем речь. и сейчас не много понятнее.

стрингрид - в нем ведь столбец не один может быть!
ну вот и пишите 'Борис' в след. ячейку нужной строки, если эта уже занята ..
%)
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать в Edit1.Text у меня информация Integer Shaitan63 Общие вопросы Delphi 11 29.01.2009 11:20
Чтение из Edit1 выражения Rusl92 Общие вопросы Delphi 11 11.04.2008 18:01
y=Edit1->Text ??? m.a.x.i.m Помощь студентам 8 31.03.2008 11:29
if edit1.text:='123'then ben95 Помощь студентам 5 28.01.2008 16:29
Поиск символа в Edit1.text Alar Компоненты Delphi 0 29.10.2006 19:02