Работа идет со множеством строчных латинских букв.Требуется реализовать всевозможные операции над множествами.Формировать САМО множество необходимо посредством СтрингГрида. Но здесь возникает проблема!!! допустим, Litera=set of 'a'..'z'; a:Litera; Почему не удается выполнить действие a:=a+[cells[Col,Row]]? В cells[Col,Row] Col=25, Row=0. cells[0,0]=a cell[1,0]=b и т.д.
Потому, что Cells[i, j] - это строка, а не символ... Бери один символ (через Copy) - не будет никаких проблем...
Кроме этого используй Include для работы с множествами:
Include(a, Copy(cells[Col,Row], 1, 1));
должно сработать.
Переношу в раздел "Дельфи" ...
P.S. Извиняюсь, не так... Вот так:
Include(a, (StringGrid1.cells[0, 0])[1]);
Еще кое-что...Где-то ошибка..не отображается МНОЖЕСТВО,переведенное функцией SetToStr в строку, в StaticText1.Caption
function SetToStr(s:Litera):String; var i:integer; begin Result:=''; for i:=0 to 25 do if Chr(i) in s then Result:=Result+''+Chr(i+97); end; procedure TForm1.StringGrid1DblClick(Sender: TObject); begin with StringGrid1 do begin if RadioButton1.Checked then begin include(a,(StringGrid1.cells[0,0])[1]); StaticText1.Caption:=SetToStr(a) end; if RadioButton2.Checked then begin include(b,Chr(StrToInt(Cells[Col,Row]))); StaticText2.Caption:=SetToStr(b) end; end; end;]);
if RadioButton1.Checked then begin include(a,(StringGrid1.cells[0,0])[1]);
Ну я же просто для примера проставил такие индексы... Ты должна заменить их на нужные тебе...
И потом, ты уверена, что второй способ добавления символа во множество (через Chr, как ты добавляешь в B) работает? Тогда почему в двух местах - два разных способа? Пользуйся одинаковым...
procedure TForm1.StringGrid1DblClick(Sender: TObject); begin with StringGrid1 do begin if RadioButton1.Checked then begin include(a,(StringGrid1.cells[Col,Row])[1]); StaticText1.Caption:=SetToStr(a); end; if RadioButton2.Checked then begin include(b,(StringGrid1.cells[Col,Row])[1]); StaticText2.Caption:=SetToStr(b) end; end; end;
Выбранный элемент множества в СтринГриде заносится в множество,собственно так оно и формируется, а отображение этого множества должно произойти в СтатикТексте, но этот самый СтатикТекст остается пустым