![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#16
|
||||
|
||||
|
Цитата:
|
|
#17
|
|||
|
|||
|
Как удалять ...
В TreeView есть событие OnDeletion(Sender: TObject; Node: TTreeNode); Вот у этого Node и надо удалять Data |
|
#18
|
||||
|
||||
|
Цитата:
|
|
#19
|
||||
|
||||
|
Цитата:
Код:
IFoo = interface
['{57B2E8F3-D285-4A43-BCDD-6EFECD76D654}']
end;
TFoo = class(TInterfacedObject, IFoo)
private
FData: TObject;
public
constructor Create(const aObj: TObject);
destructor Destroy; override;
end;
{ TFoo }
constructor TFoo.Create(const aObj: TObject);
begin
FData := aObj;
end;
destructor TFoo.Destroy;
begin
FreeAndNil(FData);
inherited;
end;
function PenisCanis(const aData: TObject): IFoo;
begin
Result := TFoo.Create(aData);
end;интерфейсы можно в листик добавлять. |
|
#20
|
||||
|
||||
|
Цитата:
Код:
ListBox1.Items.AddObject('1', TObject(PenisCanis(nil))); |
|
#21
|
||||
|
||||
|
Цитата:
|
|
#22
|
||||
|
||||
|
Цитата:
Цитата:
|
|
#23
|
||||
|
||||
|
Этот метод еще хорош тем, что можно не использовать try finally при применении его в локальных методах, особенно удобно если с динамической памятью работаешь, чтоб TMemoryStream в finally не пришибать.
|
|
#24
|
|||
|
|||
|
Здравствуйте, а как сделать так что бы можно было мышкой любой элемент Treeview перемещать из одного узла в другой???
|
|
#25
|
||||
|
||||
|
Цитата:
По TreeView - смотри свойства DragKind, DragMode и события OnStarDrag, OnEndDrag, OnDragDrop, OnDragOver. |
|
#26
|
|||
|
|||
|
Цитата:
|
|
#27
|
||||
|
||||
|
Цитата:
Код:
procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
var
TreeView: TTreeView;
SourceNode, TargetNode: TTreeNode;
begin
Accept := False;
if Source is TTreeView then
begin
TreeView := Source as TTreeView;
SourceNode := TreeView.Selected;
if SourceNode <> nil then
begin
TargetNode := TreeView.GetNodeAt(X, Y);
if TargetNode = nil then
begin
Accept := htNowhere in TreeView.GetHitTestInfoAt(X, Y);
end else
begin
Accept := True;
while TargetNode <> nil do
begin
if TargetNode = SourceNode then
begin
Accept := False;
Break
end;
TargetNode := TargetNode.Parent;
end;
end;
end;
end;
end;
procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
TreeView: TTreeView;
SourceNode, TargetNode: TTreeNode;
begin
if Source is TTreeView then
begin
TreeView := Source as TTreeView;
SourceNode := TreeView.Selected;
TargetNode := TreeView.GetNodeAt(X, Y);
if SourceNode <> nil then SourceNode.MoveTo(TargetNode, naAddChild);
end;
end; |
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
tupetoner (30.08.2012)
| ||
|
#28
|
|||
|
|||
|
можно ли сделать что бы узел дерева одного приложения перетянуть мышкой в любой узел дерева другого приложения???
|
|
#29
|
|||
|
|||
|
poli-smen, а как сделать что бы по двойному щелчку мыши на определенном узле менялся размер шрифта, жирность и цвет узла и при повторном двойном щелчке на этом узле эти параметры возвращались к исходным???
|
|
#30
|
||||
|
||||
|
Цитата:
![]() Смотри например такие компоненты: http://melander.dk/delphi/dragdrop Цитата:
|
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
tupetoner (01.09.2012)
| ||