Neu vorgestellt, Programmierung

Neues Objekt zum Zeichnen geometrischer Formen

Die Visualisierung von Kennzahlen oder Abläufen, lässt sich in CONZEPT 16 mit unterschiedlichen Objekten realisieren. Je nach Anwendung kann zusätzlich die Anforderung bestehen, einfache geometrische Formen wie Linien, Kreise oder Rechtecke zu zeichnen. Das war bisher nicht möglich…

Um diese Anforderung umsetzen zu können, gibt es ab der kommenden CONZEPT 16-Version eine neues Oberflächen-Objekt. Mit diesem lassen sich folgende Formen erzeugen:

  • Rechtecke
  • Quadrate
  • Kreise
  • Ovale
  • Linien

Die Basis zum Zeichnen der Grafik-Objekte stellt das Canvas-Objekt dar. Das englische Wort Canvas bedeutet „Leinwand“ und drückt genau das aus, was es ist. Eine Fläche zum Zeichnen bzw. Erstellen vektorbasierter Grafik-Objekte. In der aktuellen Version wird die „Leinwand“ sowie die zu zeichnenden Grafik-Objekte ausschließlich zur Laufzeit erstellt. In einer späteren Version wird das Canvas-Objekt in die Objektpalette des CONZPT 16-Designers aufgenommen.

Alle Objekte verfügen über Attribute, mit denen das Erscheinungsbild bestimmt werden kann. Dazu zählen zum Beispiel Auswahl des Fonts, Farbe und Strichstärke des Rahmens oder die Füllfarbe. Sogar die Verwendung eines Hintergrundbildes ist möglich.

Positionen und Größen werden analog zu den CONZEPT 16-Druckobjekten, in logischen Koordinaten angegeben. Das hat den Vorteil, dass die Anzeige auf geräteunabhängigen Einheiten (zum Beispiel Millimeter oder Zentimeter) basiert.

Im folgenden Beispiel wird die Beziehung zwischen den Entitäten „Museum“ und „Kunstwerk“ mit Hilfe des Canvas-Objekts abgebildet.

define
{
  // Umwandlung in logische Einheiten
  mLogRect(l,t,r,b,u) : RectMake(PrtUnitLog(CnvFI(l),u),PrtUnitLog(CnvFI(t),u),PrtUnitLog(CnvFI(r),u),PrtUnitLog(CnvFI(b),u))
}

sub CreateGraphic
(
  aCvs      : handle;
  aType     : int;
  aCaption  : alpha;
  aRect     : rect;
)

local
{
  tCvg  : handle;
  tFont : font;
}

{
  // Grafik-Objekt erstellen
  tCvg # WinCreate(_WintypeCanvasGraphic,'','',aCvs);
  
  switch (aType)
  {
    // Farbe des Rahmens setzen
    case _WinFormTypeRectangle : tCvg->wpBorderColFg # _WinColLightRed;
    
    // Start- und Endpunkt der Linie als Pfeil darstellen
    case _WinFormTypeLine  :
    {
      tCvg->wpLineCapStart # _WinLineCapArrowAnchor;
      tCvg->wpLineCapEnd   # _WinLineCapArrowAnchor;
    }
  }
  // Form des Objekts
  tCvg->wpFormType # aType;
  
  // Schriftgröße
  tFont # tCvg->wpFont;
  tFont:size # 150;
  tCvg->wpFont # tFont;
  
  // Beschriftung
  tCvg->wpCaption # aCaption;
  
  // Position
  tCvg->wpArea # aRect;
}

// Zeichenfläche erstellen
tCvs # WinCreate(_WinTypeCanvas,'','',tFrm);
// Grafik-Objekt vom Typ "Rechteck"
tCvs->CreateGraphic(_WinFormTypeRectangle,'Museum',mLogRect(1,2,7,4,_PrtUnitCentimetres));
// Grafik-Objekt vom Typ "Linie"
tCvs->CreateGraphic(_WinFormTypeLine,'1:n',mLogRect(7,2,12,4,_PrtUnitCentimetres));
// Grafik-Objekt vom Typ "Rechteck"
tCvs->CreateGraphic(_WinFormTypeRectangle,'Kunstwerk',mLogRect(12,2,18,4,_PrtUnitCentimetres));
Ergebnis der Programmierung: Museum 1:n Kunstwerk(e)

Fazit:

Prozesse lassen sich besonders gut durch Bilder und Diagramme darstellen. Gerade komplexe Abläufe können mittels einer Virtualisierung leichter analysiert und verstanden werden. Neben den CONZEPT 16-Objekten wie GanttGraph, Chart und Picture, ist das Canvas-Objekt ein weiterer Baustein für eine professionelle Prozessvisualisierung, wie sie typischerweise in Dashboard- bzw. Cockpit-Lösungen zur Anwendung kommt.

In der Codelibrary haben wir eine Beispiel-Anwendung hinzugefügt, mit dem die grafischen Objekte erstellt und die Eigenschaften der Objekte definiert werden können.

Keine Kommentare

Kommentar abgeben