Может кто-либо говорить мне, как сделать следующее:
Я хочу знать, как сделать вышеупомянутое во времени выполнения Приложения, например, в событии Form's OnCreate.
Ваш последний редактор делает вещи более четкими.
В основном вы смущены, и вы уже получаете то, что хотите.
1239867980191 Миллисекунды, поскольку эпоха переводится в четверг, 16 апреля 2009 года, в 7: 46: 20.191 в часовом поясе GMT. Очень же момент переводит в тот же день, но 8: 46: 20.191 в часовом поясе GMT + 01. Если ваша входная строка указана «7: 46: 20.191», а вы действительно получили 1239867980191 из Date.gettime ()
, затем поздравляю, код анализа понимал ваш «7: 46: 20.191», что следует интерпретировать в Часовой пояс GMT и сделал это правильно.
Если после этого Вы получаете «8:46:20» при печати, это только потому, что вы используете часовой пояс GMT + 01 для отображения этого мгновенного. Обратите внимание, что строка содержит GMT + 100
точно, чтобы уведомить вас, что он использует этот часовой пояс для целей отображения. Мгновенный , какой экземпляр дата
представляет собой, тем не менее, точно в том, что вы хотите, чтобы он содержен. Помните, что экземпляр
экземпляр представляет собой мгновение во времени, для которых не применяется понятие часового пояса: часовые пояса используются для преобразования моментов в элементы календаря (дни, часы ...) и обратно.
Для преобразования дата
к отображенной строке, используйте DateTimeFormat.Format (дата, часовой пояс)
, который позволяет указать, какой часовой пояс вы хотите использовать для этой строки.
function FindRootNode(ACaption: String; ATreeView: TTreeView): TTreeNode;
var LCount: Integer;
begin
result := nil;
LCount := 0;
while (LCount < ATreeView.Items.Count) and (result = nil) do
begin
if (ATreeView.Items.Item[LCount].Text = ACaption) and (ATreeView.Items.Item[LCount].Parent = nil) then
result := ATreeView.Items.Item[LCount];
inc(LCount);
end;
end;
...
var LDestNode: TTreeNode;
begin
LDestNode := FindRootNode('category', TreeView1);
if LDestNode <> nil then
begin
TreeView1.Items.AddChild(LDestNode, 'node1');
TreeView1.Items.AddChild(LDestNode, 'node2');
end;
end;
(см. Также http://msdn.microsoft.com/en-us/library/70w4awc4.aspx )
Насколько я знаю, нет способа отключить Treenode. Только что вы можете сделать, это перехватить BeForeslect-событие и отменить выбор там. Не так приятно.
@remus, здесь у вас есть простой пример добавления узлов.
Var
Node : TTreeNode;
begin
//function TTreeNodes.Add(Sibling: TTreeNode; const S: string): TTreeNode;
Node:=TreeView1.Items.Add(nil,'My Root Node') ;
Node.ImageIndex:=0;//now you can change any property of the node
end;
//in this case we add a child node in the current selected node.
Var
Node : TTreeNode;
begin
if TreeView1.Selected= nil then exit;
Node:=TreeView1.Items.AddChild(TreeView1.Selected,'My Child Node') ;
Node.ImageIndex:=0;//now you can change any property of the node
end;
Если вы хотите добавить множество узлов, используя петля или что-то еще, что вы должны использовать Начать, прежде чем внести изменения до дерева. Когда все изменения Заполните, вызовите endupdate, чтобы показать изменения на экране. Beginupdate и Endupdate предотвратить чрезмерные перерезания и ускорить время обработки, когда Узлы добавляются, удалены или вставлены.
Var
Node : TTreeNode;
i : Integer;
begin
TreeView1.Items.BeginUpdate;
try
for i:=1 to 100 do
begin
Node:=TreeView1.Items.Add(nil,'My Root Node '+IntToStr(i)) ;
Node.ImageIndex:=0;
end;
finally
TreeView1.Items.EndUpdate;
end;
end;
Об отключитех узла, не существует никакого недвижимости.