AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Prozessvirtualisierung mit erweiterten Features
Thema durchsuchen
Ansicht
Themen-Optionen

Prozessvirtualisierung mit erweiterten Features

Ein Thema von TheProfi · begonnen am 15. Apr 2012 · letzter Beitrag vom 17. Apr 2012
Antwort Antwort
Benutzerbild von TheProfi
TheProfi

Registriert seit: 30. Mai 2005
Ort: Emden
42 Beiträge
 
Delphi 10.3 Rio
 
#1

Prozessvirtualisierung mit erweiterten Features

  Alt 15. Apr 2012, 21:19
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 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;
Miniaturansicht angehängter Grafiken
erster-entwurf.png   wunsch.png  
Georg Reimann
------------------------------------------------------
Sicher ist nur eines, dass nichts sicher ist...
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
536 Beiträge
 
Delphi 12 Athens
 
#2

AW: Prozessvirtualisierung mit erweiterten Features

  Alt 15. Apr 2012, 21:44
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.
Miniaturansicht angehängter Grafiken
kasse.jpg   artikelsuche.jpg  
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
376 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Prozessvirtualisierung mit erweiterten Features

  Alt 16. Apr 2012, 06:26
...DrawingObjects von Angus Johnson wäre sehr brauchbar.

wenn es was kosten darf: TMS Diagram Studio oder BlogEngine usw.
Andreas Schachtner
  Mit Zitat antworten Zitat
Benutzerbild von TheProfi
TheProfi

Registriert seit: 30. Mai 2005
Ort: Emden
42 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Prozessvirtualisierung mit erweiterten Features

  Alt 17. Apr 2012, 16:01
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?
Georg Reimann
------------------------------------------------------
Sicher ist nur eines, dass nichts sicher ist...
  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 19:09 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