Работа идет со множеством строчных латинских букв.Требуется реализовать всевозможные операции над множествами.Формировать САМО множество необходимо посредством СтрингГрида.
Но здесь возникает проблема!!!
допустим, 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 и т.д.
Include(a, Copy(cells[Col,Row], 1, 1));должно сработать.
Include(a, (StringGrid1.cells[0, 0])[1]);
Include(a, Copy(cells[Col,Row], 1, 1));должно сработать.
Include(a, (StringGrid1.cells[0, 0])[1]);
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]);Ну я же просто для примера проставил такие индексы... Ты должна заменить их на нужные тебе...
Я просто маленько напутала..Запускаю я вот это:
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;
for i:=0 to 25 do ...А что, собственно, ты хотела? Ни один печатный символ не имеет кодов меньше 26, может быть, там должно быть 255?
for i:=0 to 25 do ...А что, собственно, ты хотела? Ни один печатный символ не имеет кодов меньше 26, может быть, там должно быть 255?
if Chr(i+97) in s then Result:=Result+''+Chr(i+97);