Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Помогите перевести куски кода с Delphi


Автор: nut 26.12.2006, 00:07
Код взят из стаить http://forum.vingrad.ru/index.php?act=ST&f=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;
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)