AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Strukturelles Diagramm aus einem TTreeview erzeugen - WIE?
Thema durchsuchen
Ansicht
Themen-Optionen

Strukturelles Diagramm aus einem TTreeview erzeugen - WIE?

Offene Frage von "torud"
Ein Thema von torud · begonnen am 25. Feb 2009 · letzter Beitrag vom 25. Feb 2009
Antwort Antwort
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Strukturelles Diagramm aus einem TTreeview erzeugen - WIE?

  Alt 25. Feb 2009, 10:37
Hallo Wissende,

ich möchte mir aus einem TTreeview ein strukturelles Diagramm erstellen, ohe die Struktur des Treeviews kennen zu müssen. Dabei will ich ungefähr folgendes erreichen.

Angenommene Struktur des Treeviews:

-CEO Chef der Firma
--Controlling
---Tante Müller
---Onkel Mike
--Produktion
---Horst Kürschner
---Emil Schnitzer
---Jürgen Schmidt

So soll dann das Diagramm ungefähr aussehen

__| CEO Chef der Firma |__

|Controlling|___|Produktion
-Tante Müller___-Horst Kürschner
-Onkel Mike_____-Emil Schnitzer
________________-Jürgen Schmidt

Also die Positionen in der Firma sollen durch Buttons oder Panels realisiert werden und dann mit Pfeilen verbunden werden. Das lies sich hier jetzt schlecht visulisieren.

Nun interessiert mich natürlich folgendes:
1. Wie kann ich die Childs der ersten Ebene auslesen? Und was, wenn darunter noch eine (oder mehrere) Strukturelle Ebene(n) kommt(en)? Das wäre dann sicher was rekursives!?
2. Wie müsste ich ungefähr mit der Positions-Logik (x-y der Buttons/Panels)ansetzen? Wenn man in der Breite und in der Tiefe mehr Ebenen hat, dürfen ja die Buttons oder Panels, wo ich die Namen und Positionen eintragen will, nicht miteinander kollidieren. Hat da jemand schon mal was von Euch gemacht oder eine Idee?

Ich stelle hier auch gern mal mein Testprojekt ein, wenn erwünscht.
Danke
Tom
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#2

Re: Strukturelles Diagramm aus einem TTreeview erzeugen - WI

  Alt 25. Feb 2009, 18:03
Damit das hier nicht so aussieht, als würde ich fertigen Code erwarten, zeig ich Euch mal, was ich bisher habe.

Ich bin eigentlich schon "FAST" zufrieden. Nur würde ich eben gern die Unterstrukturen jeweils über dem "Elternelement" zentrieren, wie auch das RootElement. Das müsste eigentlich mit einfacher Logik gehen, nur bin ich da nicht ganz so helle.

Hier der Code und ein ScreenShot:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, AdvSmoothButton, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    tree: TTreeView;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  myButton : TButton;
  i, int_Top_offset, main_Left, int_Left_offset : integer;
begin
  tree.FullExpand;

  int_Top_offset := 30;
  int_Left_offset := 20;
  main_Left := 0;

  for i := 0 to tree.Items.Count-1 do
    begin
      myButton := TButton.Create(self);
      myButton.Parent := Form1;
      myButton.Top := (tree.Items.Item[i].Level * 45) + int_Top_offset;
      myButton.Height := 30;

      inc(main_Left);
      myButton.Left := (main_Left * 75) + int_Left_offset;
      myButton.Caption := tree.Items.Item[i].Text;
      myButton.Visible := true;
    end;
  form1.Repaint;
end;

end.
Miniaturansicht angehängter Grafiken
tree2diagramm_684.png  
Danke
Tom
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz