Текущий архив: 2006.12.17;
Скачать: CL | DM;
ВнизСоздание записей на Делфи Найти похожие ветки
← →
Nastikk © (2006-12-01 20:57) [0]Задачу эту я решила на Паскале( код внизу), но не знаю как теперь это перевести на Делфи. Мне говорили использовать stringgrid, я пыталась, но не получается. Если возможно покажите в коде программы, как это правильно сделать, но попроще. Я плохо в Делфи разбираюсь.
Задача:
Фамилия Имя Факультативы
Мат. Физ. Инф.
Павлов Серг true false true
Мисюченко Ира true true false
Сидорон Зоя false false true
Кладов Роман true false false
Создайте массив следующего содержания и структуры, выведите фамилии и имена школьников, которые не посещают факультатив по физике или по математике.
program nastya;
uses crt;
const n=2;
type st=record
fam,ima: string[20];
fiz,inf,mat:string[20];
end;
var
x: arrAy[1..n] of st;m:st;
i,j:integer;
begin
clrscr;
for i:=1 to n do begin
writeln("vvedite familiyu ");
readln(x[i].fam);
writeln("vvedite imya ");
readln(x[i].ima);
writeln("hodit na informatiku? ");
readln(x[i].inf);
writeln(" na fiziku ? ");
readln(x[i].fiz);
writeln(" na matematiku ? ");
readln(x[i].mat);
end;writeln("---------");
for i:=1 to 3 do
if (x[i].mat="net") or (x[i].fiz="net") then
with x[i] do
writeln(fam," ",ima," ");
readln;
END.
← →
Джо © (2006-12-01 21:07) [1]У TStringGrid есть свойство Cells[x,y] в котором можно задать содержимое ячейки с коорднатами X и Y (по горизонтали и вертикали, соответственно). Прямо как в Excel. Проще, кажется, некуда. Еще учитывать, что есть два свойства ColCount и RowCount, в которых задается кол-во столбцов и строк в таблице, соответственно. Ну, и еще есть F1, ежели где будет затык :)
← →
Nastikk © (2006-12-01 21:21) [2]Спасибо за подробный ответ. F1 не работает, а как этот stringgrid записать правильно, чтобы записи вводились не знаю. Я даже не знаю, где писать, на форме в этом stringgrid или как-то задавать программно присвоением мои записи? Пожалуйста покажите этот кусочек ввода записей в делфи. как он в коде выглядит?
← →
Джо © (2006-12-01 21:23) [3]> Пожалуйста покажите этот кусочек ввода записей в делфи.
StringGrid1.Cells[2,3] := "мама мыла раму";
Этот код выводит в ячейке 2;3 экземпляра TStringGrid"а слова из букваря.
На форму нужно положить этот самый компонент.
← →
ProgRAMmer Dimonych © (2006-12-01 21:24) [4]По условию задачи, кстати, использовать TStringGrid необязательно. Можно содержимое записи выводить тем же MessageBox"ом при случае.
← →
Nastikk © (2006-12-01 22:33) [5]Вот что получилось . Я даже очистить могу,но не получается теперь вывести только фамилию и имя того, кто не посещал факультатив по математике или физике. (у меня иванов должен быть, а все остаются на месте или после очистик ничего не выводится ).Посмотрите пожалуйста Button2. Если Button1 записывают, тоже не работает.?
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
StringGrid1.Cells[1,1] := "Фамилия ";
StringGrid1.Cells[2,1] := "Имя";
StringGrid1.Cells[3,1] := "математика";
StringGrid1.Cells[4,1] := "физика";
StringGrid1.Cells[5,1] := "информатика";
StringGrid1.Cells[1,2] := "Иванов";
StringGrid1.Cells[2,2] := "Коля";
StringGrid1.Cells[3,2] := "да";
StringGrid1.Cells[4,2] := "да";
StringGrid1.Cells[5,2] := "нет";
StringGrid1.Cells[1,3] := "Петров";
StringGrid1.Cells[2,3] := "Вася";
StringGrid1.Cells[3,3] := "да";
StringGrid1.Cells[4,3] := "да";
StringGrid1.Cells[5,3] := "да";
end;
procedure TForm1.Button2Click(Sender: TObject);
var i,j:integer;
begin
for j:=2 to 3 do begin
for i:=1 to 4 do
if (StringGrid1.Cells[3,j]= "нет") or (StringGrid1.Cells[4,j]= "нет") then
StringGrid1.Cells[1,j]:= StringGrid1.Cells[1,j];
StringGrid1.Cells[2,j]:= StringGrid1.Cells[2,j];
end;end;
procedure TForm1.Button3Click(Sender: TObject);
var i,j:integer;
begin
for j:=2 to 3 do begin
for i:=1 to 4 do
StringGrid1.Cells[1,j]:="";
StringGrid1.Cells[2,j]:= "";
StringGrid1.Cells[3,j] := "";
StringGrid1.Cells[4,j] := "";
StringGrid1.Cells[5,j] := "";end;
end;
end.
← →
Virgo_Style © (2006-12-01 23:30) [6]Nastikk © (01.12.06 22:33) [5]
StringGrid1.Cells[1,j]:= StringGrid1.Cells[1,j];
StringGrid1.Cells[2,j]:= StringGrid1.Cells[2,j];
в код не вникал, но одни и те же индексы слева и справа несколько озадачивают
← →
Nastikk © (2006-12-02 00:10) [7]просто в сells как-то строки и ряды поменяны местами, не так как в Паскале.
Я додумала 2-ю кнопку сама:procedure TForm1.Button2Click(Sender: TObject);
var i,j:integer;
begin
for j:=2 to 3 do begin
for i:=1 to 4 do
begin
if (StringGrid1.Cells[3,j]= "нет") or (StringGrid1.Cells[4,j]= "нет") then
begin
StringGrid1.Cells[1,j]:= StringGrid1.Cells[1,j];
StringGrid1.Cells[2,j]:= StringGrid1.Cells[2,j];
StringGrid1.Cells[3,j]:= "";
StringGrid1.Cells[4,j]:= "";
StringGrid1.Cells[5,j]:= "";end;
if (StringGrid1.Cells[3,j]= "да") and (StringGrid1.Cells[4,j]= "да") then
begin
StringGrid1.Cells[1,j]:= "";
StringGrid1.Cells[2,j]:= "";
StringGrid1.Cells[3,j]:= "";
StringGrid1.Cells[4,j]:= "";
StringGrid1.Cells[5,j]:= "";
end;end;
end;
end;
← →
ProgRAMmer Dimonych © (2006-12-02 00:14) [8]> StringGrid1.Cells[1,j]:= StringGrid1.Cells[1,j];
> StringGrid1.Cells[2,j]:= StringGrid1.Cells[2,j];
Имелось в виду, что в этих двух строках ячейкам присваиваются их собственные значения...
← →
TUser © (2006-12-02 10:36) [9]
> Имелось в виду, что в этих двух строках ячейкам присваиваются
> их собственные значения...
А зачем????
← →
ProgRAMmer Dimonych © (2006-12-02 11:40) [10]> TUser © (02.12.06 10:36) [9]
Вот и мы подумали: а зачем?
← →
ProgRAMmer Dimonych © (2006-12-02 11:41) [11]P.S. См. [6]
Страницы: 1 вся ветка
Текущий архив: 2006.12.17;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.047 c