|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Простейший ежедневник
В делфи не силён, всего написал 3 лёгеньких прожки и практикуюсь дальше... Есть задание написать графические часики (уже написал) и написать ежедневник, использую определённые компоненты:StringGrid и DateTimePicker. Суть в следующем:жмём на ячейку в StringGrid затем выбераем и щёлкаем на дату в DateTimePicker, в выбранной ячейки StringGrid'да появляется выбранное число в соседней строке пишем событие. Всё записывается в файлик. А при новом открывании проги StringGrid заполняется из файла, сверяет числа и если число совпадает с сегодняшним либо уже было выводим сообщение.
|
#2
|
|||
|
|||
а вопрос в чем?
правильный вопрос содержит в себе 90% ответа |
#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; Не забывайте делать резервные копии |