tvplant: More features in demo project.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4805 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2016-06-22 20:19:35 +00:00
parent 705a6878ac
commit 9b5d03f687
6 changed files with 1614 additions and 491 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +1,25 @@
TMAINFORM.CAPTION=Turbo Power VisualPlanIt Demo
TMAINFORM.BTNNEWRES.CAPTION=New resource
TMAINFORM.BTNEDITRES.CAPTION=Edit resource
TMAINFORM.LABEL1.CAPTION=Language
TMAINFORM.TABEVENTS.CAPTION=Events
TMAINFORM.LABEL2.CAPTION=Tage
TMAINFORM.LBLVISIBLEDAYS.CAPTION=Visible days
TMAINFORM.CBGRANULARITY.TEXT=30 Min
TMAINFORM.LBLGRANULARITY.CAPTION=Granularity
TMAINFORM.TABTASKS.CAPTION=Tasks
TMAINFORM.RBALLTASKS.CAPTION=All tasks
TMAINFORM.RBHIDECOMPLETEDTASKS.CAPTION=Hide completed tasks
TMAINFORM.TABCONTACTS.CAPTION=Contacts
TMAINFORM.TABINFO.CAPTION=Info
TMAINFORM.TABRESOURCES.CAPTION=Maintenance
TMAINFORM.BTNNEWRES.CAPTION=New
TMAINFORM.BTNEDITRES.CAPTION=Edit
TMAINFORM.BTNDELETERES.CAPTION=Delete
TMAINFORM.TABSETTINGS.CAPTION=Settings
TMAINFORM.LBLLANGUAGE.CAPTION=Language
TMAINFORM.LBLTIMEFORMAT.CAPTION=Time format
TMAINFORM.LBLFIRSTDAYOFWEEK.CAPTION=First day of week
TMAINFORM.TITLELBL.CAPTION=TitleLbl
TMAINFORM.MENUITEM1.CAPTION=File
TMAINFORM.MNUQUIT.CAPTION=Quit
TMAINFORM.MNUMAINTENANCE.CAPTION=Maintenance
TMAINFORM.MNURESOURCES.CAPTION=Resources
TMAINFORM.MNUSETTINGS.CAPTION=Settings
TMAINFORM.MENUITEM2.CAPTION=Help
TMAINFORM.MNUABOUT.CAPTION=About Visual PlanIt

View File

@ -6,8 +6,8 @@ interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
StdCtrls, ComCtrls, LCLTranslator,
VpBaseDS, VpDayView, VpWeekView, VpTaskList,
StdCtrls, ComCtrls, LCLTranslator, Menus,
VpBaseDS, VpDayView, VpWeekView, VpTaskList, VpAbout,
VpContactGrid, VpMonthView, VpResEditDlg, VpContactButtons, VpBufDS, VpNavBar;
type
@ -17,25 +17,43 @@ type
TMainForm = class(TForm)
BtnNewRes: TButton;
BtnEditRes: TButton;
BtnDeleteRes: TButton;
CbLanguages: TComboBox;
CbGranularity: TComboBox;
CbTimeFormat: TComboBox;
CbFirstDayOfWeek: TComboBox;
Img: TImage;
ImageList1: TImageList;
Label1: TLabel;
Label2: TLabel;
Memo1: TMemo;
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;
PageControl1: TPageControl;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
LeftPanel: TPanel;
DaySelectorPanel: TPanel;
HeaderPanel: TPanel;
Panel6: TPanel;
RbAllTasks: TRadioButton;
RbHideCompletedTasks: TRadioButton;
Splitter2: TSplitter;
Splitter3: TSplitter;
TabEvents: TTabSheet;
TabContacts: TTabSheet;
TabInfo: TTabSheet;
TabResources: TTabSheet;
TabSettings: TTabSheet;
TabTasks: TTabSheet;
TrackBar1: TTrackBar;
DaysTrackBar: TTrackBar;
VpBufDSDataStore1: TVpBufDSDataStore;
VpContactButtonBar1: TVpContactButtonBar;
VpContactGrid1: TVpContactGrid;
@ -47,23 +65,42 @@ type
VpResourceEditDialog1: TVpResourceEditDialog;
VpTaskList1: TVpTaskList;
VpWeekView1: TVpWeekView;
procedure BtnDeleteResClick(Sender: TObject);
procedure BtnNewResClick(Sender: TObject);
procedure BtnEditResClick(Sender: TObject);
procedure CbFirstDayOfWeekChange(Sender: TObject);
procedure CbGranularityChange(Sender: TObject);
procedure CbLanguagesChange(Sender: TObject);
procedure CbTimeFormatChange(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
procedure FormCreate(Sender: TObject);
procedure MnuQuitClick(Sender: TObject);
procedure MnuResourcesClick(Sender: TObject);
procedure MnuSettingsClick(Sender: TObject);
procedure MnuAboutClick(Sender: TObject);
procedure RbAllTasksChange(Sender: TObject);
procedure RbHideCompletedTasksChange(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure DaysTrackBarChange(Sender: TObject);
procedure VpNavBar1ItemClick(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; Index: Integer);
private
{ private declarations }
FLang: String;
FActiveView: Integer;
procedure PopulateLanguages;
procedure ReadIni;
procedure SetActiveView(AValue: Integer);
procedure SetLanguage(ALang: String); overload;
procedure SetLanguage(AIndex: Integer); overload;
procedure ShowAllEvents;
procedure ShowContacts;
procedure ShowEventsPerDay;
procedure ShowEventsPerMonth;
procedure ShowEventsPerWeek;
procedure ShowResources;
procedure ShowSettings;
procedure ShowTasks;
procedure WriteIni;
public
{ public declarations }
@ -80,12 +117,42 @@ uses
{$IFDEF WINDOWS}
Windows,
{$ENDIF}
LResources, LazUTF8, LazFileUtils, StrUtils, Translations, IniFiles,
LResources, LazUTF8, LazFileUtils, StrUtils, Translations, IniFiles, Math,
VpMisc, VpBase, VpData;
const
LANGUAGE_DIR = '..\..\languages\';
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';
{$IFDEF WINDOWS}
{ This function determines the LCID from the language code.
Works only for Windows. }
@ -140,19 +207,57 @@ begin
Result := dtSunday;
end;
{ TMainForm }
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;
// Adds a new resource
procedure TMainForm.BtnNewResClick(Sender: TObject);
begin
VpResourceEditDialog1.AddNewResource;
end;
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;
procedure TMainForm.CbLanguagesChange(Sender: TObject);
begin
SetLanguage(CbLanguages.ItemIndex);
end;
procedure TMainForm.CbTimeFormatChange(Sender: TObject);
begin
VpDayView1.TimeFormat := TVpTimeFormat(CbTimeFormat.ItemIndex);
VpWeekView1.TimeFormat := TVpTimeFormat(CbTimeFormat.ItemIndex);
VpMonthView1.TimeFormat := TVpTimeFormat(CbTimeFormat.ItemIndex);
end;
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: boolean);
begin
if CanClose then
@ -162,28 +267,50 @@ begin
end;
end;
// Edits the currently selected resource
procedure TMainForm.BtnEditResClick(Sender: TObject);
begin
// Open the resource editor dialog, everything is done here.
VpResourceEditDialog1.Execute;
end;
// Load the last resource.
procedure TMainForm.FormCreate(Sender: TObject);
var
lastRes: TVpResource;
ds: TVpCustomDataStore;
begin
PopulateLanguages;
ReadIni;
if VpBufDSDatastore1.Resources.Count > 0 then
ds := VpControlLink1.Datastore;
if ds.Resources.Count > 0 then
begin
lastRes := VpBufDSDatastore1.Resources.Items[VpBufDSDatastore1.Resources.Count-1];
VpBufDSDatastore1.ResourceID := lastRes.ResourceID;
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;
end;
end;
procedure TMainForm.MnuSettingsClick(Sender: TObject);
begin
ShowSettings;
end;
procedure TMainForm.MnuQuitClick(Sender: TObject);
begin
Close;
end;
procedure TMainForm.MnuResourcesClick(Sender: TObject);
begin
ShowResources;
end;
procedure TMainForm.PopulateLanguages;
function ExtractLanguage(s: String): String;
@ -250,11 +377,47 @@ procedure TMainForm.ReadIni;
var
ini: TCustomIniFile;
lang: String;
idx: Integer;
L,T, W,H: Integer;
R: TRect;
begin
ini := TMemIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
try
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;
lang := ini.ReadString('Settings', 'Language', GetDefaultLang);
SetLanguage(lang);
SetActiveView(ini.ReadInteger('Settings', 'ActiveView', 0));
VpNavBar1.ActiveFolder := FActiveView mod 1000;
CbTimeFormat.ItemIndex := ini.ReadInteger('Settings', 'TimeFormat', ord(VpDayView1.TimeFormat));
CbTimeFormatChange(nil);
CbGranularity.ItemIndex := ini.ReadInteger('Settings', 'Granularity', ord(VpDayView1.Granularity));
CbGranularityChange(nil);
CbFirstDayOfWeek.ItemIndex := ini.ReadInteger('Settings', 'FirstDayOfWeek', ord(VpWeekView1.WeekStartsOn));
CbFirstDayOfWeekChange(nil);
finally
ini.Free;
end;
@ -266,7 +429,19 @@ var
begin
ini := TMemIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
try
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);
ini.WriteInteger('Form', 'LeftPanel_Width', LeftPanel.Width);
ini.WriteInteger('Form', 'BottomPanel_Height', VpMonthView1.Height);
end;
ini.WriteString('Settings', 'Language', FLang);
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));
finally
ini.Free;
end;
@ -304,6 +479,8 @@ var
tfmt: TVpTimeFormat;
firstWeekDay: TVpDayType;
translator: TUpdateTranslator;
nf: TVpNavFolder;
w: Integer;
begin
langdir := ExpandFileName(AppendPathDelim(Application.Location) + LANGUAGE_DIR);
@ -347,6 +524,55 @@ begin
if not found then
CbLanguages.ItemIndex := 0;
// 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);
RbHideCompletedTasks.Left := RbAllTasks.Left + RbAllTasks.Width + 48;
// Next settings work correctly only for Windows.
{$IFDEF WINDOWS}
UpdateFormatSettings(ALang);
@ -364,84 +590,123 @@ begin
VpWeekView1.WeekStartsOn := firstWeekDay;
{$ENDIF}
SetActiveView(FActiveView);
Invalidate;
end;
procedure TMainForm.TrackBar1Change(Sender: TObject);
procedure TMainForm.ShowAllEvents;
begin
VpDayView1.NumDays := Trackbar1.Position;
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);
end;
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;
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;
procedure TMainform.ShowEventsPerDay;
begin
PageControl1.ActivePage := TabEvents;
LeftPanel.Hide;
Splitter3.Hide;
VpWeekView1.Hide;
VpDayView1.Parent := TabEvents;
VpDayView1.Align := alClient;
VpDayView1.Show;
DaySelectorPanel.Parent := TabEvents;
DaySelectorPanel.Show;
VpDayView1.NumDays := DaysTrackBar.Position;
TitleLbl.Caption := RSEventsPerDay;
ImageList1.GetBitmap(3, Img.Picture.Bitmap);
end;
procedure TMainForm.ShowTasks;
begin
Pagecontrol1.ActivePage := TabTasks;
titleLbl.Caption := RSTasks;
ImageList1.GetBitmap(1, Img.Picture.Bitmap);
end;
procedure TMainForm.ShowContacts;
begin
PageControl1.ActivePage := TabContacts;
TitleLbl.Caption := RSContacts;
ImageList1.GetBitmap(2, Img.Picture.Bitmap);
end;
procedure TMainForm.ShowResources;
begin
PageControl1.Activepage := TabResources;
TitleLbl.Caption := RSResources;
ImageList1.GetBitmap(7, Img.Picture.Bitmap);
end;
procedure TMainForm.ShowSettings;
begin
PageControl1.ActivePage := TabSettings;
TitleLbl.Caption := RSSettings;
ImageList1.GetBitmap(8, Img.Picture.Bitmap);
end;
procedure TMainForm.DaysTrackBarChange(Sender: TObject);
begin
VpDayView1.NumDays := DaysTrackBar.Position;
end;
procedure TMainForm.VpNavBar1ItemClick(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; Index: Integer);
procedure ShowAllEvents;
begin
PageControl1.ActivePage := TabEvents;
VpDayView1.Parent := Panel2;
VpMonthView1.Parent := Panel2;
VpMonthView1.Align := alBottom;
VpDayview1.Show;
VpMonthView1.Show;
Splitter2.Top := 0;
Panel2.Show;
Splitter3.Show;
Splitter3.Left := Width;
VpWeekView1.Show;
DaySelectorPanel.Hide;
VpDayView1.NumDays := 1;
end;
procedure ShowEventsPerMonth;
begin
PageControl1.ActivePage := TabEvents;
Panel2.Hide;
Splitter3.Hide;
VpWeekView1.Hide;
VpMonthView1.Parent := TabEvents;
VpMonthView1.Align := alClient;
VpMonthView1.Show;
DaySelectorPanel.Hide;
end;
procedure ShowEventsPerWeek;
begin
PageControl1.ActivePage := TabEvents;
Panel2.Hide;
Splitter3.Hide;
VpMonthView1.Hide;
VpDayView1.Hide;
VpWeekView1.Show;
DaySelectorPanel.Hide;
end;
procedure ShowEventsPerDay;
begin
PageControl1.ActivePage := TabEvents;
Panel2.Hide;
Splitter3.Hide;
VpWeekView1.Hide;
VpDayView1.Parent := TabEvents;
VpDayView1.Align := alClient;
VpDayView1.Show;
DaySelectorPanel.Parent := TabEvents;
DaySelectorPanel.Show;
VpDayView1.NumDays := Trackbar1.Position;
end;
procedure ShowTasks;
begin
Pagecontrol1.ActivePage := TabTasks;
end;
procedure ShowContacts;
begin
PageControl1.ActivePage := TabContacts;
end;
begin
case VpNavBar1.ActiveFolder of
0: case Index of // All planner items
SetActiveView(VpNavBar1.ActiveFolder * 1000 + Index);
end;
procedure TMainForm.SetActiveView(AValue: Integer);
var
folderIndex, itemIndex: Integer;
begin
FActiveView := AValue;
folderIndex := AValue div 1000;
itemIndex := AValue mod 1000;
case folderIndex of
0: case itemIndex of // All planner items
0: ShowAllEvents; // show all
1: ShowEventsPerMonth; // Month view only
2: ShowEventsPerWeek; // Week view only
@ -449,14 +714,10 @@ begin
4: ShowTasks; // Tasks
5: ShowContacts; // Contacts
end;
1: case Index of // Events only
0: ShowAllEvents; // show all
1: ShowEventsPerMonth; // Month view only
2: ShowEventsPerWeek; // Week view only
3: ShowEventsPerDay; // Day view only
1: case itemIndex of
0: ShowResources;
1: ShowSettings;
end;
2: ShowTasks;
3: ShowContacts;
end;
end;

View File

@ -11,25 +11,195 @@ msgstr ""
"X-Generator: Poedit 1.8.8\n"
"Language: de\n"
#: demomain.rs10min
msgid "10 min"
msgstr "10 Min."
#: demomain.rs12hours
msgctxt "demomain.rs12hours"
msgid "12 hours AM/PM"
msgstr "12 Std. AM/PM"
#: demomain.rs15min
msgid "15 min"
msgstr "15 Min."
#: demomain.rs20min
msgid "20 min"
msgstr "20 Min."
#: demomain.rs24hours
msgid "24 hours"
msgstr "24 Std."
#: demomain.rs30min
msgid "30 min"
msgstr "30 Min."
#: demomain.rs5min
msgid "5 min"
msgstr "5 Min."
#: demomain.rs60min
msgid "60 min"
msgstr "60 Min."
#: demomain.rs6min
msgid "6 min"
msgstr "6 Min."
#: demomain.rsconfirmdeleteres
msgid "Do you really want to delete resource %s?"
msgstr "Wollen Sie wirklich die Ressource %s löschen?"
#: demomain.rscontacts
msgctxt "demomain.rscontacts"
msgid "Contacts"
msgstr "Kontakte"
#: demomain.rseventsoverview
msgid "Events overview"
msgstr "Termin-Übersicht"
#: demomain.rseventsperday
msgid "Events per day"
msgstr "Termine pro Tag"
#: demomain.rseventspermonth
msgid "Events per month"
msgstr "Termine pro Monat"
#: demomain.rseventsperweek
msgid "Events per week"
msgstr "Termine pro Woche"
#: demomain.rsfriday
msgid "Friday"
msgstr "Freitag"
#: demomain.rsmaintenance
msgctxt "demomain.rsmaintenance"
msgid "Maintenance"
msgstr "Wartung"
#: demomain.rsmonday
msgid "Monday"
msgstr "Montag"
#: demomain.rsplanner
msgid "Planner"
msgstr "Planer"
#: demomain.rsresources
msgctxt "demomain.rsresources"
msgid "Resources"
msgstr "Ressourcen"
#: demomain.rssaturday
msgid "Saturday"
msgstr "Samstag"
#: demomain.rssettings
msgid "Program settings"
msgstr "Programm-Einstellungen"
#: demomain.rssettings_short
msgctxt "demomain.rssettings_short"
msgid "Settings"
msgstr "Einstellungen"
#: demomain.rssunday
msgid "Sunday"
msgstr "Sonntag"
#: demomain.rstasks
msgctxt "demomain.rstasks"
msgid "Tasks"
msgstr "Aufgaben"
#: demomain.rsthursday
msgid "Thursday"
msgstr "Donnerstag"
#: demomain.rstuesday
msgid "Tuesday"
msgstr "Dienstag"
#: demomain.rswednesday
msgid "Wednesday"
msgstr "Mittwoch"
#: tmainform.btndeleteres.caption
msgid "Delete"
msgstr "Löschen"
#: tmainform.btneditres.caption
msgid "Edit resource"
msgstr "Ressource bearbeiten"
msgid "Edit"
msgstr "Bearbeiten"
#: tmainform.btnnewres.caption
msgid "New resource"
msgstr "Neue Ressource"
msgid "New"
msgstr "Neu"
#: tmainform.caption
msgid "Turbo Power VisualPlanIt Demo"
msgstr "Turbo Power VisualPlanIt Demo"
#: tmainform.label1.caption
#: tmainform.cbgranularity.text
msgid "30 Min"
msgstr "30 Min"
#: tmainform.lblfirstdayofweek.caption
msgid "First day of week"
msgstr "Die Woche beginnt am"
#: tmainform.lblgranularity.caption
msgid "Granularity"
msgstr "Raster"
#: tmainform.lbllanguage.caption
msgctxt "tmainform.lbllanguage.caption"
msgid "Language"
msgstr "Sprache"
#: tmainform.label2.caption
msgid "Tage"
msgstr ""
#: tmainform.lbltimeformat.caption
msgid "Time format"
msgstr "Zeitformat"
#: tmainform.lblvisibledays.caption
msgid "Visible days"
msgstr "Sichtbare Tage"
#: tmainform.menuitem1.caption
msgid "File"
msgstr "Datei"
#: tmainform.menuitem2.caption
msgid "Help"
msgstr "Hilfe"
#: tmainform.mnuabout.caption
msgid "About Visual PlanIt"
msgstr "Über Visual PlanIt"
#: tmainform.mnumaintenance.caption
msgctxt "tmainform.mnumaintenance.caption"
msgid "Maintenance"
msgstr "Wartung"
#: tmainform.mnuquit.caption
msgid "Quit"
msgstr "Beenden"
#: tmainform.mnuresources.caption
msgctxt "tmainform.mnuresources.caption"
msgid "Resources"
msgstr "Ressourcen"
#: tmainform.mnusettings.caption
msgctxt "tmainform.mnusettings.caption"
msgid "Settings"
msgstr "Einstellungen"
#: tmainform.rballtasks.caption
msgid "All tasks"
@ -40,18 +210,30 @@ msgid "Hide completed tasks"
msgstr "Fertiggestellte Aufgaben ausblenden"
#: tmainform.tabcontacts.caption
msgctxt "tmainform.tabcontacts.caption"
msgid "Contacts"
msgstr "Kontakte"
#: tmainform.tabevents.caption
msgid "Events"
msgstr "Ereignisse"
msgstr "Termine"
#: tmainform.tabinfo.caption
msgid "Info"
msgstr "Info"
#: tmainform.tabresources.caption
msgctxt "tmainform.tabresources.caption"
msgid "Maintenance"
msgstr "Wartung"
#: tmainform.tabsettings.caption
msgctxt "tmainform.tabsettings.caption"
msgid "Settings"
msgstr "Einstellungen"
#: tmainform.tabtasks.caption
msgctxt "tmainform.tabtasks.caption"
msgid "Tasks"
msgstr "Aufgaben"
# No need to translate
#: tmainform.titlelbl.caption
msgid "TitleLbl"
msgstr ""

View File

@ -1,24 +1,193 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
#: demomain.rs10min
msgid "10 min"
msgstr ""
#: demomain.rs12hours
msgid "12 hours AM/PM"
msgstr ""
#: demomain.rs15min
msgid "15 min"
msgstr ""
#: demomain.rs20min
msgid "20 min"
msgstr ""
#: demomain.rs24hours
msgid "24 hours"
msgstr ""
#: demomain.rs30min
msgid "30 min"
msgstr ""
#: demomain.rs5min
msgid "5 min"
msgstr ""
#: demomain.rs60min
msgid "60 min"
msgstr ""
#: demomain.rs6min
msgid "6 min"
msgstr ""
#: demomain.rsconfirmdeleteres
msgid "Do you really want to delete resource %s?"
msgstr ""
#: demomain.rscontacts
msgctxt "demomain.rscontacts"
msgid "Contacts"
msgstr ""
#: demomain.rseventsoverview
msgid "Events overview"
msgstr ""
#: demomain.rseventsperday
msgid "Events per day"
msgstr ""
#: demomain.rseventspermonth
msgid "Events per month"
msgstr ""
#: demomain.rseventsperweek
msgid "Events per week"
msgstr ""
#: demomain.rsfriday
msgid "Friday"
msgstr ""
#: demomain.rsmaintenance
msgctxt "demomain.rsmaintenance"
msgid "Maintenance"
msgstr ""
#: demomain.rsmonday
msgid "Monday"
msgstr ""
#: demomain.rsplanner
msgid "Planner"
msgstr ""
#: demomain.rsresources
msgctxt "demomain.rsresources"
msgid "Resources"
msgstr ""
#: demomain.rssaturday
msgid "Saturday"
msgstr ""
#: demomain.rssettings
msgid "Program settings"
msgstr ""
#: demomain.rssettings_short
msgctxt "demomain.rssettings_short"
msgid "Settings"
msgstr ""
#: demomain.rssunday
msgid "Sunday"
msgstr ""
#: demomain.rstasks
msgctxt "demomain.rstasks"
msgid "Tasks"
msgstr ""
#: demomain.rsthursday
msgid "Thursday"
msgstr ""
#: demomain.rstuesday
msgid "Tuesday"
msgstr ""
#: demomain.rswednesday
msgid "Wednesday"
msgstr ""
#: tmainform.btndeleteres.caption
msgid "Delete"
msgstr ""
#: tmainform.btneditres.caption
msgid "Edit resource"
msgid "Edit"
msgstr ""
#: tmainform.btnnewres.caption
msgid "New resource"
msgid "New"
msgstr ""
#: tmainform.caption
msgid "Turbo Power VisualPlanIt Demo"
msgstr ""
#: tmainform.label1.caption
#: tmainform.cbgranularity.text
msgid "30 Min"
msgstr ""
#: tmainform.lblfirstdayofweek.caption
msgid "First day of week"
msgstr ""
#: tmainform.lblgranularity.caption
msgid "Granularity"
msgstr ""
#: tmainform.lbllanguage.caption
msgctxt "TMAINFORM.LBLLANGUAGE.CAPTION"
msgid "Language"
msgstr ""
#: tmainform.label2.caption
msgid "Tage"
#: tmainform.lbltimeformat.caption
msgid "Time format"
msgstr ""
#: tmainform.lblvisibledays.caption
msgid "Visible days"
msgstr ""
#: tmainform.menuitem1.caption
msgid "File"
msgstr ""
#: tmainform.menuitem2.caption
msgid "Help"
msgstr ""
#: tmainform.mnuabout.caption
msgid "About Visual PlanIt"
msgstr ""
#: tmainform.mnumaintenance.caption
msgctxt "TMAINFORM.MNUMAINTENANCE.CAPTION"
msgid "Maintenance"
msgstr ""
#: tmainform.mnuquit.caption
msgid "Quit"
msgstr ""
#: tmainform.mnuresources.caption
msgctxt "TMAINFORM.MNURESOURCES.CAPTION"
msgid "Resources"
msgstr ""
#: tmainform.mnusettings.caption
msgctxt "TMAINFORM.MNUSETTINGS.CAPTION"
msgid "Settings"
msgstr ""
#: tmainform.rballtasks.caption
@ -30,6 +199,7 @@ msgid "Hide completed tasks"
msgstr ""
#: tmainform.tabcontacts.caption
msgctxt "tmainform.tabcontacts.caption"
msgid "Contacts"
msgstr ""
@ -37,11 +207,22 @@ msgstr ""
msgid "Events"
msgstr ""
#: tmainform.tabinfo.caption
msgid "Info"
#: tmainform.tabresources.caption
msgctxt "TMAINFORM.TABRESOURCES.CAPTION"
msgid "Maintenance"
msgstr ""
#: tmainform.tabsettings.caption
msgctxt "tmainform.tabsettings.caption"
msgid "Settings"
msgstr ""
#: tmainform.tabtasks.caption
msgctxt "tmainform.tabtasks.caption"
msgid "Tasks"
msgstr ""
#: tmainform.titlelbl.caption
msgid "TitleLbl"
msgstr ""

View File

@ -128,6 +128,7 @@ type
constructor Create(Collection: TCollection); override;
destructor Destroy; override;
function GetContainer: TVpFolderContainer;
function ItemByName(AName: String): TVpNavBtnItem;
property Items[Index: Integer]: TVpNavBtnItem read GetItem;
property ItemCount: Integer read GetItemCount;
@ -834,6 +835,18 @@ begin
end;
{=====}
function TVpNavFolder.ItemByName(AName: String): TVpNavBtnItem;
var
i: Integer;
begin
for i:=0 to ItemCount-1 do begin
Result := Items[i];
if Result.Name = AName then
exit;
end;
Result := nil;
end;
procedure TVpNavFolder.lfGetEditorCaption(var Caption: string);
begin
Caption := RSEditingItems;