А зачем ты вообще это в цикле делаешь? Делай по таймеру. Вот пример:
| Код | type TTimeItem = record ru, en : string; size : integer; end;
const mm1: array[1..12] of TTimeItem = ( (ru: 'ЯНВАРЬ'; en: 'JANURY'; size: 14), (ru: 'ФЕВРАЛЬ'; en: 'FEBRUARY'; size: 14), (ru: 'МАРТ'; en: 'MARCH'; size: 16), (ru: 'АПРЕЛЬ'; en: 'APRIL'; size: 15), (ru: 'МАЙ'; en: 'MAY'; size: 18), (ru: 'ИЮНЬ'; en: 'JUNE'; size: 18), (ru: 'ИЮЛЬ'; en: 'JULY'; size: 17), (ru: 'АВГУСТ'; en: 'AUGUST'; size: 12), (ru: 'СЕНТЯБРЬ'; en: 'SEPTEMBER'; size: 14), (ru: 'ОКТЯБРЬ'; en: 'OCTOBER'; size: 14), (ru: 'НОЯБРЬ'; en: 'NOVEMBER'; size: 15), (ru: 'ДЕСЯБРЬ'; en: 'DECEMBER'; size: 15) ); ww1: array[1..7] of TTimeItem = ( (ru: 'ВОСКРЕСЕНЬЕ'; en: 'SUNDAY'; size: 14), (ru: 'ПОНЕДЕЛЬНИК'; en: 'MONDAY'; size: 14), (ru: 'ВТОРНИК'; en: 'TUESDAY'; size: 14), (ru: 'СРЕДА'; en: 'WEDNESDAY'; size: 15), (ru: 'ЧЕТВЕРГ'; en: 'THURSDAY'; size: 12), (ru: 'ПЯТНИЦА'; en: 'FRIDAY'; size: 16), (ru: 'СУББОТА'; en: 'SATURDAY'; size: 12) );
var lang: Integer = 1; // язык y: Integer = 0;
// можно без этой функции function GetDateName(dt: TDateTime; format: string): String; var buffer:PChar; st:SYSTEMTIME; begin GetMem(buffer, 256); ZeroMemory(@st, SizeOf(SYSTEMTIME)); DateTimeToSystemTime(dt, st); GetDateFormat(LOCALE_USER_DEFAULT, 0, @st, PChar(format), buffer, 256); result := UpperCase(buffer); FreeMem(buffer); end;
// По таймеру procedure TForm1.Timer1Timer(Sender: TObject); var dt: TDateTime; yy, mm, dd, ww: word; begin dt := now; // время, которое хотим показывать DecodeDate(dt, yy, mm, dd); ww := DayOfWeek(dt); Label1.Caption := IntToStr(dd); // день case lang of 1: begin // русский Label2.Caption := mm1[mht].ru; // месяц Label3.Caption := ww1[ww].ru; // день недели end; 2: begin // английский Label2.Caption := mm1[mht].en; // месяц Label3.Caption := ww1[ww].en; // день недели end; else // язык системы Label2.Caption := GetDateName(dt, 'MMMM'); Label3.Caption := GetDateName(dt, 'dddd'); end; Label2.Font.Size := mm1[mht].size; // размер шрифта месяца Label3.Font.Size := ww1[ww].size; // размер шрифта дня недели if y = 0 then begin label4.Font.Size:=28; Label4.Caption := FormatDateTime('hh:mm:ss', dt); // время end else begin label4.Font.Size:=42; Label4.Caption := FormatDateTime('hh:mm', dt); // время end; end;
procedure TForm1.Button1Click(Sender: TObject); begin // создаём таймер в любом удобном месте. Либо просто бросаем на форму TTimer.Create(self).OnTimer := Timer1Timer; end; |
Просто брось на форму 4 лабела. Желательно ещё и таймер настроить. Хотя можно и по кнопке или на создание формы подвесить. |