![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
В делфи не силён, всего написал 3 лёгеньких прожки и практикуюсь дальше... Есть задание написать графические часики (уже написал) и написать ежедневник, использую определённые компоненты:StringGrid и DateTimePicker. Суть в следующем:жмём на ячейку в StringGrid затем выбераем и щёлкаем на дату в DateTimePicker, в выбранной ячейки StringGrid'да появляется выбранное число в соседней строке пишем событие. Всё записывается в файлик. А при новом открывании проги StringGrid заполняется из файла, сверяет числа и если число совпадает с сегодняшним либо уже было выводим сообщение.
|
|
#2
|
|||
|
|||
|
а вопрос в чем?
|
|
#3
|
|||
|
|||
|
Суть в следующем = вопрос в следующем)))
1)жмём на ячейку в StringGrid затем выбераем и щёлкаем на дату в DateTimePicker, в выбранной ячейки StringGrid'да появляется выбранное число - как? (впринципи вопрос в том как сделать чтобы в выбранной тобой ячейке вписывалось число) 2)Всё записывается в файлик - как? (как записывать в файл) 3)А при новом открывании проги StringGrid заполняется из файла, сверяет числа - как? |
|
#4
|
|||
|
|||
|
Возник ещё вопрос как обьявить текстовый файл?? я знаю что он обьявляется в переменных далее знания заканчиваются ))
|
|
#5
|
|||
|
|||
|
Можно применить типизированный файл. В тексте "SG" - TstringGrid.
Код:
type
MyRec = record
Dat : string[10];
Str : string[150];
end;
var
F : File of NyRec;
R : MyRec;
PathName : string;
//запись
procedure TForm1.Button1Click(Sender: TObject);
var
I : Integer;
begin
AssignFile(F, PathName);
Rewrite(F);
for I := 1 to SG.RowCount-1 do begin
R.Dat := SG.Cells[0, I];
R.Str := SG.Cells[1, I];
Write(F, R);
end;
CloseFile(F);
end;
//чтение из файла
procedure TForm1.Button2Click(Sender: TObject);
var
Cnt : Integer;
begin
if not FileExists(PathName) then begin
ShowMessage('Файл не найден!');
Exit;
end;
SG.RowCount := 2; //при условии, что в таблице есть заголовок
Cnt := 0;
AssignFile(F, PathName);
Reset(F);
while not EOF(F) do
begin
Read(F, R);
Inc(Cnt);
if Cnt > SG.RowCount then
SG.RowCount := SG.RowCount + 1;
SG.Cells[0, Cnt] := R.Dat;
SG.Cells[1, Cnt] := R.Str;
end;
CloseFile(F);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//файл с данными там же где и программа
PathName := ExtractFilePath((Application.ExeName))+'data.dat';
end;
//при изменении даты в DateTimePicker1 в текущую ячейку заносится дата
procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
SG.Cells[SG.Col, SG.Row] := DateToStr(DateTimePicker1.Date)
end; |