2016-06-19 22:24:29 +00:00
|
|
|
unit demoMain;
|
|
|
|
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
uses
|
|
|
|
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
|
2016-06-22 20:19:35 +00:00
|
|
|
StdCtrls, ComCtrls, LCLTranslator, Menus,
|
|
|
|
VpBaseDS, VpDayView, VpWeekView, VpTaskList, VpAbout,
|
2016-07-02 09:43:47 +00:00
|
|
|
VpContactGrid, VpMonthView, VpResEditDlg, VpContactButtons, VpBufDS, VpNavBar,
|
2016-07-02 23:14:26 +00:00
|
|
|
VpData, Types;
|
2016-06-19 22:24:29 +00:00
|
|
|
|
|
|
|
type
|
|
|
|
|
|
|
|
{ TMainForm }
|
|
|
|
|
|
|
|
TMainForm = class(TForm)
|
|
|
|
BtnNewRes: TButton;
|
|
|
|
BtnEditRes: TButton;
|
2016-06-22 20:19:35 +00:00
|
|
|
BtnDeleteRes: TButton;
|
2016-06-19 22:24:29 +00:00
|
|
|
CbLanguages: TComboBox;
|
2016-06-22 20:19:35 +00:00
|
|
|
CbGranularity: TComboBox;
|
|
|
|
CbTimeFormat: TComboBox;
|
|
|
|
CbFirstDayOfWeek: TComboBox;
|
2016-06-23 23:16:34 +00:00
|
|
|
CbAllowInplaceEditing: TCheckBox;
|
2016-06-29 13:22:33 +00:00
|
|
|
CbAddressBuilder: TComboBox;
|
2016-07-02 23:14:26 +00:00
|
|
|
ComboBox1: TComboBox;
|
|
|
|
CbDrawingStyle: TComboBox;
|
2016-06-22 20:19:35 +00:00
|
|
|
Img: TImage;
|
2016-06-19 22:24:29 +00:00
|
|
|
ImageList1: TImageList;
|
2016-07-02 23:14:26 +00:00
|
|
|
LblDrawingStyle: TLabel;
|
2016-06-29 13:22:33 +00:00
|
|
|
LblAddressBuilder: TLabel;
|
2016-06-22 20:19:35 +00:00
|
|
|
LblFirstDayOfWeek: TLabel;
|
|
|
|
LblTimeFormat: TLabel;
|
|
|
|
LblGranularity: TLabel;
|
|
|
|
LblLanguage: TLabel;
|
|
|
|
LblVisibleDays: TLabel;
|
|
|
|
TitleLbl: TLabel;
|
|
|
|
MainMenu1: TMainMenu;
|
|
|
|
MenuItem1: TMenuItem;
|
|
|
|
MenuItem2: TMenuItem;
|
|
|
|
MnuSettings: TMenuItem;
|
|
|
|
MnuAbout: TMenuItem;
|
|
|
|
MnuMaintenance: TMenuItem;
|
|
|
|
MnuQuit: TMenuItem;
|
|
|
|
MnuResources: TMenuItem;
|
2016-06-19 22:24:29 +00:00
|
|
|
PageControl1: TPageControl;
|
|
|
|
Panel1: TPanel;
|
2016-06-22 20:19:35 +00:00
|
|
|
LeftPanel: TPanel;
|
2016-06-22 14:28:19 +00:00
|
|
|
DaySelectorPanel: TPanel;
|
2016-06-22 20:19:35 +00:00
|
|
|
HeaderPanel: TPanel;
|
|
|
|
Panel6: TPanel;
|
2016-06-19 22:24:29 +00:00
|
|
|
RbAllTasks: TRadioButton;
|
|
|
|
RbHideCompletedTasks: TRadioButton;
|
|
|
|
Splitter2: TSplitter;
|
|
|
|
Splitter3: TSplitter;
|
|
|
|
TabEvents: TTabSheet;
|
|
|
|
TabContacts: TTabSheet;
|
2016-06-22 20:19:35 +00:00
|
|
|
TabResources: TTabSheet;
|
|
|
|
TabSettings: TTabSheet;
|
2016-06-19 22:24:29 +00:00
|
|
|
TabTasks: TTabSheet;
|
2016-06-22 20:19:35 +00:00
|
|
|
DaysTrackBar: TTrackBar;
|
2016-06-19 22:24:29 +00:00
|
|
|
VpBufDSDataStore1: TVpBufDSDataStore;
|
|
|
|
VpContactButtonBar1: TVpContactButtonBar;
|
|
|
|
VpContactGrid1: TVpContactGrid;
|
|
|
|
VpControlLink1: TVpControlLink;
|
|
|
|
VpDayView1: TVpDayView;
|
|
|
|
VpMonthView1: TVpMonthView;
|
|
|
|
VpNavBar1: TVpNavBar;
|
|
|
|
VpResourceCombo1: TVpResourceCombo;
|
|
|
|
VpResourceEditDialog1: TVpResourceEditDialog;
|
|
|
|
VpTaskList1: TVpTaskList;
|
|
|
|
VpWeekView1: TVpWeekView;
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure BtnDeleteResClick(Sender: TObject);
|
2016-06-19 22:24:29 +00:00
|
|
|
procedure BtnNewResClick(Sender: TObject);
|
|
|
|
procedure BtnEditResClick(Sender: TObject);
|
2016-06-24 10:33:55 +00:00
|
|
|
procedure Cb3DChange(Sender: TObject);
|
2016-06-29 13:22:33 +00:00
|
|
|
procedure CbAddressBuilderChange(Sender: TObject);
|
2016-06-23 23:16:34 +00:00
|
|
|
procedure CbAllowInplaceEditingChange(Sender: TObject);
|
2016-07-02 23:14:26 +00:00
|
|
|
procedure CbDrawingStyleChange(Sender: TObject);
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure CbFirstDayOfWeekChange(Sender: TObject);
|
|
|
|
procedure CbGranularityChange(Sender: TObject);
|
2016-06-19 22:24:29 +00:00
|
|
|
procedure CbLanguagesChange(Sender: TObject);
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure CbTimeFormatChange(Sender: TObject);
|
2016-06-19 22:24:29 +00:00
|
|
|
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
|
|
|
procedure FormCreate(Sender: TObject);
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure MnuQuitClick(Sender: TObject);
|
|
|
|
procedure MnuResourcesClick(Sender: TObject);
|
|
|
|
procedure MnuSettingsClick(Sender: TObject);
|
|
|
|
procedure MnuAboutClick(Sender: TObject);
|
2016-06-19 22:24:29 +00:00
|
|
|
procedure RbAllTasksChange(Sender: TObject);
|
|
|
|
procedure RbHideCompletedTasksChange(Sender: TObject);
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure DaysTrackBarChange(Sender: TObject);
|
2016-06-19 22:24:29 +00:00
|
|
|
procedure VpNavBar1ItemClick(Sender: TObject; Button: TMouseButton;
|
|
|
|
Shift: TShiftState; Index: Integer);
|
|
|
|
private
|
|
|
|
{ private declarations }
|
|
|
|
FLang: String;
|
2016-06-22 20:19:35 +00:00
|
|
|
FActiveView: Integer;
|
2016-06-24 17:55:44 +00:00
|
|
|
FVisibleDays: Integer;
|
2016-06-19 22:24:29 +00:00
|
|
|
procedure PopulateLanguages;
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure SetActiveView(AValue: Integer);
|
2016-06-19 22:24:29 +00:00
|
|
|
procedure SetLanguage(ALang: String); overload;
|
|
|
|
procedure SetLanguage(AIndex: Integer); overload;
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure ShowAllEvents;
|
|
|
|
procedure ShowContacts;
|
|
|
|
procedure ShowEventsPerDay;
|
|
|
|
procedure ShowEventsPerMonth;
|
|
|
|
procedure ShowEventsPerWeek;
|
|
|
|
procedure ShowResources;
|
|
|
|
procedure ShowSettings;
|
|
|
|
procedure ShowTasks;
|
|
|
|
|
2016-06-24 17:55:44 +00:00
|
|
|
procedure ReadIni;
|
2016-06-19 22:24:29 +00:00
|
|
|
procedure WriteIni;
|
|
|
|
public
|
|
|
|
{ public declarations }
|
|
|
|
end;
|
|
|
|
|
|
|
|
var
|
|
|
|
MainForm: TMainForm;
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
|
|
{$R *.lfm}
|
|
|
|
|
|
|
|
uses
|
|
|
|
{$IFDEF WINDOWS}
|
|
|
|
Windows,
|
|
|
|
{$ENDIF}
|
2016-07-02 09:43:47 +00:00
|
|
|
LResources, LazFileUtils, LazUTF8, StrUtils, Translations, IniFiles, Math,
|
|
|
|
VpMisc, VpBase;
|
2016-06-19 22:24:29 +00:00
|
|
|
|
|
|
|
const
|
|
|
|
LANGUAGE_DIR = '..\..\languages\';
|
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
resourcestring
|
|
|
|
RSConfirmDeleteRes = 'Do you really want to delete resource %s?';
|
|
|
|
RSEventsOverview = 'Events overview';
|
|
|
|
RSEventsPerMonth = 'Events per month';
|
|
|
|
RSEventsPerWeek = 'Events per week';
|
|
|
|
RSEventsPerDay = 'Events per day';
|
|
|
|
RSTasks = 'Tasks';
|
|
|
|
RSContacts = 'Contacts';
|
|
|
|
RSResources = 'Resources';
|
|
|
|
RSSettings = 'Program settings';
|
|
|
|
RSSettings_short = 'Settings';
|
|
|
|
RSPlanner = 'Planner';
|
|
|
|
RSMaintenance = 'Maintenance';
|
|
|
|
RS24Hours = '24 hours';
|
|
|
|
RS12Hours = '12 hours AM/PM';
|
|
|
|
RS5Min = '5 min';
|
|
|
|
RS6Min = '6 min';
|
|
|
|
RS10Min = '10 min';
|
|
|
|
RS15Min = '15 min';
|
|
|
|
RS20Min = '20 min';
|
|
|
|
RS30Min = '30 min';
|
|
|
|
RS60Min = '60 min';
|
|
|
|
RSSunday = 'Sunday';
|
|
|
|
RSMonday = 'Monday';
|
|
|
|
RSTuesday = 'Tuesday';
|
|
|
|
RSWednesday = 'Wednesday';
|
|
|
|
RSThursday = 'Thursday';
|
|
|
|
RSFriday = 'Friday';
|
|
|
|
RSSaturday = 'Saturday';
|
|
|
|
|
2016-06-19 22:24:29 +00:00
|
|
|
{$IFDEF WINDOWS}
|
|
|
|
{ This function determines the LCID from the language code.
|
|
|
|
Works only for Windows. }
|
|
|
|
function LangToLCID(ALang: String): Integer;
|
|
|
|
begin
|
|
|
|
case lowercase(ALang) of
|
|
|
|
'' : Result := $0409; // Default = englisch
|
|
|
|
'ar' : Result := $0401; // Arabic
|
|
|
|
'bg' : Result := $0403; // Bulgarian
|
|
|
|
'ca' : Result := $0403; // Catalan
|
|
|
|
'cs' : Result := $0405; // Czech
|
|
|
|
'de' : Result := $0407; // German
|
|
|
|
'en' : Result := $0409; // English (US)
|
|
|
|
'es' : Result := $040A; // Spanisch
|
|
|
|
'fi' : Result := $040B; // Finnish
|
|
|
|
'fr' : Result := $040C; // French
|
|
|
|
'he' : Result := $040D; // Hebrew
|
|
|
|
'hu' : Result := $040E; // Hungarian
|
|
|
|
'it' : Result := $0410; // Italian
|
|
|
|
'jp' : Result := $0411; // Japanese
|
|
|
|
'pl' : Result := $0415; // Polish
|
|
|
|
'pt' : Result := $0816; // Portuguese (Portugal)
|
|
|
|
'ru' : Result := $0419; // Russian
|
|
|
|
'tr' : Result := $041F; // Turkish
|
|
|
|
'zh_cn', 'zh-cn': Result := $0804; // Chinese (China)
|
|
|
|
'zh_tw', 'zh-tw': Result := $0404; // Chinese (Taiwan)
|
|
|
|
// please complete if necessary. Language code and LCIDs can be found at
|
|
|
|
// http://www.science.co.il/Language/Locale-codes.asp
|
|
|
|
else raise Exception.CreateFmt('Language "%s" not supported. Please add to GetLCIDFromLangCode.',[ALang]);
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
{$ENDIF}
|
|
|
|
|
|
|
|
procedure UpdateFormatSettings(ALang: String);
|
|
|
|
{$IFDEF WINDOWS}
|
|
|
|
var
|
|
|
|
LCID: Integer;
|
|
|
|
{$ENDIF}
|
|
|
|
begin
|
|
|
|
{$IFDEF WINDOWS}
|
|
|
|
// Determine the LCID for the requested language
|
|
|
|
LCID := LangToLCID(ALang);
|
|
|
|
|
|
|
|
// Now we update the format settings to the new language
|
|
|
|
GetLocaleFormatSettingsUTF8(LCID, DefaultFormatSettings);
|
|
|
|
{$ENDIF}
|
|
|
|
end;
|
|
|
|
|
|
|
|
function GetFirstDayOfWeek(ALang: String): TVpDayType;
|
|
|
|
// Don't know how to determine this from the OS
|
|
|
|
begin
|
|
|
|
Result := dtSunday;
|
|
|
|
end;
|
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
|
2016-06-19 22:24:29 +00:00
|
|
|
{ TMainForm }
|
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure TMainForm.BtnDeleteResClick(Sender: TObject);
|
|
|
|
var
|
|
|
|
res: TVpResource;
|
|
|
|
begin
|
|
|
|
res := VpControlLink1.Datastore.Resource;
|
|
|
|
if res = nil then
|
|
|
|
exit;
|
|
|
|
|
|
|
|
if MessageDlg(Format(RSConfirmDeleteRes, [res.Description]), mtConfirmation, [mbYes, mbNo], 0) = mrOK then
|
|
|
|
VpControlLink1.Datastore.Resources.RemoveResource(res);
|
|
|
|
end;
|
|
|
|
|
|
|
|
// Edits the currently selected resource
|
|
|
|
procedure TMainForm.BtnEditResClick(Sender: TObject);
|
|
|
|
begin
|
|
|
|
// Open the resource editor dialog, everything is done here.
|
|
|
|
VpResourceEditDialog1.Execute;
|
|
|
|
end;
|
|
|
|
|
2016-06-19 22:24:29 +00:00
|
|
|
// Adds a new resource
|
|
|
|
procedure TMainForm.BtnNewResClick(Sender: TObject);
|
|
|
|
begin
|
|
|
|
VpResourceEditDialog1.AddNewResource;
|
|
|
|
end;
|
|
|
|
|
2016-06-24 10:33:55 +00:00
|
|
|
procedure TMainForm.Cb3DChange(Sender: TObject);
|
|
|
|
var
|
|
|
|
ds: TVpDrawingStyle;
|
|
|
|
begin
|
2016-07-02 23:14:26 +00:00
|
|
|
ds := TVpDrawingStyle(CbDrawingStyle.ItemIndex);
|
2016-06-24 10:33:55 +00:00
|
|
|
VpTaskList1.DrawingStyle := ds;
|
|
|
|
VpContactGrid1.DrawingStyle := ds;
|
|
|
|
VpDayView1.DrawingStyle := ds;
|
|
|
|
VpWeekView1.DrawingStyle := ds;
|
|
|
|
VpMonthView1.DrawingStyle := ds;
|
|
|
|
end;
|
|
|
|
|
2016-06-29 13:22:33 +00:00
|
|
|
procedure TMainForm.CbAddressBuilderChange(Sender: TObject);
|
|
|
|
begin
|
|
|
|
if CbAddressBuilder.ItemIndex <= 0 then
|
|
|
|
VpControlLink1.CityStateZipFormat := ''
|
|
|
|
else
|
|
|
|
VpControlLink1.CityStateZipFormat := CbAddressBuilder.Items[CbAddressBuilder.ItemIndex];
|
|
|
|
end;
|
|
|
|
|
2016-06-23 23:16:34 +00:00
|
|
|
procedure TMainForm.CbAllowInplaceEditingChange(Sender: TObject);
|
|
|
|
begin
|
|
|
|
VpContactGrid1.AllowInplaceEditing := CbAllowInplaceEditing.Checked;
|
|
|
|
VpDayView1.AllowInplaceEditing := CbAllowInplaceEditing.Checked;
|
|
|
|
VpWeekView1.AllowInplaceEditing := CbAllowInplaceEditing.Checked;
|
|
|
|
VpTaskList1.AllowInplaceEditing := CbAllowInplaceEditing.Checked;
|
|
|
|
end;
|
|
|
|
|
2016-07-02 23:14:26 +00:00
|
|
|
procedure TMainForm.CbDrawingStyleChange(Sender: TObject);
|
|
|
|
var
|
|
|
|
ds: TVpDrawingStyle;
|
|
|
|
begin
|
|
|
|
ds := TVpDrawingStyle(CbDrawingStyle.ItemIndex);
|
|
|
|
VpTaskList1.DrawingStyle := ds;
|
|
|
|
VpContactGrid1.DrawingStyle := ds;
|
|
|
|
VpDayView1.DrawingStyle := ds;
|
|
|
|
VpWeekView1.DrawingStyle := ds;
|
|
|
|
VpMonthView1.DrawingStyle := ds;
|
|
|
|
end;
|
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure TMainForm.CbFirstDayOfWeekChange(Sender: TObject);
|
|
|
|
begin
|
|
|
|
VpWeekView1.WeekStartsOn := TVpDayType(CbFirstDayOfWeek.ItemIndex);
|
|
|
|
VpMonthView1.WeekStartsOn := TVpDayType(CbFirstDayOfWeek.ItemIndex);
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMainForm.CbGranularityChange(Sender: TObject);
|
|
|
|
begin
|
|
|
|
VpDayView1.Granularity := TVpGranularity(CbGranularity.ItemIndex);
|
|
|
|
end;
|
|
|
|
|
2016-06-19 22:24:29 +00:00
|
|
|
procedure TMainForm.CbLanguagesChange(Sender: TObject);
|
|
|
|
begin
|
|
|
|
SetLanguage(CbLanguages.ItemIndex);
|
|
|
|
end;
|
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure TMainForm.CbTimeFormatChange(Sender: TObject);
|
|
|
|
begin
|
|
|
|
VpDayView1.TimeFormat := TVpTimeFormat(CbTimeFormat.ItemIndex);
|
|
|
|
VpWeekView1.TimeFormat := TVpTimeFormat(CbTimeFormat.ItemIndex);
|
|
|
|
VpMonthView1.TimeFormat := TVpTimeFormat(CbTimeFormat.ItemIndex);
|
|
|
|
end;
|
|
|
|
|
2016-06-19 22:24:29 +00:00
|
|
|
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: boolean);
|
|
|
|
begin
|
|
|
|
if CanClose then
|
|
|
|
try
|
|
|
|
WriteIni;
|
|
|
|
except
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
// Load the last resource.
|
|
|
|
procedure TMainForm.FormCreate(Sender: TObject);
|
|
|
|
var
|
|
|
|
lastRes: TVpResource;
|
2016-06-22 20:19:35 +00:00
|
|
|
ds: TVpCustomDataStore;
|
2016-06-19 22:24:29 +00:00
|
|
|
begin
|
|
|
|
PopulateLanguages;
|
|
|
|
ReadIni;
|
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
ds := VpControlLink1.Datastore;
|
|
|
|
if ds.Resources.Count > 0 then
|
2016-06-19 22:24:29 +00:00
|
|
|
begin
|
2016-06-22 20:19:35 +00:00
|
|
|
lastRes := ds.Resources.Items[ds.Resources.Count-1];
|
|
|
|
ds.ResourceID := lastRes.ResourceID;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMainForm.MnuAboutClick(Sender: TObject);
|
|
|
|
var
|
|
|
|
F: TfrmAbout;
|
|
|
|
begin
|
|
|
|
F := TfrmAbout.Create(nil);
|
|
|
|
try
|
|
|
|
F.ShowModal;
|
|
|
|
finally
|
|
|
|
F.Free;
|
2016-06-19 22:24:29 +00:00
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure TMainForm.MnuSettingsClick(Sender: TObject);
|
|
|
|
begin
|
|
|
|
ShowSettings;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMainForm.MnuQuitClick(Sender: TObject);
|
|
|
|
begin
|
|
|
|
Close;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMainForm.MnuResourcesClick(Sender: TObject);
|
|
|
|
begin
|
|
|
|
ShowResources;
|
|
|
|
end;
|
|
|
|
|
2016-06-19 22:24:29 +00:00
|
|
|
procedure TMainForm.PopulateLanguages;
|
|
|
|
|
|
|
|
function ExtractLanguage(s: String): String;
|
|
|
|
var
|
|
|
|
p: Integer;
|
|
|
|
begin
|
|
|
|
s := ChangeFileExt(s, '');
|
|
|
|
p := RPos('.', s);
|
|
|
|
if p > 0 then
|
|
|
|
Result := Copy(s, p+1, Length(s))
|
|
|
|
else
|
|
|
|
Result := '';
|
|
|
|
end;
|
|
|
|
|
|
|
|
var
|
|
|
|
L: TStrings;
|
|
|
|
po: TStringList;
|
|
|
|
lang: String;
|
|
|
|
i: Integer;
|
|
|
|
langdir: String;
|
|
|
|
begin
|
|
|
|
L := TStringList.Create;
|
|
|
|
po := TStringList.Create;
|
|
|
|
try
|
|
|
|
langdir := ExpandFileName(AppendPathDelim(Application.Location) + LANGUAGE_DIR);
|
|
|
|
FindAllFiles(L, langdir, '*.po');
|
|
|
|
po.Sorted := true;
|
|
|
|
po.Duplicates := dupIgnore;
|
|
|
|
for i := 0 to L.Count-1 do begin
|
|
|
|
lang := ExtractLanguage(L[i]);
|
|
|
|
case lang of
|
|
|
|
'de': po.Add('de - Deutsch');
|
|
|
|
'',
|
|
|
|
'en': po.Add('en - English');
|
|
|
|
'es': po.Add('es - Español');
|
|
|
|
'fr': po.Add('fr - Français');
|
|
|
|
'he': po.Add('he - Hebrew');
|
|
|
|
'hu': po.Add('hu - magyar');
|
|
|
|
'it': po.Add('it - Italian');
|
|
|
|
'ru': po.Add('ru - русский');
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
CbLanguages.Items.Assign(po);
|
|
|
|
SetLanguage(GetDefaultLang);
|
|
|
|
|
|
|
|
finally
|
|
|
|
po.Free;
|
|
|
|
L.Free;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMainForm.RbAllTasksChange(Sender: TObject);
|
|
|
|
begin
|
|
|
|
VpTaskList1.DisplayOptions.ShowAll := RbAllTasks.Checked;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMainForm.RbHideCompletedTasksChange(Sender: TObject);
|
|
|
|
begin
|
|
|
|
VpTaskList1.DisplayOptions.ShowAll := not RbHideCompletedTasks.Checked;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMainForm.ReadIni;
|
|
|
|
var
|
|
|
|
ini: TCustomIniFile;
|
|
|
|
lang: String;
|
2016-06-22 20:19:35 +00:00
|
|
|
idx: Integer;
|
|
|
|
L,T, W,H: Integer;
|
|
|
|
R: TRect;
|
2016-06-19 22:24:29 +00:00
|
|
|
begin
|
|
|
|
ini := TMemIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
|
|
|
|
try
|
2016-06-22 20:19:35 +00:00
|
|
|
WindowState := wsNormal;
|
|
|
|
R := Screen.WorkAreaRect;
|
|
|
|
L := ini.ReadInteger('Form', 'Left', Left);
|
|
|
|
T := ini.ReadInteger('Form', 'Top', Top);
|
|
|
|
W := ini.ReadInteger('Form', 'Width', Width);
|
|
|
|
H := ini.ReadInteger('Form', 'Height', Height);
|
|
|
|
if L < R.Left then L := R.Left;
|
|
|
|
if L + W > R.Right then L := R.Right - W;
|
|
|
|
if L < R.Left then W := R.Right - R.Left;
|
|
|
|
if T < R.Top then T := R.Top;
|
|
|
|
if T + H > R.Bottom then T := R.Bottom - H;
|
|
|
|
if T < R.Top then H := R.Bottom - R.Top;
|
|
|
|
SetBounds(L, T, W, H);
|
|
|
|
|
|
|
|
w := ini.ReadInteger('Form', 'LeftPanel_Width', LeftPanel.Width);
|
|
|
|
if w < 200 then w := 200;
|
|
|
|
LeftPanel.Width := w;
|
|
|
|
|
|
|
|
h := ini.ReadInteger('Form', 'BottomPanel_Height', VpMonthView1.Height);
|
|
|
|
if h < 160 then h := 160;
|
|
|
|
VpMonthView1.Height := h;
|
|
|
|
|
2016-06-19 22:24:29 +00:00
|
|
|
lang := ini.ReadString('Settings', 'Language', GetDefaultLang);
|
|
|
|
SetLanguage(lang);
|
2016-06-22 20:19:35 +00:00
|
|
|
|
|
|
|
SetActiveView(ini.ReadInteger('Settings', 'ActiveView', 0));
|
2016-06-22 22:37:44 +00:00
|
|
|
VpNavBar1.ActiveFolder := FActiveView div 1000;
|
2016-06-22 20:19:35 +00:00
|
|
|
|
|
|
|
CbTimeFormat.ItemIndex := ini.ReadInteger('Settings', 'TimeFormat', ord(VpDayView1.TimeFormat));
|
|
|
|
CbTimeFormatChange(nil);
|
2016-06-22 21:16:10 +00:00
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
CbGranularity.ItemIndex := ini.ReadInteger('Settings', 'Granularity', ord(VpDayView1.Granularity));
|
|
|
|
CbGranularityChange(nil);
|
2016-06-22 21:16:10 +00:00
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
CbFirstDayOfWeek.ItemIndex := ini.ReadInteger('Settings', 'FirstDayOfWeek', ord(VpWeekView1.WeekStartsOn));
|
|
|
|
CbFirstDayOfWeekChange(nil);
|
|
|
|
|
2016-06-22 21:16:10 +00:00
|
|
|
if ini.ReadBool('Settings', 'AllTasks', VpTaskList1.DisplayOptions.ShowAll) then
|
|
|
|
RbAllTasks.Checked := true else
|
|
|
|
RbHideCompletedTasks.Checked := true;
|
|
|
|
RbAllTasksChange(nil);
|
|
|
|
|
2016-06-24 17:55:44 +00:00
|
|
|
FVisibleDays := ini.ReadInteger('Settings', 'VisibleDays', DaysTrackbar.Position);
|
|
|
|
if FActiveView = 3 then begin // DayView
|
|
|
|
DaysTrackbar.Position := FVisibleDays;
|
|
|
|
DaysTrackbarChange(nil);
|
|
|
|
end;
|
2016-06-22 21:16:10 +00:00
|
|
|
|
2016-06-29 13:55:10 +00:00
|
|
|
VpControlLink1.CityStateZipFormat := ini.ReadString('Settings', 'CityStateZip', '');
|
|
|
|
if VpControlLink1.CityStateZipFormat = '' then
|
|
|
|
CbAddressBuilder.ItemIndex := 0 else
|
|
|
|
CbAddressBuilder.ItemIndex := CbAddressBuilder.Items.Indexof(VpControlLink1.CityStateZipFormat);
|
|
|
|
|
2016-06-23 23:16:34 +00:00
|
|
|
CbAllowInplaceEditing.Checked := ini.ReadBool('Settings', 'AllowInplaceEditing', CbAllowInplaceEditing.Checked);
|
|
|
|
CbAllowInplaceEditingChange(nil);
|
|
|
|
|
2016-07-02 23:14:26 +00:00
|
|
|
CbDrawingStyle.ItemIndex := ini.ReadInteger('Settings', 'DrawingStyle', CbDrawingStyle.ItemIndex);
|
|
|
|
CbDrawingStyleChange(nil);
|
2016-07-01 15:19:38 +00:00
|
|
|
|
2016-06-19 22:24:29 +00:00
|
|
|
finally
|
|
|
|
ini.Free;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMainForm.WriteIni;
|
|
|
|
var
|
|
|
|
ini: TCustomIniFile;
|
|
|
|
begin
|
|
|
|
ini := TMemIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
|
|
|
|
try
|
2016-06-22 20:19:35 +00:00
|
|
|
if WindowState = wsNormal then begin
|
|
|
|
ini.WriteInteger('Form', 'Width', Width);
|
|
|
|
ini.WriteInteger('Form', 'Height', Height);
|
|
|
|
ini.WriteInteger('Left', 'Left', Left);
|
|
|
|
ini.WriteInteger('Form', 'Top', Top);
|
2016-06-22 22:37:44 +00:00
|
|
|
end;
|
|
|
|
if FActiveView = 0 then begin
|
2016-06-22 20:19:35 +00:00
|
|
|
ini.WriteInteger('Form', 'LeftPanel_Width', LeftPanel.Width);
|
|
|
|
ini.WriteInteger('Form', 'BottomPanel_Height', VpMonthView1.Height);
|
|
|
|
end;
|
2016-06-22 22:37:44 +00:00
|
|
|
|
2016-06-19 22:24:29 +00:00
|
|
|
ini.WriteString('Settings', 'Language', FLang);
|
2016-06-22 20:19:35 +00:00
|
|
|
ini.WriteInteger('Settings', 'ActiveView', FActiveView);
|
|
|
|
ini.WriteInteger('Settings', 'TimeFormat', ord(VpDayView1.TimeFormat));
|
|
|
|
ini.WriteInteger('Settings', 'Granularity', ord(VpDayView1.Granularity));
|
|
|
|
ini.WriteInteger('Settings', 'FirstDayOfWeek', ord(VpWeekView1.WeekStartsOn));
|
2016-06-29 13:55:10 +00:00
|
|
|
ini.WriteString('Settings', 'CityStateZip', VpControlLink1.CityStateZipFormat);
|
2016-06-24 17:55:44 +00:00
|
|
|
ini.WriteInteger('Settings', 'VisibleDays', FVisibleDays);
|
2016-06-22 21:16:10 +00:00
|
|
|
ini.WriteBool('Settings', 'AllTasks', VpTaskList1.DisplayOptions.ShowAll);
|
2016-06-23 23:16:34 +00:00
|
|
|
ini.WriteBool('Settings', 'AllowInplaceEditing', CbAllowInplaceEditing.Checked);
|
2016-07-02 23:14:26 +00:00
|
|
|
ini.WriteInteger('Settings', 'DrawingStyle', CbDrawingStyle.ItemIndex);
|
2016-06-19 22:24:29 +00:00
|
|
|
finally
|
|
|
|
ini.Free;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMainForm.SetLanguage(AIndex: Integer);
|
|
|
|
var
|
|
|
|
p: Integer;
|
|
|
|
lang: String;
|
|
|
|
begin
|
|
|
|
p := pos(' - ', CbLanguages.Items[AIndex]);
|
|
|
|
if p > 0 then
|
|
|
|
lang := Copy(CbLanguages.Items[AIndex], 1, p-1)
|
|
|
|
else
|
|
|
|
raise Exception.Create('Incorrect structure of language combobox.');
|
|
|
|
SetLanguage(lang);
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMainForm.SetLanguage(ALang: String);
|
|
|
|
|
|
|
|
function GetTimeFormat: TVpTimeFormat;
|
|
|
|
var
|
|
|
|
s: String;
|
|
|
|
begin
|
|
|
|
s := lowercase(FormatDateTime('hh:nn ampm', 0.25));
|
|
|
|
if pos(lowercase(FormatSettings.TimeAMString), s) = Length(s) - Length(FormatSettings.TimeAMString) then
|
|
|
|
Result := tf12Hour else
|
|
|
|
Result := tf24Hour;
|
|
|
|
end;
|
|
|
|
|
|
|
|
var
|
|
|
|
i: Integer;
|
|
|
|
langdir: String;
|
|
|
|
found: Boolean;
|
|
|
|
tfmt: TVpTimeFormat;
|
|
|
|
firstWeekDay: TVpDayType;
|
|
|
|
translator: TUpdateTranslator;
|
2016-06-22 20:19:35 +00:00
|
|
|
nf: TVpNavFolder;
|
|
|
|
w: Integer;
|
2016-06-19 22:24:29 +00:00
|
|
|
begin
|
|
|
|
langdir := ExpandFileName(AppendPathDelim(Application.Location) + LANGUAGE_DIR);
|
|
|
|
|
|
|
|
// Select new language
|
|
|
|
if ALang = 'en' then
|
|
|
|
FLang := '' else
|
|
|
|
FLang := ALang;
|
|
|
|
|
|
|
|
// Translate VisualPlanIt strings.
|
|
|
|
if FLang = '' then begin
|
|
|
|
TranslateUnitResourceStrings('vpsr', langdir + 'vpsr.po');
|
|
|
|
|
|
|
|
{ NOTE: Translation of app strings back to english not working }
|
|
|
|
|
|
|
|
TranslateUnitResourceStrings('demoMain', langDir + 'demo.po');
|
|
|
|
TranslateUnitResourceStrings('lclstrconsts', langDir + 'lclstrconsts.po');
|
|
|
|
translator := TPOTranslator.Create(langdir + 'demo.po');
|
|
|
|
if Assigned(LRSTranslator) then
|
|
|
|
LRSTranslator.Free;
|
|
|
|
LRSTranslator := translator;
|
|
|
|
for i := 0 to Screen.CustomFormCount-1 do
|
|
|
|
translator.UpdateTranslation(Screen.CustomForms[i]);
|
|
|
|
end else
|
|
|
|
begin
|
|
|
|
SetDefaultLang(FLang, langdir);
|
|
|
|
TranslateUnitResourceStrings('vpsr', langdir + 'vpsr.' + FLang + '.po');
|
|
|
|
end;
|
2016-06-19 22:41:36 +00:00
|
|
|
VpDayView1.LoadLanguage;
|
|
|
|
VpWeekView1.LoadLanguage;
|
|
|
|
VpMonthView1.LoadLanguage;
|
2016-06-24 22:34:38 +00:00
|
|
|
VpTaskList1.LoadLanguage;
|
|
|
|
VpContactGrid1.LoadLanguage;
|
2016-06-19 22:24:29 +00:00
|
|
|
|
|
|
|
// Select language in language combobox.
|
|
|
|
if ALang = '' then ALang := 'en';
|
|
|
|
found := false;
|
|
|
|
for i:=0 to CbLanguages.Items.Count-1 do
|
|
|
|
if pos(ALang + ' ', CbLanguages.Items[i]) = 1 then begin
|
|
|
|
CbLanguages.ItemIndex := i;
|
|
|
|
found := true;
|
|
|
|
break;
|
|
|
|
end;
|
|
|
|
if not found then
|
|
|
|
CbLanguages.ItemIndex := 0;
|
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
// Update UI strings
|
|
|
|
nf := TVpNavFolder(VpNavBar1.FolderCollection.ItemByName('NFPlanner'));
|
|
|
|
nf.Caption := RSPlanner;
|
|
|
|
nf.ItemByName('NIEvents').Caption := RSEventsOverview;
|
|
|
|
nf.ItemByName('NIEventsByMonth').Caption := RSEventsPerMonth;
|
|
|
|
nf.ItemByName('NIEventsByWeek').Caption := RSEventsPerWeek;
|
|
|
|
nf.ItemByName('NIEventsByDay').Caption := RSEventsPerDay;
|
|
|
|
nf.ItemByName('NITasks').Caption := RSTasks;
|
|
|
|
nf.ItemByName('NIContacts').Caption := RSContacts;
|
|
|
|
|
|
|
|
nf := TVpNavFolder(VpNavBar1.FolderCollection.ItemByName('NFMaintenance'));
|
|
|
|
nf.Caption := RSMaintenance;
|
|
|
|
nf.ItemByname('NIResources').Caption := RSResources;
|
|
|
|
nf.ItembyName('NISettings').Caption := RSSettings_short;
|
|
|
|
|
|
|
|
CbTimeFormat.Items.Clear;
|
|
|
|
CbTimeFormat.Items.Add(RS24hours);
|
|
|
|
CbTimeFormat.Items.Add(RS12hours);
|
|
|
|
|
|
|
|
CbGranularity.Items.Clear;
|
|
|
|
CbGranularity.Items.Add(RS5Min);
|
|
|
|
CbGranularity.Items.Add(RS6Min);
|
|
|
|
CbGranularity.Items.Add(RS10Min);
|
|
|
|
CbGranularity.Items.Add(RS15Min);
|
|
|
|
CbGranularity.Items.Add(RS20Min);
|
|
|
|
CbGranularity.Items.Add(RS30Min);
|
|
|
|
CbGranularity.Items.Add(RS60Min);
|
|
|
|
|
|
|
|
CbFirstDayOfWeek.Items.Clear;
|
|
|
|
CbFirstDayOfWeek.Items.Add(RSSunday);
|
|
|
|
CbFirstDayOfWeek.Items.Add(RSMonday);
|
|
|
|
CbFirstDayOfWeek.Items.Add(RSTuesday);
|
|
|
|
CbFirstDayOfWeek.Items.Add(RSWednesday);
|
|
|
|
CbFirstDayOfWeek.Items.Add(RSThursday);
|
|
|
|
CbFirstDayOfWeek.Items.Add(RSFriday);
|
|
|
|
CbFirstDayOfWeek.Items.Add(RSSaturday);
|
|
|
|
|
|
|
|
DaysTrackbar.Left := GetLabelWidth(LblVisibleDays) + LblVisibleDays.Left + 8;
|
|
|
|
LblGranularity.Left := DaysTrackbar.Left + DaysTrackbar.Width + 32;
|
|
|
|
CbGranularity.Left := LblGranularity.Left + GetLabelWidth(LblGranularity) + 8;
|
|
|
|
w := MaxValue([GetLabelWidth(LblLanguage), GetLabelWidth(LblTimeFormat), GetLabelWidth(LblFirstDayOfWeek)]);
|
|
|
|
CbLanguages.Left := 24 + w + 8;
|
|
|
|
LblLanguage.Left := CbLanguages.Left - 8 - GetLabelWidth(LblLanguage);
|
|
|
|
CbTimeFormat.Left := CbLanguages.Left;
|
|
|
|
LblTimeFormat.Left := CbTimeFormat.Left - 8 - GetLabelWidth(LblTimeFormat);
|
|
|
|
CbFirstDayOfWeek.Left := CbLanguages.Left;
|
|
|
|
LblFirstDayOfWeek.Left := CbFirstDayOfWeek.Left - 8 - GetLabelWidth(LblFirstDayOfWeek);
|
2016-06-29 13:55:10 +00:00
|
|
|
CbAddressBuilder.Left := CbLanguages.Left;
|
|
|
|
LblAddressBuilder.Left := CbAddressBuilder.Left - 8 - GetLabelWidth(LblAddressBuilder);
|
2016-06-23 23:16:34 +00:00
|
|
|
CbAllowInplaceEditing.Left := CbLanguages.Left + CbLanguages.Width + 32;
|
2016-07-02 23:14:26 +00:00
|
|
|
LblDrawingStyle.Left := CbAllowInplaceEditing.Left;
|
|
|
|
CbDrawingStyle.Left := LblDrawingStyle.Left + GetLabelWidth(LblDrawingStyle) + 8;
|
2016-06-22 20:19:35 +00:00
|
|
|
RbHideCompletedTasks.Left := RbAllTasks.Left + RbAllTasks.Width + 48;
|
|
|
|
|
2016-06-19 22:24:29 +00:00
|
|
|
// Next settings work correctly only for Windows.
|
|
|
|
{$IFDEF WINDOWS}
|
|
|
|
UpdateFormatSettings(ALang);
|
|
|
|
VpDayView1.DateLabelFormat := FormatSettings.LongDateFormat;
|
|
|
|
VpWeekView1.DayHeadAttributes.DateFormat := FormatSettings.LongDateFormat;
|
|
|
|
VpWeekView1.DateLabelFormat := FormatSettings.LongDateFormat;
|
|
|
|
VpMonthView1.DateLabelFormat := 'mmmm yyyy';
|
|
|
|
VpTaskList1.DisplayOptions.DueDateFormat := FormatSettings.ShortDateFormat;
|
|
|
|
tfmt := GetTimeFormat;
|
|
|
|
VpDayView1.TimeFormat := tfmt;
|
|
|
|
VpWeekView1.TimeFormat := tfmt;
|
|
|
|
VpMonthView1.TimeFormat := tfmt;
|
|
|
|
firstWeekDay := GetFirstDayofWeek(ALang); // not correct at the moment
|
|
|
|
VpMonthView1.WeekStartsOn := firstWeekDay;
|
|
|
|
VpWeekView1.WeekStartsOn := firstWeekDay;
|
|
|
|
{$ENDIF}
|
|
|
|
|
2016-06-24 22:34:38 +00:00
|
|
|
SetActiveView(1001);
|
2016-06-19 22:24:29 +00:00
|
|
|
Invalidate;
|
|
|
|
end;
|
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure TMainForm.ShowAllEvents;
|
2016-06-22 14:28:19 +00:00
|
|
|
begin
|
2016-06-22 20:19:35 +00:00
|
|
|
PageControl1.ActivePage := TabEvents;
|
|
|
|
VpDayView1.Parent := LeftPanel;
|
|
|
|
VpMonthView1.Parent := LeftPanel;
|
|
|
|
VpMonthView1.Align := alBottom;
|
|
|
|
VpDayview1.Show;
|
|
|
|
VpMonthView1.Show;
|
|
|
|
Splitter2.Top := 0;
|
|
|
|
LeftPanel.Show;
|
|
|
|
Splitter3.Show;
|
|
|
|
Splitter3.Left := Width;
|
|
|
|
VpWeekView1.Show;
|
|
|
|
DaySelectorPanel.Hide;
|
|
|
|
VpDayView1.NumDays := 1;
|
|
|
|
TitleLbl.Caption := RSEventsOverview;
|
|
|
|
ImageList1.GetBitmap(0, Img.Picture.Bitmap);
|
2016-06-22 14:28:19 +00:00
|
|
|
end;
|
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure TMainform.ShowEventsPerMonth;
|
|
|
|
begin
|
|
|
|
PageControl1.ActivePage := TabEvents;
|
|
|
|
LeftPanel.Hide;
|
|
|
|
Splitter3.Hide;
|
|
|
|
VpWeekView1.Hide;
|
|
|
|
VpMonthView1.Parent := TabEvents;
|
|
|
|
VpMonthView1.Align := alClient;
|
|
|
|
VpMonthView1.Show;
|
|
|
|
DaySelectorPanel.Hide;
|
|
|
|
TitleLbl.Caption := RSEventsPerMonth;
|
|
|
|
ImageList1.GetBitmap(5, Img.Picture.Bitmap);
|
|
|
|
end;
|
2016-06-19 22:24:29 +00:00
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure TMainForm.ShowEventsPerWeek;
|
|
|
|
begin
|
|
|
|
PageControl1.ActivePage := TabEvents;
|
|
|
|
LeftPanel.Hide;
|
|
|
|
Splitter3.Hide;
|
|
|
|
VpMonthView1.Hide;
|
|
|
|
VpDayView1.Hide;
|
|
|
|
VpWeekView1.Show;
|
|
|
|
DaySelectorPanel.Hide;
|
|
|
|
TitleLbl.Caption := RSEventsPerWeek;
|
|
|
|
ImageList1.GetBitmap(4, Img.Picture.Bitmap);
|
|
|
|
end;
|
2016-06-19 22:24:29 +00:00
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure TMainform.ShowEventsPerDay;
|
|
|
|
begin
|
|
|
|
PageControl1.ActivePage := TabEvents;
|
|
|
|
LeftPanel.Hide;
|
|
|
|
Splitter3.Hide;
|
2016-06-25 10:56:48 +00:00
|
|
|
VpMonthView1.Hide;
|
2016-06-22 20:19:35 +00:00
|
|
|
VpWeekView1.Hide;
|
|
|
|
VpDayView1.Parent := TabEvents;
|
|
|
|
VpDayView1.Align := alClient;
|
|
|
|
VpDayView1.Show;
|
|
|
|
DaySelectorPanel.Parent := TabEvents;
|
|
|
|
DaySelectorPanel.Show;
|
2016-06-24 17:55:44 +00:00
|
|
|
DaysTrackbar.Position := FVisibleDays;
|
2016-06-22 20:19:35 +00:00
|
|
|
VpDayView1.NumDays := DaysTrackBar.Position;
|
|
|
|
TitleLbl.Caption := RSEventsPerDay;
|
|
|
|
ImageList1.GetBitmap(3, Img.Picture.Bitmap);
|
|
|
|
end;
|
2016-06-19 22:24:29 +00:00
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure TMainForm.ShowTasks;
|
|
|
|
begin
|
|
|
|
Pagecontrol1.ActivePage := TabTasks;
|
|
|
|
titleLbl.Caption := RSTasks;
|
|
|
|
ImageList1.GetBitmap(1, Img.Picture.Bitmap);
|
|
|
|
end;
|
2016-06-19 22:24:29 +00:00
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure TMainForm.ShowContacts;
|
|
|
|
begin
|
|
|
|
PageControl1.ActivePage := TabContacts;
|
|
|
|
TitleLbl.Caption := RSContacts;
|
|
|
|
ImageList1.GetBitmap(2, Img.Picture.Bitmap);
|
|
|
|
end;
|
2016-06-19 22:24:29 +00:00
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure TMainForm.ShowResources;
|
|
|
|
begin
|
|
|
|
PageControl1.Activepage := TabResources;
|
|
|
|
TitleLbl.Caption := RSResources;
|
|
|
|
ImageList1.GetBitmap(7, Img.Picture.Bitmap);
|
|
|
|
end;
|
2016-06-19 22:24:29 +00:00
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure TMainForm.ShowSettings;
|
|
|
|
begin
|
|
|
|
PageControl1.ActivePage := TabSettings;
|
|
|
|
TitleLbl.Caption := RSSettings;
|
|
|
|
ImageList1.GetBitmap(8, Img.Picture.Bitmap);
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMainForm.DaysTrackBarChange(Sender: TObject);
|
|
|
|
begin
|
2016-06-24 17:55:44 +00:00
|
|
|
if FActiveView = 3 then
|
|
|
|
FVisibleDays := DaysTrackbar.Position;
|
2016-06-22 20:19:35 +00:00
|
|
|
VpDayView1.NumDays := DaysTrackBar.Position;
|
|
|
|
end;
|
2016-06-19 22:24:29 +00:00
|
|
|
|
2016-06-22 20:19:35 +00:00
|
|
|
procedure TMainForm.VpNavBar1ItemClick(Sender: TObject; Button: TMouseButton;
|
|
|
|
Shift: TShiftState; Index: Integer);
|
|
|
|
begin
|
|
|
|
SetActiveView(VpNavBar1.ActiveFolder * 1000 + Index);
|
|
|
|
end;
|
|
|
|
|
|
|
|
procedure TMainForm.SetActiveView(AValue: Integer);
|
|
|
|
var
|
|
|
|
folderIndex, itemIndex: Integer;
|
2016-06-19 22:24:29 +00:00
|
|
|
begin
|
2016-06-22 20:19:35 +00:00
|
|
|
FActiveView := AValue;
|
|
|
|
folderIndex := AValue div 1000;
|
|
|
|
itemIndex := AValue mod 1000;
|
|
|
|
case folderIndex of
|
|
|
|
0: case itemIndex of // All planner items
|
2016-06-19 22:24:29 +00:00
|
|
|
0: ShowAllEvents; // show all
|
|
|
|
1: ShowEventsPerMonth; // Month view only
|
|
|
|
2: ShowEventsPerWeek; // Week view only
|
|
|
|
3: ShowEventsPerDay; // Day view only
|
|
|
|
4: ShowTasks; // Tasks
|
|
|
|
5: ShowContacts; // Contacts
|
|
|
|
end;
|
2016-06-22 20:19:35 +00:00
|
|
|
1: case itemIndex of
|
|
|
|
0: ShowResources;
|
|
|
|
1: ShowSettings;
|
2016-06-19 22:24:29 +00:00
|
|
|
end;
|
2016-06-24 22:34:38 +00:00
|
|
|
end;
|
2016-06-19 22:24:29 +00:00
|
|
|
end;
|
|
|
|
|
|
|
|
end.
|
|
|
|
|