Код взят из стаить http://forum.vingrad.ru/index.php?act=ST&a...=84&t=97620 про Virtual Treeview хочу освоить но Dilphi незнаю. | Код | Names: array[0..4] of WideString = ( 'Вася', 'Петя', 'Маша', 'Костя', 'Дима' ); Phones: array[0..4] of WideString = ( '433-56-49', '545-67-79', '777-50-50', '911-03-05', '02' );
|
| Код | procedure TfrmMain.BtnLoadClick(Sender: TObject); var i: Integer; begin for i := 0 to Length(Names) - 1 do VT.AddChild(nil); end;
|
| Код | procedure TfrmMain.VTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); begin case Column of // Текст для колонки имени 0: CellText := Names[Node.Index]; // Текст для колонки телефонного номера 1: CellText := Phones[Node.Index]; end; end;
|
| Код | property Text[Node: PVirtualNode; Column: TColumnIndex]: WideString;
|
| Код | type PPhoneNode = ^TPhoneNode;
TPhoneNode = record Name, // Имя контакта Phone: WideString; // Телефон end;
|
| Код | function TBaseVirtualTree.GetNodeData(Node: PVirtualNode): Pointer;
|
| Код | procedure TfrmMain.FormCreate(Sender: TObject); begin VT.NodeDataSize := SizeOf(TPhoneNode); end;
|
| Код | procedure TfrmMain.BtnAddClick(Sender: TObject); var NewNode: PVirtualNode; NewPhone: PPhoneNode; begin NewNode := VT.AddChild(VT.FocusedNode); NewPhone := VT.GetNodeData(NewNode); if Assigned(NewPhone) then with NewPhone^ do begin Name := EdName.Text; Phone := EdPhone.Text; end; end;
|
|