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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2011, 19:41   #1
Mr_freeman
Форумчанин
 
Аватар для Mr_freeman
 
Регистрация: 17.01.2010
Сообщений: 277
По умолчанию Delphi. Графы. Матрица смежности. StringGrid.

Здравствуйте. Пишу программу для работы с графами. Присутствует таблица (StringGrid), в которую вводится граф в виде матрицы смежности. Как известно, матрица симметрична относительно главной диагонали.
У меня такой вопрос: можно ли сделать автоматическое заполнение симметричных ячеек? Т.е. если вводится элемент в ячейку [2,6] - тут же заполняется ячейка [6,2] таким же элементом. Заранее очень благодарен.
Mr_freeman вне форума Ответить с цитированием
Старый 04.10.2011, 19:48   #2
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

А чем Вам не нравится свойство StringGrid1.Cells ?
Код:
procedure TForm1.FormCreate(Sender: TObject);
var i, j: integer;
begin
  for i:=1 to StringGrid1.Rowcount -1 do
   for j:=i to StringGrid1.ColCount -1 do
   if i<>j then
   begin
   // вместо 12 значение с массива
    StringGrid1.Cells[i,j]:=inttostr(12); 
    StringGrid1.Cells[j,i]:=inttostr(12); 
   end else
   // диагональ
   StringGrid1.Cells[i,j]:='diag';
end;
95% сбоев и ошибок приложений, находится в полу метрах от монитора

Последний раз редактировалось JUDAS; 04.10.2011 в 19:52.
JUDAS вне форума Ответить с цитированием
Старый 04.10.2011, 20:04   #3
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

установи обработчик onSetEditText
Код:
procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
  ARow: Integer; const Value: String);
begin
if Acol<>Arow then StringGrid1.Cells[Arow,Acol]:=Value;
end;
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 04.10.2011, 20:17   #4
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Step_UA, в случае с наличием Вашего обработчика, в моём коде можно убрать строку
StringGrid1.Cells[j,i]:=inttostr(12);
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 04.10.2011, 20:20   #5
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

2 JUDAS, насколько я понимаю нужно при вводе с клавиатуры.
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 04.10.2011, 20:28   #6
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Цитата:
насколько я понимаю нужно при вводе с клавиатуры.
StringGrid1+клавиатура?
варианта 2
- делфи фор Линукс
- паскаль со стринггридом
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 04.10.2011, 20:48   #7
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

не по теме конечно: может я что-то не так понял, но что вас смущает в StringGrid1+клавиатура? options - goEditing и вперед ...
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 04.10.2011, 22:23   #8
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

аа вы в этом ракурсе, ну так товарищь хочет автоматом заполнить )
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 05.10.2011, 00:01   #9
Mr_freeman
Форумчанин
 
Аватар для Mr_freeman
 
Регистрация: 17.01.2010
Сообщений: 277
По умолчанию

Да, я как раз говорил про клавиатуру - чтоб вводить не всю матрицу - а ток половину(чтоб вторая сразу заполнялась). Нужно что то напобобие onChange как у TEdit..
onSetEditText - я так понял это оно и есть??
Mr_freeman вне форума Ответить с цитированием
Старый 05.10.2011, 00:24   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
onSetEditText - я так понял это оно и есть??
в точку!

вставьте туда код, предложенный Step_UA и наслаждайтесь тем, как матрица "сама" зеркально заполняется!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Матрица смежности rubakKa Общие вопросы C/C++ 5 18.12.2010 21:33
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11
Графы, матрица смежности. SteRN89 Помощь студентам 1 14.01.2009 08:11