Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
2-1164961272
Alex_C
2006-12-01 11:21
2006.12.17
Как пищать динамиком?


2-1164720998
SKOmen
2006-11-28 16:36
2006.12.17
Написание своей БД


15-1164714403
Holy
2006-11-28 14:46
2006.12.17
Посоветуйте прогу


3-1160477086
Ольга
2006-10-10 14:44
2006.12.17
Сортировка набора данных, полученных из ХП


2-1164719095
Феникс
2006-11-28 16:04
2006.12.17
Не могу разобраться с ExtractFilePath(Application.ExeName)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский