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
 
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;
Angehängte Grafiken
Dateityp: png erster Entwurf.png (38,5 KB, 45x aufgerufen)
Dateityp: png wunsch.png (52,0 KB, 46x aufgerufen)
Georg Reimann
------------------------------------------------------
Sicher ist nur eines, dass nichts sicher ist...
  Mit Zitat antworten Zitat
 


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 10:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz