Форум: "Начинающим";
Текущий архив: 2009.07.26;
Скачать: [xml.tar.bz2];
ВнизПара вопросов и траблов Найти похожие ветки
← →
Black (2009-06-01 15:44) [0]Дамы и господа, пишу курсовой на Delphi тема простая для понимания - "Органайзер" столкнулся с некоторыми банальными и не очень трудностями. Помогите пожалуйста в решении пары траблов и как более опытные подскажите лучшие чем мои алгоритмы. Исходный код (правда в нем много мусора) прилагается.
Кратко о проекте: 4 формы. Основная форма, это TMonthCalendar и TMainMenu. Вторая форма это добавление события на дату.Третья - чтение события с даты (т.е при двойном щелчке на дате в MonthCalendar на основной форме). Четвертая - пока не активная (пытался сделать несколько событий на одну дату). Пятая(ну как же без сентиментализма) - "О программе" или хвала разработчикам
===
Трабл #1) Довольно странная ошибка - сохраняю событие в файл
reset(base);
write(base,c_t);
showmessage(inttostr(filepos(base)));
closefile(base);
close;
showmessage(inttostr(filepos(base))); - выдает мне текущую позицию указателя в файле, дык вот при каждом сохранении программа перезаписывает предыдущую запись т.к. указатель не сдвигается, хотя это должно происходить автоматически
--
На всякий случай - проверьте корректность чтения
i:=1;
assignfile(base,"base.dat");
reset(base);
while not (eof(base)) do
begin
read(base,c_t_b[i]);
i:=i+1;
end;
closefile(base);
Трабл #2)Сохранение выравнивания текста
1)Проверяю применены ли операции выравнивания посредством стандартных action"ов и присваиваю их выделенным под них элементам булево-массива в типе данных
if richeditAlignRight1.Checked=true then begin c_t.format[1]:=true; showmessage("Yes1") end;
if richeditAlignCenter1.Checked=true then begin c_t.format[2]:=true; showmessage("Yes2") end;
2)При Двойном щелчке на дате проверяю содержимое файла на операции выравнивания и определяю свойства объекта RichEdit1 на форме три
if c_t_b[j].format[1]=true then begin f3flags[1]:=true;//form3.RichEdit1.Alignment:=taRightJustify;
if c_t_b[j].format[2]=true then f3flags[2]:=true;//form3.RichEdit1.Alignment:=taCenter;
Как видите пробовал по разному, в том варианте который вы видите сейчас я присваиваю булева массиву который использую как флаг значения а на создание формы три вешаю присвоение выравнивания либо вариант два
if c_t_b[j].format[1]=true then Form3.RichEdit1.Alignment:=taRightJustify;
if c_t_b[j].format[2]=true then form3.RichEdit1.Alignment:=taCenter;
Вопрос по другим свойствам текста, почему операцияRichEdit1.font.Style:=fsbold;
Приводит к "[DCC Error] Unit1.pas(122): E2010 Incompatible types: "TFontStyles" and "TFontStyle""
Как это предотвратить?
Если у кого-нибудь появится идея как можно написать (условиях уже написанного кода, т.е дописать) запись нескольких событий одного или разного типа на одну дату буду очень рад выслушать и принять к сведению.
Есть еще парочка вопросов и траблов, но их пока трогать не буду. Заранее благодарю
← →
clickmaker © (2009-06-01 15:46) [1]> RichEdit1.font.Style:=fsbold;
> Приводит к "[DCC Error] Unit1.pas(122): E2010 Incompatible
> types: "TFontStyles" and "TFontStyle""
> Как это предотвратить?
RichEdit1.font.Style:=[fsBold];
в хелпе даже пример есть
← →
И. Павел (2009-06-01 15:51) [2]
> программа перезаписывает предыдущую запись т.к. указатель
> не сдвигается
Или открывайте файл для добавления (Append), или не выполняйте Reset перед каждым Write (открывайте файл только один раз, а потом записывайте), или переходите на нужное место в файле через seek.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.07.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.044 c