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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2011, 17:20   #1
om3n
Пользователь
 
Регистрация: 14.04.2010
Сообщений: 17
По умолчанию openDialog и saveDialog

В общем есть программа, она по нажатии кнопки выводит исходный список студентов, и по нажатию второй кнопки - фильтрует их (выводит те фамилии, которые начинаются с гласной буквы). Мне в эту программу надо вставить сейвдиалог, чтобы он сохранял то, что находится в стринггрид2 (после фильтрации списка) и опендиалог(чтобы он открывал этот же сохраненный список).
Помогите пожалуйста, с диалогами вобще не пойму как работать
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    Button1: TButton;
    Label3: TLabel;
    Label4: TLabel;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);

     procedure Button2Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
const n=6;
type
rab=record
fio:string[30];
data:string[5];
mes:string[5];
god:string[10];
kurs:string[5];
grup:string[5];


end;
var
a:array[1..n] of rab;
i,j:integer;

procedure TForm1.Button1Click(Sender: TObject);
begin

with StringGrid1 do
begin
Cells[0,0]:='№';
Cells[1,0]:='ФИО';
Cells[2,0]:='Число';
Cells[3,0]:='Месяц';
Cells[4,0]:='Год поступления';
Cells[5,0]:='Курс';
Cells[6,0]:='Группа';
for i:=1 to n do
Cells[0,i]:=IntToStr(i);
Cells[1,1]:='Одышева И.И.';
Cells[2,1]:='23';
Cells[3,1]:='2';
Cells[4,1]:='2003';
Cells[5,1]:='5';
Cells[6,1]:='BM';
Cells[1,2]:='Албанов П.П.';
Cells[2,2]:='7';
Cells[3,2]:='3';
Cells[4,2]:='95';
Cells[5,2]:='4';
Cells[6,2]:='K';
Cells[1,3]:='Семенов С.С.';
Cells[2,3]:='5';
Cells[3,3]:='12';
Cells[4,3]:='2007';
Cells[5,3]:='1';
Cells[6,3]:='BM';
Cells[1,4]:='Кадышево Н.Т.';
Cells[2,4]:='28';
Cells[2,4]:='2';
Cells[3,4]:='4';
Cells[4,4]:='2000';
Cells[5,4]:='4';
Cells[6,4]:='BM';
Cells[1,5]:='Оладушкин З.З.';
Cells[2,5]:='4';
Cells[3,5]:='3';
Cells[4,5]:='2008';
Cells[5,5]:='2';
Cells[6,5]:='BM';
for i:=1 to 5 do
with a[i] do
begin
fio:=Cells[1,i];
data:=Cells[2,i];
mes:=Cells[3,i];
god:=Cells[4,i];
kurs:=Cells[5,i];
grup:=Cells[6,i];
end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
 begin

   with StringGrid2 do              // Очистка ячеек StringGrid3
   for i:=0 to n do
    for j:=0 to n do
     Cells[j,i]:=' ';
  with StringGrid2 do

   begin
Cells[0,0]:='№';
Cells[1,0]:='ФИО';
Cells[2,0]:='Число';
Cells[3,0]:='Месяц';
Cells[4,0]:='Год поступления';
Cells[5,0]:='Курс';
Cells[6,0]:='Группа';
   j:=0;
    for i:=1 to n do
     with a[i] do
     if (fio[1]='А') or
      (fio[1]='Е') or
      (fio[1]='И')or
      (fio[1]='О')or
      (fio[1]='У')or
      (fio[1]='Э') or
      (fio[1]='Ю') or
      (fio[1]='Я')
      then
      begin
       j:=j+1;
       Cells[0,j]:=IntToStr(j);
       Cells[1,j]:=fio;

       Cells[3,j]:=mes;
    Cells[2,j]:=data;
    Cells[4,j]:=god;
    Cells[5,j]:=kurs;
    Cells[6,j]:=grup;
  end;
  end;
 end;
 end.
om3n вне форума Ответить с цитированием
Старый 03.02.2011, 17:23   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> с диалогами вобще не пойму как работать

тяжело работать с тем, чего нет. Положи их на форму, для начала.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 03.02.2011, 17:33   #3
om3n
Пользователь
 
Регистрация: 14.04.2010
Сообщений: 17
По умолчанию

Это естественно, просто тут я их не отобразил, не знаю как правильно написать код для диалогов.
om3n вне форума Ответить с цитированием
Старый 03.02.2011, 17:36   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Код:
if (OpenDialog1.Execute()) then 
  LoadFromFile(OpenDialog1.FileName);

if (SaveDialog1.Execute()) then 
  SaveToFile(SaveDialog1.FileName);
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заменить системный OpenDialog, SaveDialog aslan_kz Win Api 1 22.01.2011 21:14
StringGrid и SaveDialog/OpenDialog r_yevgeniy Общие вопросы Delphi 2 04.11.2010 11:17
SaveDialog nXs Общие вопросы Delphi 2 30.04.2010 15:28
OpenDialog and SaveDialog Kortik Помощь студентам 5 18.05.2009 09:58
OpenDialog.Options:=OpenDialog.Options+[ofAllowMultiSelect]; necky Компоненты Delphi 2 11.08.2007 12:53