Studio Controls for COM via ActivX einbinden?

Nutzung, Komponenten, .NET

Moderator: Moderatoren

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von Wolfgang Ciriack »

Hmm, das wir die Zeile sein:

Code: Alles auswählen

     aPP := aInfo[ XBP_DRAWINFO_COLUMN ]:presArray

     nFound := AScan(aPP,{|a|Valtype(a[1])=='N'.AND. ;
                      (a[1]==XBP_PP_COL_DA_ROWHEIGHT .OR. ;
                       a[1]==XBP_PP_COL_DA_CELLHEIGHT) } )
     IF nFound == 0
       aPP := ::setPresParam()
       nFound := AScan(aPP,{|a|Valtype(a[1])=='N'.AND. ;
                        (a[1]==XBP_PP_COL_DA_ROWHEIGHT .OR. ;
                         a[1]==XBP_PP_COL_DA_CELLHEIGHT) } )
     ENDIF
Schmeiss das einfach mal komplett raus, das wird hier m.E. gar nicht benötigt :shock:
Viele Grüße
Wolfgang
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von AUGE_OHR »

satmax hat geschrieben:In wie weit ist die Ansicht dynamisch an die Fenstergröße anpassbar?
wenn du mehr Flexibilität als XbpBrowse() benötigst dann könntest du auch direkt XbpMultiCellGroup() verwenden. mit

Code: Alles auswählen

o:maxCol	:= 31
o:maxRow	:= 6    // geerbt von XbpCellGroup()
hast du gleich dein X,Y Grid

In deinem Demo werden deine 6 "Resourcen" angezeigt aber das Browse hat 16 Row als Darstellung.
wenn die 6 "Resourcen" den Platz vollständig ausnutzen sollen musst du nPixel := Höhe / 6 mit o:setRowHeight( <nPixel> ) setzen.

wie viel Text / Zeilen, abhängig vom Font, du dann in eine Cell bekommst musst du mit GraQueryTextBox() in deinem Ownerdraw ermitteln.

wenn man über mehrere waagerechte Cells einen Text "malt" sehen die Übergänge zur nächsten Cell ( Frame-Rand) nicht gut aus.
man kann jedoch, aus dem Text, ein Bitmap machen was man dann ich so viele Steifen schneidet wie man Cells hat und das anzeigen.
gruss by OHR
Jimmy
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von satmax »

So etwas habe ich mit dem Browser heute hinbekommen:

Ich werde mir aber XbpMultiCellGroup() auf jeden Fall auch noch genauer ansehen, danke für den Hinweis.
Dateianhänge
beispiel.JPG
beispiel.JPG (74.08 KiB) 13349 mal betrachtet
Gruß
Markus
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von satmax »

AUGE_OHR hat geschrieben: In deinem Demo werden deine 6 "Resourcen" angezeigt aber das Browse hat 16 Row als Darstellung.
wenn die 6 "Resourcen" den Platz vollständig ausnutzen sollen musst du nPixel := Höhe / 6 mit o:setRowHeight( <nPixel> ) setzen.

wie viel Text / Zeilen, abhängig vom Font, du dann in eine Cell bekommst musst du mit GraQueryTextBox() in deinem Ownerdraw ermitteln.

wenn man über mehrere waagerechte Cells einen Text "malt" sehen die Übergänge zur nächsten Cell ( Frame-Rand) nicht gut aus.
man kann jedoch, aus dem Text, ein Bitmap machen was man dann ich so viele Steifen schneidet wie man Cells hat und das anzeigen.
Es könne durchaus auch 20 oder 100 Ressourcen sein. In einer ersten Version würde mir eine Wochenansicht reichen. Möglicherweise brauche ich für einen Teil der Ressourcen mehr als eine Zeile, das könne dann auch mal 2,3 oder 5 Zeilen für eine Ressource sein.

Wie kann ich aus dem Text ein Bitmap machen?

Ich habe mir jetzt XbpMultiCellGroup() noch nicht angesehen. Mit dem Browser war das heute nicht allzu schwierig, Tom hat ja da ein super Tutorial erstellt (Ownerdrawing Beispiel 1-6). Gibt es auch wo Beispiele für XbpMultiCellGroup()?
Gruß
Markus
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von AUGE_OHR »

satmax hat geschrieben:Es könne durchaus auch 20 oder 100 Ressourcen sein. In einer ersten Version würde mir eine Wochenansicht reichen.
wenn es mehr Rows sind als Platz ist wird ja der Scrollbar von XbpBrowse() aktive.

wenn man o:customDrawCell FROM XbpBrowse verwendet gilt es ja für alle Column und Ownerdraw ist nicht gerade schnell.
bei o:customDrawCell FROM XbpCellGroup würdest du eine spezielle Column Class machen die du in einem normalen XbpBrowse gemischt mit anderen XbpColumn() verwenden kannst.

Code: Alles auswählen

*******************************
CLASS XbpBrowseT FROM XbpBrowse
*******************************
EXPORTED:
INLINE METHOD init( oParent, oOwner, aPos, aSize, aPP, lVisible )
*****************************************************************
   ::XbpBrowse:init( oParent, oOwner, aPos, aSize, aPP, lVisible )
      ::drawMode:= XBP_DRAW_OWNER
RETURN self

INLINE METHOD create( oParent, oOwner, aPos, aSize, aPP, lVisible )
*******************************************************************
   ::XbpBrowse:create( oParent, oOwner, aPos, aSize, aPP, lVisible )
      ::childList()[ 4 ]:type := XBPSTATIC_TYPE_TEXT
      ::childList()[ 4 ]:setColorBG( -255 )
      ::childList()[ 4 ]:configure()
RETURN self

INLINE METHOD customDrawCell
****************************
RETURN .T.   // nichts weiter !!!
ENDCLASS

*******************************
CLASS XbpColumnT FROM XbpColumn
*******************************
EXPORTED:
   INLINE METHOD init( oParent, oOwner, aPos, aSize, aPP, lVisible )
   *****************************************************************
      ::XbpColumn:init( oParent, oOwner, aPos, aSize, aPP, lVisible )
         // hier nur ::dataArea
         ::dataArea:= XbpCellGroupT():new( self )
         ::drawMode:= XBP_DRAW_OWNER
   RETURN self
ENDCLASS

*************************************
CLASS XbpCellGroupT FROM XbpCellGroup
*************************************
INLINE METHOD init( aParent, oOwner, aPos, aSize, aPP, lVisible )
INLINE METHOD destroy
INLINE METHOD setSize( aSize, lPaint )
INLINE METHOD setPos( aPos, lPaint )
INLINE METHOD CalculateOffset
INLINE METHOD scrollDown( nRows, lRepaint )
INLINE METHOD scrollUp( nRows, lRepaint )
...
INLINE METHOD customDrawCell( oPS, aInfo )
*************************************
LOCAL nRow    := aInfo[ XBP_DRAWINFO_ITEM   ] // Nummer der Zeile, die die Zelle enth„lt
LOCAL nAction := aInfo[ XBP_DRAWINFO_ACTION ] // Aktion, die das Ereignis xbeP_CustomDrawCell ausgel”st hat
LOCAL nState  := aInfo[ XBP_DRAWINFO_STATE  ] // Aktueller Zustand der Zelle
LOCAL aRect   := aInfo[ XBP_DRAWINFO_RECT   ] // Ausgaberechteck fr die Zeichenoperation

   DO CASE
      CASE nAction = XBP_DRAWACTION_SELCHANGE // Der Selektionsstatus einer Zelle hat sich ge„ndert
      CASE nAction = XBP_DRAWACTION_DRAWFG    // Die Caption innerhalb einer Zelle muss neu gezeichnet werden.
      //
      // use XBP_DRAW_OWNERADVANCED
      //
      CASE nAction = XBP_DRAWACTION_ERASEBG   // Der Hintergrund wird gel”scht, bevor Zellen neu angezeigt werden
      CASE nAction = XBP_DRAWACTION_DRAWBG    // Der Hintergrund einer Zelle muss gezeichnet werden.
      CASE nAction = XBP_DRAWACTION_DRAWFRAME // Der Rahmen oder die Auswahlmarkierung einer Zelle muss neu gezeichnet werden
   ENDCASE

   DO CASE
      CASE nState  = XBP_DRAWSTATE_NORMAL     // Zelle ist im Normalzustand
      CASE nState  = XBP_DRAWSTATE_SELECTED   // Zelle ist gegenw„rtig ausgew„hlt
      CASE nState  = XBP_DRAWSTATE_DISABLED   // CellGroup-Objekt ist gegenw„rtig deaktiviert
      CASE nState  = XBP_DRAWSTATE_FOCUS      // CellGroup-Objekt hat gegenw„rtig den Eingabefokus
   ENDCASE

// hier die GRA oder oBMP:Draw() Ausgaben

RETURN self
satmax hat geschrieben:Möglicherweise brauche ich für einen Teil der Ressourcen mehr als eine Zeile, das könne dann auch mal 2,3 oder 5 Zeilen für eine Ressource sein.
mich wundert deine letzte Row die höher ist als alle anderen :shock:
eigentlich können Rows nur gleich hoch sein ...

klar kann man über eine Cell hinaus malen ... und wie sieht das dann nach einem Refresh aus ?
satmax hat geschrieben:Wie kann ich aus dem Text ein Bitmap machen?
http://www.xbaseforum.de/viewtopic.php?f=16&t=5090
satmax hat geschrieben:Ich habe mir jetzt XbpMultiCellGroup() noch nicht angesehen. Mit dem Browser war das heute nicht allzu schwierig, Tom hat ja da ein super Tutorial erstellt (Ownerdrawing Beispiel 1-6). Gibt es auch wo Beispiele für XbpMultiCellGroup()?
der Header / Footer und die DataArea von XbpColumn() sind XbpCellGroup() dessen Subklasse XbpMultiCellGroup() ist.
gruss by OHR
Jimmy
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von satmax »

Ich plane im Moment nur die Datensätze einzulesen die auch angezeigt werden, es bringt nichts, die Daten von 100-200 Ressourcen einzulesen um dann nur 20 oder 30 anzuzeigen. Der Rest wird bei Bedarf nachgeladen. So ist das auch im Sinne von SQL.

Ja, leider dürfen die Zeilen nur gleich hoch sein, das ist ein Manko. Bei meinem Screenshot sieht das nur so aus. Der unterer Bereich ist einfach leer weil zu wenig Ressourcen geladen sind. Die letzte Zeile ist einfach die Fußzeile.

Im das mit der Zeilenhöhe zum umgehen, überlege ich, im Fall der Fälle für einzelne Ressourcen einfach mehr Zeilen einzulesen / anzuzeigen.

Was mir noch Probleme bereitet, sind Zelleninhalte die über 2 oder mehr Spalten gehen. Da könnte aber dein Ansatz mit den Bitmaps helfen. Muss ich mir aber erst noch genauer ansehen. Im Prinzip hätte ich gerne so etwas wie eine TimeBar mit einem Text.

So, und jetzt werde ich mir mal dein Beispiel genauer ansehen.
Gruß
Markus
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von brandelh »

Die fixe Zeilenhöhe ist eine Beschränkung von Xbase++, allerdings dient es der Übersichtlichkeit wenn alle Zeilen gleich hoch sind.
Wenn der Platz nicht reicht, könnte man das durch "..." oder einfach weil nicht alles sichtbar ist erkennen und per KLICK auf die Zelle ein Fenster mit allen Daten öffnen.

So mache ich das meist beim Editieren im Browser, da ich lieber ein Eingabefenster statt einer Eingabezeile habe. ;-)
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von Tom »

Browses sind nicht die einzigen Controls, die Ownerdrawing erlauben. Tatsächlich lassen sich Termine optisch in ihnen nur schwer so darstellen, dass die Zeit (Dauer) reflektiert wird. Es geht zwar, aber mit Daten, die von einer Zelle zur anderen überlappen, was sich zwar anzeigen (auch mit gerundeten Boxen, die über mehrere Zeilen hinwegreichen), aber dann nur schwierig bearbeiten lässt. Deshalb habe ich für diese Aufgabe ein simples Static als Basis verwendet, das neben den üblichen Zeit- und Tagesleistungen Termine (auch halbüberlappend o.ä.) grafisch darstellt, es erlaubt, sie per Doppelklick oder Enter zu bearbeiten, durch einfaches Ziehen zu verlängern, zu verkürzen, zu verschieben und auf andere Tage zu legen - und vieles, vieles mehr. Bis auf ein kosmetisches Problem beim Repainting (der Kalender lässt sich per Mausrad scrollen, aber z.B. auch mit Strg-Mausrad stufenlos skalieren, so dass man im Extremfall nur eine Stunde oder den ganzen Tag sieht) ist das eine äußerst feine Sache geworden, die sogar recht schnell ist. Leider müssen immer Hinter- und Vordergrund neu gezeichnet werden (sonst ginge das mit der Skalierung nicht), was sich auch bei intensiver Verwendung von GraPathClip() nicht völlig reduzieren lässt, zumal diese Funktion nicht ganz so arbeitet, wie man erwarten würde. Deshalb flackert's ein bisschen. War allerdings auch nicht wenig Arbeit. Aber es gab eben kein Control, das genau das getan hat, was ich wollte.
Herzlich,
Tom
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von satmax »

brandelh hat geschrieben: Wenn der Platz nicht reicht, könnte man das durch "..." oder einfach weil nicht alles sichtbar ist erkennen und per KLICK auf die Zelle ein Fenster mit allen Daten öffnen.
;-)
So ähnlich hätte ich das vor. Erweitert mit Tooltips und eben einen Dialog.
Gruß
Markus
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von satmax »

Tom hat geschrieben:Browses sind nicht die einzigen Controls, die Ownerdrawing erlauben. Tatsächlich lassen sich Termine optisch in ihnen nur schwer so darstellen, dass die Zeit (Dauer) reflektiert wird. Es geht zwar, aber mit Daten, die von einer Zelle zur anderen überlappen, was sich zwar anzeigen (auch mit gerundeten Boxen, die über mehrere Zeilen hinwegreichen), aber dann nur schwierig bearbeiten lässt. .
Darum hatte ich die Idee mit dem ActivX Control, wenns was kostet, ok, aber funktionieren sollte es dann halt schon. Prinzipiell hat es am Anfang ganz gut ausgesehen, aber wie immer steckt der Teufel im Detail.

Auch mit dem Browser sieht es auf den ersten Blick ganz gut aus, aber wie Du eben schreibts, perfekt ist das auch nicht.
Tom hat geschrieben: Deshalb habe ich für diese Aufgabe ein simples Static als Basis verwendet, das neben den üblichen Zeit- und Tagesleistungen Termine (auch halbüberlappend o.ä.) grafisch darstellt, es erlaubt, sie per Doppelklick oder Enter zu bearbeiten, durch einfaches Ziehen zu verlängern, zu verkürzen, zu verschieben und auf andere Tage zu legen - und vieles, vieles mehr. Bis auf ein kosmetisches Problem beim Repainting (der Kalender lässt sich per Mausrad scrollen, aber z.B. auch mit Strg-Mausrad stufenlos skalieren, so dass man im Extremfall nur eine Stunde oder den ganzen Tag sieht) ist das eine äußerst feine Sache geworden, die sogar recht schnell ist. Leider müssen immer Hinter- und Vordergrund neu gezeichnet werden (sonst ginge das mit der Skalierung nicht), was sich auch bei intensiver Verwendung von GraPathClip() nicht völlig reduzieren lässt, zumal diese Funktion nicht ganz so arbeitet, wie man erwarten würde. Deshalb flackert's ein bisschen. War allerdings auch nicht wenig Arbeit. Aber es gab eben kein Control, das genau das getan hat, was ich wollte.
Das liest sich nahezu perfekt, wie Jan schon weiter oben geschrieben hat, eigentlich suchen viele nach so etwas... Wäre eventuell eine Marktlücke... :)

Hast Du alles mit mehreren XbpStatic() aufgebaut?
Gruß
Markus
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von satmax »

Beispielcode des ActiveX Controls:

Code: Alles auswählen

Columns.Add("Ressourcen")
in Xbase++ ok

Code: Alles auswählen

oDlg:AXCScheduler:Columns:CallMethod("Add","Ressourcen" )
Beispielcode des ActiveX Controls:

Code: Alles auswählen

Columns("Ressourcen").Width = 120
Wie geht das in Xbase++? Habe da schon einiges erfolglos versucht:

Code: Alles auswählen

oDlg:AXCScheduler:SetProperty("Ressourcen.Width",120 )
oDlg:AXCScheduler:SetProperty("Ressourcen:Width",120 )
oDlg:AXCScheduler:Ressourcen:SetProperty("Width",120 )
Passt aber leider nicht.
Gruß
Markus
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von Tom »

Probier mal das:

Code: Alles auswählen

oDlg:AXCScheduler:SetProperty("Ressourcen","Width",120 )
Möglich auch, dass die Unterkategorien einer Property über einen numerischen Index anzuwählen sind, also:

Code: Alles auswählen

oDlg:AXCScheduler:SetProperty("Ressourcen",n,120 ) // z.B. n = 1
Dann müsstest Du (durch Abfrage) erst herausbekommen, welche Unterkategorie welchen Index hat.
Herzlich,
Tom
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von Wolfgang Ciriack »

Ich würde mal probieren:

Code: Alles auswählen

oDlg:AXCScheduler:Ressourcen:Columns("Ressourcen"):Width:=120
oder

Code: Alles auswählen

oDlg:AXCScheduler:Ressourcen:Columns("Ressourcen"):SetProperty("Width",120 )
da Columns ja ein eigenes Objekt ist.
Viele Grüße
Wolfgang
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von satmax »

Bisher habe ich versucht:

Code: Alles auswählen

// oDlg:AXCScheduler:SetProperty("Ressourcen","Width",120 )
// oDlg:AXCScheduler:Ressourcen:SetProperty("Width",120 )
// oDlg:AXCScheduler:Ressourcen:Columns("Ressourcen"):Width:=120
// oDlg:AXCScheduler:Ressourcen:Columns("Ressourcen"):SetProperty("Width",120 )
// oDlg:AXCScheduler:Columns("Ressourcen"):SetProperty("Width",120 )
// oDlg:AXCScheduler:Columns:Ressourcen:SetProperty("Width",120 )
// oDlg:AXCScheduler:Columns("Ressourcen"):SetProperty("Width",120 )
// oDlg:AXCScheduler:SetProperty("Ressourcen",1,120 )
// oDlg:AXCScheduler:SetProperty("Columns","Width",120 )
// oDlg:AXCScheduler:Columns:SetProperty("Ressourcen","Width",120 )
// oDlg:AXCScheduler:Columns:SetProperty("Width",120 )
//  oDlg:AXCScheduler:Columns:Ressourcen:SetProperty("Width",120 )
//  oDlg:AXCScheduler:Columns:SetProperty( "Ressourcen","Width", 120 ) 
//  oDlg:AXCScheduler:Columns:setProperty( "Ressourcen", 120, "Width" )  
// oDlg:AXCScheduler:SetProperty( "Columns", "Add", "Ressourcen")

 // oDlg:AXCScheduler:Columns("Ressourcen"):SetProperty("Width",20 ) 
Einzig die letzte Zeile wird ohne runtime error ausgeführt, ändert aber die Spaltenbreite nicht. Ich habe jetzt mal den Alaska Support bemüht.
Gruß
Markus
Benutzeravatar
satmax
1000 working lines a day
1000 working lines a day
Beiträge: 831
Registriert: Do, 02. Dez 2010 19:34
Wohnort: Biberbach in Österreich
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal
Kontaktdaten:

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von satmax »

Und es geht doch....

Funktioniert

Code: Alles auswählen

oDlg:AXCScheduler:Columns:CallMethod("Add","Ressourcen" )

oDlg:AXCScheduler:Columns("Ressourcen"):SetProperty("Width",20 )  // von Wolfgang
funktioniert auch, einfacher zu lesen:

Code: Alles auswählen

oColRes:=oDlg:AXCScheduler:Columns:CallMethod("Add","Ressourcen" )

oColRes:Width = 100
Gruß
Markus
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von Wolfgang Ciriack »

Vielleicht muss man vor dem Add der Columns die Width ser einzelnen setzen ?
Oder danach, dann muss man vielleicht den ganzen Scheduler refreshen ?
Viele Grüße
Wolfgang
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von brandelh »

satmax hat geschrieben:

Code: Alles auswählen

oColRes:Width = 100
du solltest dir angewöhnen die Zuweisung mit := zu schreiben, ist später einfacher bei der Fehlersuche ;-)
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Studio Controls for COM via ActivX einbinden?

Beitrag von AUGE_OHR »

satmax hat geschrieben:Und es geht doch...
wenn man raus bekommen hat wie man auf den nächsten Level in dem Spiel kommt ;)
satmax hat geschrieben:funktioniert auch, einfacher zu lesen:
wenn du mit activeX arbeitest ist es öfter besser ein eigens Object anzulegen und Methoden / Property auf dieser Ebene zu bearbeiten.

Code: Alles auswählen

oScheduler := oDlg:AXCScheduler
oColumns   := oScheduler:Columns
oColRes    := oColumns:CallMethod("Add","Ressourcen" )
oColRes:Width := 100
gruss by OHR
Jimmy
Antworten