Сайт - http://tibrazco.info. Предложения и замечания по рассылке отсылайте по e-mail: NC.Luthermail.ru.
Я обязательно учту ваши пожелания предложения при составлении рассылки.
Максим:
Здравствуйте, NC. Я достаточно давно программирую на Делфи, и вот недавно
я написал одну программулину, и она использует расчеты связанные с лунным календарем,
проблема в том что я совершенно не понимаю алгоритм построения этого календаря,
если вам встречался подобный алгоритм прошу поделиться опытом.
Честно
говоря мне алгоритм не встречался, но я знаю, где вы можете наверняка найти
искомую информацию.
Максим:
Здравствуйте, NC. И еще такой вопрос, компилирую ресурс строк (*.res) а потом
присоеденяю его к DLL-ке, дык вот, когда такой ботвы много то получается довольно
внушительная по размеру штуковина. Есть какой нить способ уменьшения res-файлов?
Если
будем уменьшать(изменять) файл типа *.res, то компилятор просто не поймет нашу
программу. Если Вы хотите уменьшить вес программы, то скачайте программку ASPack
Ксати
эту программку разработали русские программисты. Но она к сожалению платная.
Думаю, что в просторах интернета Вы сможте найти "лекарство". Программа
уменьшает вес где-то в 3, а иногда 5-6 раз!
Неизвестный:
Помоги написать программу секундомер с описание!! зарание благодарен!
Я
написал исходный текст программы и вылодил его на своем сайте tt-luther.
Программка очень проста и удобна. Сейчас обьясню как всё действует.
Вставляй
на форму Label и две кнопки. Одну кнопку обзывай "Старт", а
другую "Обнулить". Первая кнопка будет стартовать и останавливать
твой секундомер, вторая будет обнулять счетчик. Теперь вставляй на форму Timer.
Ставь свойство interval таймера на 100.
Теперь
нажми двойным счелчком на кнопку с надписью "Старт". Пиши такой код:
procedure
TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=not
Timer1.Enabled;
if
Timer1.Enabled then button1.Caption:='Стоп'
else
button1.Caption:='Старт'
end;
Если мы стартанули,
то надпись изменится на Стоп, и наоборот. При нажатии запускается или останавливается
таймер.
Теперь добавь
раздел глобальных переменных три переменные:
var
Form1: TForm1;
msec, sec, min
: integer;
Мы добавили три
переменны, которые будем использовать ниже. Ксати в этой программке я использовал
две функции о которых говорил ранее: StrToInt и IntToStr.
Теперь кликай
двойным счелчом на таймер и пиши:
procedure
TForm1.Timer1Timer(Sender: TObject);
var s:string;
begin
if
msec=10 then inc(sec); // Если кол-во милисекунд равно десяти, то
добавляем 1 к секундам
if
msec<10 then inc(msec) // Если кол-во милисекунд меньше десяти, то
добавляем 1 к милискундам
else
msec := 0; //в противном случае обнуляем милисекунду.
if
sec=60 then begin // Еслиsec равна 60, то обнуляем секунду и
добаляем 1 к минутам
sec
:= 0;
inc(min);
end;
s:=inttostr(min)+':';
//Меняем значени переменной s на количество минут и :
if
sec<10 then s:=s+'0'+inttostr(sec) else // если sec меньше
10, то добаляем к уже имеющимуся s ноль и количество секунд
s:=s+inttostr(sec);
// в противном случае, добавляем только количество секунд( в этом случае оно
естесвенно будет равно 10)
s:=s+':';
// прибавляем к s двоеточие
if
msec<10 then s:=s+'0'+inttostr(msec) else // Те же самые действия,
которые мы проводили с секундами, делаем с милисекундами
s:=s+inttostr(msec);
Label6.Caption
:= s; // Меняем надпись на лейбле на s
end;
Теперь опишем
реакцию на нажатие второй кнопки:
procedure
TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled:=false;
// Останавлием таймер
msec := 0; //
Обнуляем все переменные
sec := 0;
min := 0;
label6.caption:='0:00:00';
Button1.Caption
:= 'старт'; // Меняем надпись на первой кнопкой
end;
Заключение
Напоминаю, что предыдущие выпуски рассылки вы можете прочитать на моем сайте
http://tibrazco.info в разделе
рассылки http://tibrazco.info/mail.htm
И не бойтесь присылать свои вопросы, я отвечу на них и помещу их в рассылки,
чтобы
все читатели узнали что-то новое. Присылайте их сюда NC.Luthermail.ru.