Prozessvirtualisierung mit erweiterten Features
Liste der Anhänge anzeigen (Anzahl: 2)
Moin zusammen,
mache diesen Thread auf, da ich folgendes Vorhabe und in dem Bereich Grafikprogrammierung nicht sonderlich fit bin. Im Anhang findet Ihr mein ersten Entwurf :( und der Wunsch :-D wie es aussehen soll... Projektziel ist es eine Unit/Komponente zu bauen, in der man Flowchartobjekte generieren kann, auf verschiedene feste Ebenen/Zeilen. Diese dynamisch mit Pfeilen verbinden, Objekteigenschaften wie Dokumente damit verknüpfen oder andere Informationen, eigentlich beliebig gestaltbar machen kann. Die Objekte sollen zu Laufzeit erstellt in einer Datenbanktabellen gespeichert und verwaltet werden, da diese Objekt mit weiteren Daten verknüpft werden sollen. Ich hab das ganze mal in einem ersten Wurf mit einem TPanel als Zeichenfläche gemacht. Die Objekte werden aus einer Tabelle ausgelesen und in einem dynamischen Array verwaltet. Allerdings kann man auf Panel nicht zeichnen (LineTo), etc.. Drucken soll man es auch können inkl. Skalierung. Wer hat so etwas schon mal gemacht oder kennt Komponenten die so etwas können. Eventuell könnten man so etwas auch als Komponente entwickeln lassen oder selber machen...
Code:
procedure TForm10.ACFlowReloadExecute(Sender: TObject);
begin ACFlowDestroyExecute(Sender); with DataModule1 do begin with qdummy01 do begin sql.Clear; sql.add('select * from tblFlowchart'); open; if recordcount > 0 then SetLength(FlowChartObj,recordcount); while not eof do begin FlowChartObj[recno-1].pid := fieldbyname('id').AsInteger; FlowChartObj[recno-1].panel := TLMDSimplePanel.Create(Self); FlowChartObj[recno-1].panel.Parent := zeichenflaeche; //Parent ist das Panel FlowChartObj[recno-1].panel.transparent := True; FlowChartObj[recno-1].panel.sizegrip := false; FlowChartObj[recno-1].panel.AllowSizing := false; FlowChartObj[recno-1].panel.color := zeichenflaeche.Color; FlowChartObj[recno-1].panel.tag := fieldbyname('id').AsInteger; FlowChartObj[recno-1].panel.Top := fieldbyname('rTop').AsInteger; FlowChartObj[recno-1].panel.Left := fieldbyname('rLeft').AsInteger; FlowChartObj[recno-1].panel.Width := 100; //erstmal feste Größen nehmen FlowChartObj[recno-1].panel.Height := 100; FlowChartObj[recno-1].panel.OnMouseDown := WinControlMouseDown; //Ereigniss MouseDown FlowChartObj[recno-1].panel.OnMouseUp := WinControlMouseUp; //Ereigniss MouseDown FlowChartObj[recno-1].panel.OnMouseEnter := WinControlMouseEnter; //Ereigniss MouseDown FlowChartObj[recno-1].panel.OnMouseExit := WinControlMouseLeave; //Ereigniss MouseDown FlowChartObj[recno-1].panel.OnMousemove := WinControlMouseMove; //Ereigniss MouseDown FlowChartObj[recno-1].panel.OnClick := WinControlOnClick; //Ereigniss MouseDown FlowChartObj[recno-1].oShape := TADVShape.Create(self); FlowChartObj[recno-1].oShape.Parent := FlowChartObj[recno-1].panel; case fieldbyname('shapetype').AsInteger of 1 : begin FlowChartObj[recno-1].oShape.Shape := stRectangle; FlowChartObj[recno-1].oShape.RotationAngle := 0; end; 2 : begin FlowChartObj[recno-1].oShape.Shape := stRectangle; FlowChartObj[recno-1].oShape.RotationAngle := 45; end; 3 : begin FlowChartObj[recno-1].oShape.Shape := stCircle; FlowChartObj[recno-1].oShape.RotationAngle := 0; end; end; FlowChartObj[recno-1].oShape.autosize := true; FlowChartObj[recno-1].oShape.Top := 30; FlowChartObj[recno-1].oShape.Left := 15; FlowChartObj[recno-1].oShape.Width := 70; FlowChartObj[recno-1].oShape.Height := 70; //FlowChartObj[recno].oShape.OnMouseDown := WinControlMouseDown; //Ereigniss MouseDown FlowChartObj[recno-1].oShape.Appearance.ColorTo := clSkyBlue; FlowChartObj[recno-1].oButton := TcxButton.Create(self); FlowChartObj[recno-1].oButton.Parent := FlowChartObj[recno-1].panel; FlowChartObj[recno-1].oButton.Top := 2; FlowChartObj[recno-1].oButton.Left := 2; FlowChartObj[recno-1].oButton.Width := 25; FlowChartObj[recno-1].oButton.Height := 25; FlowChartObj[recno-1].oButton.action := ACButton; next; end; end; end; ACFlowConnectRefreshExecute(Sender); end; |
AW: Prozessvirtualisierung mit erweiterten Features
Liste der Anhänge anzeigen (Anzahl: 2)
Versuche es mal mit der Komponente TSimpleGraph. Die macht so etwas.
Ich habe diese Komponente seit langem im Einsatz, allerdings habe ich sie für meinen Zwecke etwas modifiziert und verwende sie, um Programmoberflächen ausserhalb von Delphi (auch für den Anwender) nahezu frei gestaltbar zu machen. |
AW: Prozessvirtualisierung mit erweiterten Features
...DrawingObjects von Angus Johnson wäre sehr brauchbar.
wenn es was kosten darf: TMS Diagram Studio oder BlogEngine usw. |
AW: Prozessvirtualisierung mit erweiterten Features
Danke für die Antworten.
Die Komponenten dürfen auch was kosten. TMS hab ich mir schon angeschaut. BlogEngine und TSimpleGraph konnte ich bislang nicht im WEB als Download finden. Habt Ihr einen Link? Was mir durch den Kopf gegangen ist. Man könnte es doch auch als 2D Vektor machen. Gibt es da vielleicht etwas? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:54 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