Home Kontakt Sitemap MindFusion Logo
  Produkte                     
  FlowChartX                 
  FlowChartX Pro          
Features Features               
Online Demo Online Demo           
Downloaden Downloaden          
Galerie Galerie                    
Web-Awards Web-Awards        
FAQ - FlowChartX Pro FAQ                        
Forum Forum                    
Kaufen Kaufen                   
  FlowChart.NET             
  JDiagram                   
  PocketChart               
  MasterChart               
  Planner.NET                
  PocketPlanner  
  XML Viewer                
  InSight Diagrammer  
  Support                       
  Services                     
  Unternehmen            
  Online-Shop               
Frequently Asked Questions - FlowChartX Pro
FlowChartX Pro FAQ

        Implementierung von OLE Drag & Drop-Funktionen
    in Visual Basic

     Anwendungsfehler in der
     Arrow.DestinationBox-Eigenschaft

     Probleme beim Zugriff auf die Box.Font-Eigenschaften

     Löschen einer Tabelle mit allen ihren Kindern

     Auf Schleifen prüfen, bevor ein neuer Pfeil erzeugt wird

     Bewegen eines Objekts mit Visual Basic 6

     Gebrauch der "Manipulation Handle"-Maske.

     Einstellen des Maus-Cursors

     Bilder laden in Visual Basic

     Technischer Support und Upgrades

     Einschränkungen der Demo-Version

     Lizenz-Beschränkungen

FAQ

FAQ

F:   Die FlowChartX Drag & Drop-Methode übergibt ein Argument vom Typ FLOWCHARTLibCtl.IdataObject, von dem ich annehme, dass es ein Typelib für das Standart COM IDataObject ist. Mein Problem besteht darin, dass ich versuche auf die Daten im dataObj zuzugreifen, daraufhin aber den Laufzeitfehler "Automation type not supported in Visual Basic" erhalte. Haben Sie eine Lösung hierfür? Gibt es bessere Möglichkeit OLE Drag & Drop mit Ihrem Control in VB zu implementieren?

A:     Es gibt eine neue Drag & Drop-Methode namens drProgrControlVB, die dieselben Funktionen wie drProgrControl bietet. Der Unterschied besteht darin, dass die Events, die ausgelöst werden, wenn die Eigenschaft auf VB-Modus gesetzt wird, ihre Parameter vom IVBDataObject-Interface erhalten, welches mit der Automation kompatibel ist. Die FlowChartX VB-Events haben die gleichen Namen wie diejenigen, welche durch das drProgrControl ausgelöst werden. Es muß nur das Suffix 'VB' angehängt werden.

zurück zum Anfang

FAQ

F:     Ich erhalte eine Anwendungsfehler-Meldung, wenn ich auf die Eigenschaften der DestinationBox des Pfeils zugreife, der als Argument im RequestCreateArrow-Event zugewiesen ist.

A:     Wenn RequestCreateArrow ausgelöst wird, ist das DestinationBox-Objekt des Pfeils noch nicht eingestellt. Wir haben eine neue Pfeil-Eigenschaft namens "ExpectedDestination" hinzugefügt, die nur im RequestCreateArrow Event-Handler gültig ist. Sie verweist auf das entsprechende Kästchen oder die Tabelle, die das Zielobjekt des Pfeils sein wird, wenn dieser erzeugt wird.

zurück zum Anfang

FAQ

F:     Ich habe keinen Zugriff auf die Font-Eigenschaften des Kästchen-Objekts - jeder Versuch erzeugt einen Fehler.

A:    Standardmäßig sind die Font-Eigenschaften für alle Objekte (Tabellen, Kästchen, Pfeile) auf Null/Nichts gestellt. Wenn die Font-Eigenschaft eines FlowChartX-Objekts Null/Nichts ist, wird die Font-Eigenschaft des Flowchart-Objekts benutzt, um den Text des Objekts zu wiederzugeben. Man kann die Speichernutzung gering halten, indem nicht jedem Diagrammelement Fonts zugewiesen werden. Wenn der Font eines Objekts Null ist, benutzt es den Flowchart-Font, um seinen Text wiederzugeben. Wenn Sie unterschiedliche Fonts für unterschiedliche Objekte benötigen, sollten Sie diese erst auf irgendeinen Wert setzen, indem Sie das VB SET-Statement benutzen and danach sind Sie in der Lage auf die Font-Eigenschaften ohne Fehler zuzugreifen.

zurück zum Anfang

FAQ

F:    Ich möchte eine Tabelle mit all Ihren Kindern löschen. Ich kenne keine Methode, um dies zu bewerkstelligen - vielleicht könnte ich eine Gruppe erstellen und die DestroyGroup-Methode verwenden, bin mir aber nicht sicher, ob das sinnvoll ist...

A:    Sie könnten eine rekursiven Algorithmus verwenden, um die Tabelle gestuft zu löschen - etwa auf die folgende Art und Weise


`*************************

sub CascadingDelete(tbl as Table)
  dim i as integer

  `hier werden alle Tabellen - Kinder gelöscht
  For i = 1 To tbl.GetRelatedTables(1,rlManyToOne).Count
     CascadingDelete tbl.GetRelatedTables(1,rlManyToOne).Item(0)
  Next i

  `die Tabelle hat keine Kinder mehr, daher
  `können wir diese jetzt löschen
  fc.DeleteItem tbl
end sub

sub someSub
  if fc.ActiveItem = itTable then
    CascadingDelete ActiveTable
  end if
end sub

`***************************
      

zurück zum Anfang

FAQ

F: Mein System gestattet es dem Nutzer, ein Flussdiagramm zu erstellen, ich möchte es aber auf Schleifen überprüfen, bevor ein Pfeil platziert wird. Ich habe bisher den RequestCreateArrow verwendet, um den Pfeil abhängig vom vorhergehenden und vom nachfolgenden Objekt zu bestätigen, aber ich kann die FindCycle-Funktion nicht benutzen, so lange der Pfeil nicht endgültig platziert wurde. Wissen Sie, wie ich dieses Problem umgehen kann?

A:     Sie können die FindShortestPath-Methode nutzen, um zu überprüfen, ob mit dem Pfeil eine Schleife entsteht. Wenn beispielsweise der Pfeil zwischen den Kästchen b1-> b2 erzeugt wird, dann wird für den Fall, dass FindShortestPath(b2, b1) einen Pfad findet, eine Schleife entstehen (der Pfeil verbindet die beiden Enden des gefunden Pfads).

Eine andere Lösung: Wenn der Pfeil von b2 to b1 erzeugt wird, dann wird das Hinzufügen des Pfeils wieder eine Schleife erzeugen, falls FindShortestPath(b1, b2) eine Pfad zurückgibt.

In Ihrem RequestCreateArrow Event-Handler könnten Sie also folgenden Code verwenden:

if FindShortestPath(arrow.SourceBox,ExpectedDestination) = Nothing then
      create = true
else
      create = false
end if
                         

zurück zum Anfang

FAQ

F:     Ich möchte die Position eines Objektes (z.B. eines Kästchens) in VB6 verändern. Wie kann ich dies bewerkstelligen?

A:     Die Position von Kästchen und Tabellen können Sie mit der SetRect-Methode verändern.

zurück zum Anfang

FAQ

F:     Wir nutzen die mnp handles-Maske wie folgt:

IBoxItem* pBox =
      m_pFCXWidget->createBox( QRect( 250,  250, 140, 40 ),
      "Hallo!", "Tool Tip" );
      
Wenn die Maske der MnpHandles-Eigenschaft wie folgt gesetzt wird :
 pBox->put_MnpHandlesMask( 110100000 );
      
wird nur das Move-Handle und die Right-Edge-Handle angezeigt?

A:     Die Handles-Maske ist eine Bit-Maske. Demzufolge sollte 110100000 die binäre Representation der Maske sein. Rufen Sie die Funktion mit der dezimalen Repräsentation dieser Zahl auf:

bin 110100000 = dec 416 
pBox->put_MnpHandlesMask( 416 );


      

zurück zum Anfang

FAQ

F:     Wie kann ich die Maus-Cursor mit FlowChartX einstellen?

A:     Der Maus-Cursor kann mit der SetMouseCursor-Methode des FlowChart-Objekts verändert werden. Der Methoden-Prototyp lautet wie folgt:

SetMouseCursor(type, handle, destroyOld)
      

wobei::
'type' der Cursor-Typ ist, den Sie ersetzen wollen (z. B. zeigt mcArrowStart constant (= 3) den Mouse-Cursor als Pfeil an);
'handle' der Cursor Resource Handle ist, welcher von ::LoadCursor Window's API zurückgegeben wird;

'destroyOld' der boole'sche Wert ist, der angibt, ob der vorherige Cursor gelöscht werden soll.

Zum Beispiel können Sie für ein FlowChartX-Objekt namens 'fc' folgenden Visual C++ Code nutzen, um den Maus-Cursor zu verändern:

fc.SetMouseCursor(mcArrowStart,(ULONG)::
   LoadCursor(NULL, IDC_ARROW), FALSE);
      

zurück zum Anfang

FAQ

F:     Wie kann ich ein LoadPicFromRes in einem VB-Programm aufrufen?

A:     Sie sollten Ihre Bilddateien (.jpeg, .ico, .bmp, etc) als Custom Resource einfügen. Sie sollten ihnen Resource String Ids und keine Integer-Zahlen, wie sie von Resource Editoren normalerweise genutzt werden. Wenn die Bilder in Ihrer .exe Datei lokalisiert werden, können Sie 0 als Resource-Instanz-Handle angeben.

Beachten Sie bitte, dass, wenn das Projekt in VB interpretiertem Modus getestet wird, die Resourcen mit 0 nicht gefunden werden, weil das Projekt im Prozess von VB.EXE läuft. Wenn Sie Ihr Projekt als .EXE erzeugen und starten, dann läuft es einwandfrei.

Falls Sie Ihre Resourcen in einer getrennten DLL speichern, dann müssen Sie die GetModuleHandle API-Funktion aufrufen, um die Instanz-Handle für das DLL zu erhalten.

zurück zum Anfang

FAQ

F:     Ich überlege mir ernsthaft, FlowChartX zu kaufen. Welcher technische Support wird mir mit dem Erwerb zugesichert? Wieviel kosten Updates?

A:     Mit dem Erwerb der FlowChartX-Lizenz wird für die Dauer von 6 Monaten der Zugriff auf den technischen Support und konstenlose Upgrades zugesichert.

zurück zum Anfang

FAQ

F:     Ich habe das FlowChartX Demoprogramm geladen.Welche Einschränkungen hat eigentlich die Demo-Version?

A:     Im Demoprogramm lassen sich maximal 32 Objekte erstellen. Die Demo-Version ist zeitlich unbegrenzt nutzbar.

zurück zum Anfang

FAQ

F:     Ich möchte FlowChartX in einer Anwendung nutzen, die nur für eine kleine Gruppe von Benutzern entwickelt wurde. Kann ich das Control an jeden Benutzer weitergeben, falls ich die 'Standard Einzel-Entwickler'-Version kaufe oder benötige ich vielleicht die 'Site-Wide'- Lizenz dafür?

A:     FlowChartX Lizenzen beschränken nicht die Zahl der Benutzer ihrer fertigen Software, sondern die Zahl der Entwickler, welche die Komponente nutzen. Falls Sie freiberuflich als Entwickler arbeiten oder Sie der einzige Programmierer sind, der mit FlowChartX in Ihrem Betrieb arbeitet, dann genügt Sie die 'Einzel-Entwickler'-Lizenz. Danach können Sie Ihre fertige Anwendung an so viele Leute ausliefern, wie Sie wollen. Der Preis ist nur an der Zahl der Software Entwickler gebunden, die die Kontrolle nutzen werden ( unsere technischen Unterstützungskosten sind hiervon abhänging ).

FAQ zurück zum Anfang

FAQ