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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2008, 17:02   #1
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию Как динамично быстро загрузить в компонент Stringgrid 34 символа?

Добрый день!

Как динамично быстро загрузить в компонент Stringgrid 34 символа по одному в каждую ячейу без традиционного перебора ячеек в цикле?
Если можно небольшой пример.
Спасибо.
SkAndrew вне форума Ответить с цитированием
Старый 12.04.2008, 18:13   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
без традиционного перебора ячеек в цикле
Только если написать 34 одинаковых оператора занесения символа в ячейку, правда, важно не ошибиться при простановке индексов (столбцов и строк)...
****************************
Теперь будем ждать вопроса типа: "Как самому написать игру вроде DOOM, только чтобы поменьше буковок вносить в код ?"...

Последний раз редактировалось mihali4; 13.04.2008 в 02:15.
mihali4 вне форума Ответить с цитированием
Старый 12.04.2008, 20:42   #3
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

в StringGrid (с учетем того что ввод осуществляется в разные строки и столбцы) никак
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 13.04.2008, 01:31   #4
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Цитата:
Сообщение от SkAndrew Посмотреть сообщение
Как динамично быстро загрузить в компонент Stringgrid 34 символа...
А что подразумевается под словом "быстро"? Быстрее, чем за некоторое заданное время или как?

P.S. Скорее была бы проблема загрузить их медленно.
Jeni вне форума Ответить с цитированием
Старый 13.04.2008, 01:36   #5
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию Речь идет о создании диалогового окна выбора символов наподобие стандартной таблицы символов Windows.

Речь идет о создании диалогового окна выбора символов наподобие стандартной таблицы символов Windows. Если можно программно вызвать ее то это решение задачи (тогда вопрос как это сделать прогораммно из своего приложения так чтобы после выбора символа он был вписан в, например в компонент Edit1 в положение курсора), если это осуществить нельзя тогда вопрос как вывести и собрать символы в таблицу (их 34) максимально быстро, чтобы при открытии формы с таблицей она какждый раз не создавалась заново. Спасибо.
SkAndrew вне форума Ответить с цитированием
Старый 13.04.2008, 01:51   #6
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Насчет вызова стандартной таблицы символов ничего сказать не могу, а что касается открытия формы с таблицей, то, во-первых, StringGrid хранит всё, что в нее записывалось, т.е. достаточно поместить туда символы один раз, а во-вторых - даже если создавать таблицу заново каждый раз (в том числе вместе с формой), настраивать её и заносить символы, то всё равно это будет занимать ничтожное время (вряд ли больше одной сотой секунды).
Jeni вне форума Ответить с цитированием
Старый 13.04.2008, 01:54   #7
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию

Вот я прошу подсказать пример использования процедуры быстрого заполнения ячеек сиволами. Спасибо.
SkAndrew вне форума Ответить с цитированием
Старый 13.04.2008, 02:06   #8
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Пример, конечно, привести можно:
Код:
var
  // Массив символов
  CharArray: array[1..34] of Char;

procedure FillTable(Grid: TStringGrid);
var
  I: Integer;
begin
  // Заполнит символами из массива верхнюю строчку заданной таблицы
  for I := 1 to 34 do
    Grid.Cells[I, 0] := CharArray[I];
end;
Вот только я по-прежнему не понимаю, что значит "быстрого заполнения". Даже если бы символов было 34 тысячи, то и тогда было бы очень быстро.
Jeni вне форума Ответить с цитированием
Старый 13.04.2008, 03:03   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Речь идет о создании диалогового окна выбора символов наподобие стандартной таблицы символов Windows. Если можно программно вызвать ее то это решение задачи (тогда вопрос как это сделать прогораммно из своего приложения так чтобы после выбора символа он был вписан в, например в компонент Edit1 в положение курсора)
А кто, собственно, мешает вам это сделать?
Файл называется CHARMAP.EXE, вызывайте его себе на здоровье...
mihali4 вне форума Ответить с цитированием
Старый 13.04.2008, 12:06   #10
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию Как загрузить ячейки от массива через StringGrid1DrawCell?

Спасибо за ответ.
Я предполагал, что есть решение загрузки массива символов через процедуру StringGrid - StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState)/ И чем загрузка через эту процедуру будет отличаться от приведенного примера Jeni^
var
// Массив символов
CharArray: array[1..34] of Char;

procedure FillTable(Grid: TStringGrid);
var
I: Integer;
begin
// Заполнит символами из массива верхнюю строчку заданной таблицы
for I := 1 to 34 do
Grid.Cells[I, 0] := CharArray[i];
end;
Спасибо!
SkAndrew вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быстро и удобно! Shurik Hacker Софт 0 12.01.2008 12:54
Как быстро переверннуть(отразить) изображение? Paul Hindenburg Мультимедиа в Delphi 2 10.01.2008 12:51
Быстро получить цвет пикселя... prizrak1390 Мультимедиа в Delphi 4 09.01.2008 20:28
загрузить в компонент imagelist 3 рисунка, а потом по очереди выводить их Stanislav Компоненты Delphi 2 25.11.2007 01:43