Ribbonbar
Moderator: Moderatoren
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Ribbonbar
hi,
mit Codejock kann man ja nun Ribbonbars unter Xbase++ erstellen.
Hierbei sollte man sich allerdings auch an einige "Spielregeln" halten was nach dem lesen des Artikel
http://msdn.microsoft.com/de-de/library ... n-us).aspx
logisch erscheint.
mit Codejock kann man ja nun Ribbonbars unter Xbase++ erstellen.
Hierbei sollte man sich allerdings auch an einige "Spielregeln" halten was nach dem lesen des Artikel
http://msdn.microsoft.com/de-de/library ... n-us).aspx
logisch erscheint.
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Ribbonbar
hi,
ich habe ja im vorherigen Thread den Link zum "gewünschten" Design gezeigt.
Nun frage ich mich, wenn man RibbonTabs verwendet, was man da rein packt. Werden in solchen RibbonTabs :
1.) Menu und Submenu Punkte
2.) "Werkzeuge"
untergebracht ?
die ersten 3 RibbonTabs, welche leer sind, wären für ein Menu/SubMenu
die andern RibbonTabs wären die "Werkzeuge"
wie verwendet ihr die RibbonTabs ?
ich habe ja im vorherigen Thread den Link zum "gewünschten" Design gezeigt.
Nun frage ich mich, wenn man RibbonTabs verwendet, was man da rein packt. Werden in solchen RibbonTabs :
1.) Menu und Submenu Punkte
2.) "Werkzeuge"
untergebracht ?
die ersten 3 RibbonTabs, welche leer sind, wären für ein Menu/SubMenu
die andern RibbonTabs wären die "Werkzeuge"
wie verwendet ihr die RibbonTabs ?
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Ribbonbar
hi,
ich habe da jetzt doch was "negatives" an den Ribbon(Tabs) bemerkt : Man kann fast gar nicht den Dialog "moven" !?
Minimize,Maximize und Normalize sind ok und "moven" muss man ja nicht unbedingt ... aber es nervt.
Hat jemand das selbe beobachtet ?
ich habe da jetzt doch was "negatives" an den Ribbon(Tabs) bemerkt : Man kann fast gar nicht den Dialog "moven" !?
Minimize,Maximize und Normalize sind ok und "moven" muss man ja nicht unbedingt ... aber es nervt.
Hat jemand das selbe beobachtet ?
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Ribbonbar
so wo ich nun auch mit Office auf dem "optischen" Stand angekommen bin, habe ich mir die Ribbenbars mal angesehen.AUGE_OHR hat geschrieben:1.) Menu und Submenu Punkte
2.) "Werkzeuge"
untergebracht ?
die ersten 3 RibbonTabs, welche leer sind, wären für ein Menu/SubMenu
die andern RibbonTabs wären die "Werkzeuge"
Die RibbenTabs enthalten lediglich "Werkzeuge" die sich alle auf die MDI Clients beziehen.
RibbenTabs sind also nicht mit TabPages zu verwechseln welche "unterhalb" der RibbenBar erst kämen.
Code: Alles auswählen
//
// Office 2007 Style
//
::oCBar:EnableOffice2007Frame(.T.)
* ::oRibbonBar:CommandBars:VisualTheme := xtpThemeOffice2007
::oRibbonBar:CommandBars:VisualTheme := xtpThemeRibbon
::oRibbonBar:EnableFrameTheme() // Office200
Code: Alles auswählen
//
// using iTunes must set to .F. else Titlebutton are XP
//
::oCBar:EnableOffice2007Frame(.F.)
//
// NOT if iTunes
//
* ::oRibbonBar:EnableFrameTheme()
am Code sieht man auch das ich kein VisualTheme gewählt habe ... würde auch nicht nützen wenn ich die Themes nicht "anschalte" per EnableFrameTheme()
am 2nd Beispiel sieht aber nun, das die Überschriften der RibbonTabs dort sind wo sich "normalerweise" das XbpMenu() befindet ... es fehlt ganz einfach.
Die RibbenTabs sind somit so was die XbpToolbar() nur das die "grösser" sind und man mehr Platz hat.
Aus einer XbpToolbar würde man aber keine Programmteile aufrufen, naja Drucker etc ausgenommen, aber alles das sind ja "Werkzeuge" ?!
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Ribbonbar
moin,
da es auch Bestandteil der Codejock Commandbars ist (Ribbonbar ist eine Teilmenge) hier mal ein neues "Problem" mit dem Preview
da es auch Bestandteil der Codejock Commandbars ist (Ribbonbar ist eine Teilmenge) hier mal ein neues "Problem" mit dem Preview
- Dateianhänge
-
- CJ_PreView.JPG (9.11 KiB) 9796 mal betrachtet
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Ribbonbar
moin,
da es auch Bestandteil der Codejock Commandbars ist (Ribbonbar ist eine Teilmenge) hier mal ein neues "Problem" mit dem Preview es wird automatisch eine weiter Ribbonbar erzeugt.
Das "Problem" ist nun das, wenn man auf "Close Preview" klickt nichts passiert ...
Lösung :
p.s. PrintPreview Control hat eine eigene CLSID, ohne :License, zusätzlich zu Commandbars unter HKEY_CLASSES_ROOT\Codejock.PrintPreview.13.0.0\CLSID
da es auch Bestandteil der Codejock Commandbars ist (Ribbonbar ist eine Teilmenge) hier mal ein neues "Problem" mit dem Preview es wird automatisch eine weiter Ribbonbar erzeugt.
Das "Problem" ist nun das, wenn man auf "Close Preview" klickt nichts passiert ...
Lösung :
es wird ein Event erzeugt, also muss man die Events noch einarbeiten.Events
CloseClick Occurs when the close button of the print preview dialog has been clicked.
PrintClick Occurs when the print button of the print preview dialog has been clicked.
p.s. PrintPreview Control hat eine eigene CLSID, ohne :License, zusätzlich zu Commandbars unter HKEY_CLASSES_ROOT\Codejock.PrintPreview.13.0.0\CLSID
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Ribbonbar
hi,
ich habe mich immer bewundert warum ich, mit Ribbonbar versehene Dialoge kaum verschieben konnte ...
nun habe ich mal mit :UseGUIthread und :UserEvents rumspielt und siehe da "das" bringt es :und für Expres++
probiert es mal aus !
ich habe mich immer bewundert warum ich, mit Ribbonbar versehene Dialoge kaum verschieben konnte ...
nun habe ich mal mit :UseGUIthread und :UserEvents rumspielt und siehe da "das" bringt es :
Code: Alles auswählen
oCommandBar := XbpActiveXControl():new( ::drawingArea ...)
oCommandBar:CLSID := "Codejock.CommandBars"+HX_VERSION()
oCommandBar:License := "CommandBars Control Copyright ...."
oCommandBar:create()
oCommandBar:UserEvents := .F.
Code: Alles auswählen
CJAddRibbonBar oRibbonBar NAME 'RibbonBar1' PARENT oCommandBar
oRibbonBar:enableDocking(xtpFlagStretched)
//
// hier einfügen und man kann die Dialoge wieder "bewegen"
//
oCommandBar:UserEvents := .F.
oCommandBarPopup := oRibbonBar:AddSystemButton()
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Ribbonbar
hi,
Wenn man ich Word 2007/2010 oder WriteWin7 ansieht hat man ja die Ribbonbars mit RibbonTabs. Innerhalb einer RibbonTab sind dann die einzelnen Items. nun habe ich eine weile gebraucht um es so hin zu bekommen ... weil ich nicht wusste "wie"
hier nun die Lösungdamit bekommen man nun, bei Control:BeginGroup := True, nicht eine senkrechte Unterteilung des Tab sondern die Items werden "zusammengefasst" bis zu nächsten Control:BeginGroup := True
Wenn man ich Word 2007/2010 oder WriteWin7 ansieht hat man ja die Ribbonbars mit RibbonTabs. Innerhalb einer RibbonTab sind dann die einzelnen Items. nun habe ich eine weile gebraucht um es so hin zu bekommen ... weil ich nicht wusste "wie"
hier nun die Lösung
Code: Alles auswählen
METHOD VORTRAG:TabGFont(oTab,nNo)
LOCAL GalleryFont
LOCAL GroupFont
LOCAL Control
LOCAL Controlfile
LOCAL ComboFont
LOCAL ComboSize
LOCAL aFonts, aSizes, aFontNames
LOCAL ItemsFont
LOCAL ItemsSize
LOCAL ComboPopup
LOCAL GallerySize
//
// Font
//
GroupFont := oTab:Groups:AddGroup("Schriftart",ID_FONT_FACE)
//
// WICHTIG : das "Grouping" einschalten
//
GroupFont:ControlsGrouping := .T.
ComboFont := GroupFont:Add(xtpControlComboBox, 0, "", -1, False)
ComboFont:DropDownListStyle := True
ComboFont:Width := 70
ComboFont:Text := "Arial"
ComboFont:AutoComplete := True
ComboPopup := ::oRibbonBar:CommandBars:Add("Combo Popup", xtpBarComboBoxGaGalleryPopup)
GalleryFont := ComboPopup:Controls:Add(xtpControlGallery, ID_FONT_FACE, "")
GalleryFont:Width := 70
GalleryFont:Height := 500
GalleryFont:Resizable := xtpAllowResizeWidth // .Or. xtpAllowResizeHeight
ItemsFont := ::oRibbonBar:CommandBars:CreateGalleryItems(ID_FONT_FACE)
ItemsFont:ItemWidth := 0
ItemsFont:ItemHeight := 26
//
// Initialisieren der Font-Liste
//
aFonts := XbpFont():New(::LockPS()):List()
::UnlockPS()
aFontNames := {}
AEval( aFonts, { |o| IF(AScan(aFontNames,o:FamilyName)==0, ;
AAdd(aFontNames,o:FamilyName), NIL) } )
ASort( aFontNames )
AEval( aFontNames, { |c,i| ItemsFont:AddItem(i,c) } )
GalleryFont:Items := ItemsFont
ComboFont:CommandBar := ComboPopup
ComboSize := GroupFont:Add(xtpControlComboBox, 0, "", -1, False)
ComboSize:DropDownListStyle := True
ComboSize:Width := 40
ComboSize:Text := "10"
ComboPopup := ::oRibbonBar:CommandBars:Add("Combo Popup", xtpBarComboBoxGaGalleryPopup)
GallerySize := ComboPopup:Controls:Add(xtpControlGallery, ID_FONT_SIZE, "")
GallerySize:Width := 40
GallerySize:Height := 16 * 17
GallerySize:Resizable := xtpAllowResizeHeight
ItemsSize := ::oRibbonBar:CommandBars:CreateGalleryItems(ID_FONT_SIZE)
ItemsSize:ItemWidth := 0
ItemsSize:ItemHeight := 26
aSizes := { "6", "8", "10", "11", "12", "14", "16", "18", "20", ;
"22", "24", "32", "36", "48", "52", "72" }
AEval( aSizes , { |c,i| ItemsSize:AddItem(i,c) } )
GallerySize:Items := ItemsSize
ComboSize:CommandBar := ComboPopup
ComboSize:BeginGroup := True
Control := GroupFont:Add(xtpControlButton, ID_FONT_GROW , "" )
GroupFont:Add(xtpControlButton, ID_FONT_SHRINK , "" )
Control:BeginGroup := True
Control := GroupFont:Add(xtpControlButton, ID_CHAR_BOLD , "" )
Control:BeginGroup := True
GroupFont:Add(xtpControlButton, ID_CHAR_ITALIC , "" )
GroupFont:Add(xtpControlButton, ID_CHAR_UNDERLINE , "" )
GroupFont:Add(xtpControlButton, ID_CHAR_STRIKETHROUGH, "")
GroupFont:Add(xtpControlButton, ID_TEXT_SUBSCRIPT , "")
GroupFont:Add(xtpControlButton, ID_TEXT_SUPERSCRIPT , "")
Control := GroupFont:Add(xtpControlButton, ID_TEXT_COLOR , "" )
Control:BeginGroup := True
RETURN self
gruss by OHR
Jimmy
Jimmy
-
- UDF-Programmierer
- Beiträge: 94
- Registriert: Do, 22. Dez 2005 16:37
Re: Ribbonbar
Hey -
kann mir einer nen Tip geben, warum ich keinene xtpConbtolEdit
an eine Ribbonbar anhängen kann?
Es sieht fein aus - aber ich kann nichts eingeben..
Habe das Sample von Roger (RIBBON.PRG) so abgeändert:
Wär dankbar für nen Tip
Grüße
Michl
kann mir einer nen Tip geben, warum ich keinene xtpConbtolEdit
an eine Ribbonbar anhängen kann?
Es sieht fein aus - aber ich kann nichts eingeben..
Habe das Sample von Roger (RIBBON.PRG) so abgeändert:
Code: Alles auswählen
STATIC FUNCTION _StartRibbon(o)
Local oRibbonBar, oControl, oPopUp, oTab1, oTab2, oControlFile
oRibbonBar := o:AddRibbonBar("Ribbonbar1")
oRibbonBar:enableDocking(xtpFlagStretched)
oControlFile := oRibbonBar:AddSystemButton()
oControlFile:IconId := 0
oControlFile:Caption := "&File"
oControlFile:CommandBar:Controls:Add( xtpControlButton, 10, "&New" )
oControlFile:CommandBar:Controls:Add( xtpControlButton, 11, "&Open..." )
oControlFile:CommandBar:Controls:Add( xtpControlButton, 12, "&Save" )
oControlFile:CommandBar:Controls:Add( xtpControlButton, 13, "Save &As..." )
oControl := oRibbonBar:Controls:Add(xtpControlPopup, -1, "&Popup ONE", 1)
oPopUp := oControl:CommandBar:Controls
oPopUp:Add(xtpControlButton, 1, "&Nieuw")
oPopUp:Add(xtpControlButton, 2, "&Edit")
oControl := oPopUP:Add(xtpControlButton, 3, "&Save")
oControl:BeginGroup := .T.
oTab1 := oRibbonBar:InsertTab(0, "&Write")
oTab2 := oRibbonBar:InsertTab(0, "&Read")
oGroup := oTab1:Groups:AddGroup("Group",50)
oSearchGroup := oGroup:Add(xtpControlEdit, 51, "Search:")
oSearchGroup:EditHint := "Enter here..."
oSearchGroup:Width := 100
oSearchGroup:TextLimit := 10
return nil
Grüße
Michl
-
- UDF-Programmierer
- Beiträge: 94
- Registriert: Do, 22. Dez 2005 16:37
Re: Ribbonbar
hi
bringt auch nix..
Wo steht den so'n zeugs in der Doku??
Hast Du das schon mal verwendet?
LG
Michl
bringt auch nix..
Wo steht den so'n zeugs in der Doku??
Hast Du das schon mal verwendet?
LG
Michl
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Ribbonbar
Huhu, Michl.
Es entsteht ein "CommandBarEdit"-Objekt. Einfach in der CJ-Hilfe danach suchen, dann in der Übersicht auf "CommandBarEdit Members" klicken. Dort siehst Du alle Methoden und Properties. Ich erinnere mich allerdings dunkel, dass Roger auch irgendwann schrub, dass er das nicht hinbekommen hat. Ich kann mich aber irren.
Es entsteht ein "CommandBarEdit"-Objekt. Einfach in der CJ-Hilfe danach suchen, dann in der Übersicht auf "CommandBarEdit Members" klicken. Dort siehst Du alle Methoden und Properties. Ich erinnere mich allerdings dunkel, dass Roger auch irgendwann schrub, dass er das nicht hinbekommen hat. Ich kann mich aber irren.
Herzlich,
Tom
Tom
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2950
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Ribbonbar
Hallo Michl,
ich hab bei mir mal auf die Schnelle eins (ID 10000) eingesetzt und ich kann etwas eingeben:
ich hab bei mir mal auf die Schnelle eins (ID 10000) eingesetzt und ich kann etwas eingeben:
Code: Alles auswählen
CJAddGroup oRibbonGroup PARENT oTab1 ID 100 CAPTION 'Kommunikation'
CJAddControl oControl TYPE xtpControlButton PARENT oRibbonGroup ;
ID MP_ALLG_TERMINE CAPTION '&Termine' ;
WIDTH nItemBreitePrg STYLE xtpButtonIconAndCaptionBelow ;
ICON MY_ICON_JWE
CJAddControl oControl TYPE xtpControlEdit PARENT oRibbonGroup ;
ID 10000 CAPTION 'Suche:' ;
WIDTH nItemBreitePrg
CJAddControl oControl TYPE xtpControlButton PARENT oRibbonGroup ;
ID MP_ALLG_KONTAKTE CAPTION '&Kontakte' ;
WIDTH nItemBreitePrg STYLE xtpButtonIconAndCaptionBelow ;
ICON MY_ICON_KONTAKTE
Viele Grüße
Wolfgang
Wolfgang
-
- UDF-Programmierer
- Beiträge: 94
- Registriert: Do, 22. Dez 2005 16:37
Re: Ribbonbar
Danke Wolfgang
könntest Du mal schauen warum das im Sample RIBBON.PRG nicht geht?
Ich hatte die Funktion umgebaut (siehe Code)
Danke
LG
MIchl
könntest Du mal schauen warum das im Sample RIBBON.PRG nicht geht?
Ich hatte die Funktion umgebaut (siehe Code)
Danke
LG
MIchl
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2950
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Ribbonbar
Hi Michl,
sende mir mal eine Mail, dann sende ich dir mal ein Testprogramm, das ich mal für Roger mit eXPress geschrieben habe. Da sind eine ganze Menge CodeJock-Sachen (Ribbonbar, Skinning, Taskpanel, Markup etc.) drin und ich habe eben auch dein Edit eingebaut und wie du den eingegebenen Text wieder abfragst.
Durch Skinning und einige Grafiken und Icons ist das ganze etwas größer (ca. 5MB), dadurch kann ich dir das nur per Mail senden.
sende mir mal eine Mail, dann sende ich dir mal ein Testprogramm, das ich mal für Roger mit eXPress geschrieben habe. Da sind eine ganze Menge CodeJock-Sachen (Ribbonbar, Skinning, Taskpanel, Markup etc.) drin und ich habe eben auch dein Edit eingebaut und wie du den eingegebenen Text wieder abfragst.
Durch Skinning und einige Grafiken und Icons ist das ganze etwas größer (ca. 5MB), dadurch kann ich dir das nur per Mail senden.
Viele Grüße
Wolfgang
Wolfgang
Re: Ribbonbar
ich möchte mich mal in den Thread hier einklinken, auch wenn es leicht Off-Topic ist
wenn ich beispielsweise die Ribbonbar von MS verwenden möchte, bräuchte ich die kostenfreie Lizenz von MS, sehe ich das richtig? doch so ohne weiteres bekomme ich sie wegen .Net bzw dem neuen WFP unter Xbase++ nicht zum Laufen
daher wird hier CodeJock verwendet, benötigt man hier noch etwas dazu? es geht darum, einen Kostenpunkt für dererlei Möglichkeiten zu evaluieren
wenn ich beispielsweise die Ribbonbar von MS verwenden möchte, bräuchte ich die kostenfreie Lizenz von MS, sehe ich das richtig? doch so ohne weiteres bekomme ich sie wegen .Net bzw dem neuen WFP unter Xbase++ nicht zum Laufen
daher wird hier CodeJock verwendet, benötigt man hier noch etwas dazu? es geht darum, einen Kostenpunkt für dererlei Möglichkeiten zu evaluieren
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Ribbonbar
Hallo, PSP.
Wenn Du Suite Pro 2011 von Codejock kaufst, benötigst Du nichts weiter. Die von CJ so genannten "Command Bars" gibt es aber auch stand-alone für $ 149:
http://www.codejock.com/products/comman ... atform=com
Wenn die Runtimes ausgeliefert werden und alles mit der Lizensierung stimmt (ist ein bisschen fummelig), sind auf den Zielrechnern alle Voraussetzungen erfüllt. Um die Rechte wird wohl hinter den Kulissen noch gestritten, aber es scheint so zu sein, dass man die Ribbonbar-Lookalikes derzeit ausliefern darf:
http://en.wikipedia.org/wiki/Ribbon_%28computing%29
Wenn Du Suite Pro 2011 von Codejock kaufst, benötigst Du nichts weiter. Die von CJ so genannten "Command Bars" gibt es aber auch stand-alone für $ 149:
http://www.codejock.com/products/comman ... atform=com
Wenn die Runtimes ausgeliefert werden und alles mit der Lizensierung stimmt (ist ein bisschen fummelig), sind auf den Zielrechnern alle Voraussetzungen erfüllt. Um die Rechte wird wohl hinter den Kulissen noch gestritten, aber es scheint so zu sein, dass man die Ribbonbar-Lookalikes derzeit ausliefern darf:
http://en.wikipedia.org/wiki/Ribbon_%28computing%29
Herzlich,
Tom
Tom
Re: Ribbonbar
danke
mich würde ja die ganze Suite interessieren
die Demo habe ich auch schon mal runter geladen und installiert, aber nutzbar ist die von Alaska aus leider nicht wirklich, aber das, was möglich wäre, sieht schon mal nicht verkehrt aus - gerade das SkinFramework
mich würde ja die ganze Suite interessieren
die Demo habe ich auch schon mal runter geladen und installiert, aber nutzbar ist die von Alaska aus leider nicht wirklich, aber das, was möglich wäre, sieht schon mal nicht verkehrt aus - gerade das SkinFramework
-
- UDF-Programmierer
- Beiträge: 94
- Registriert: Do, 22. Dez 2005 16:37
Re: Ribbonbar
Hi
vielleicht intteressiert es Euch - ich habe die Ribbonbar für ein Projekt einsetzen
wollen, und das ganze nach längeren Versuchen in die Tonne getreten..
Entweder liegt es an Codejock - oder an Alaska, aber die Ribbonbar ist
im "Echtbetrieb" nicht einsetzbar - weil einige Showstopper drinnen sind..
Z.B. Hängt sich die Maus auf und ist nur noch in einem Dialog zu bewegen, d.h.
man kommt gar nicht mehr ins Menü.. das legt sich erst dann wieder, wenn man
die Strg Taste drückt..
und noch so ein paar...
Hat mich einige Wochen gekostet den Müll zu implementieren, mit dem Ergebnis
dass ich es dann wegwerfen musste..
Vielleicht erspart das dem einen oder anderen ein wenig Lehrzeit - wers nicht glaubt
macht am Besten seine eigenen Erfahrungen damit..
LG
Michl
vielleicht intteressiert es Euch - ich habe die Ribbonbar für ein Projekt einsetzen
wollen, und das ganze nach längeren Versuchen in die Tonne getreten..
Entweder liegt es an Codejock - oder an Alaska, aber die Ribbonbar ist
im "Echtbetrieb" nicht einsetzbar - weil einige Showstopper drinnen sind..
Z.B. Hängt sich die Maus auf und ist nur noch in einem Dialog zu bewegen, d.h.
man kommt gar nicht mehr ins Menü.. das legt sich erst dann wieder, wenn man
die Strg Taste drückt..
und noch so ein paar...
Hat mich einige Wochen gekostet den Müll zu implementieren, mit dem Ergebnis
dass ich es dann wegwerfen musste..
Vielleicht erspart das dem einen oder anderen ein wenig Lehrzeit - wers nicht glaubt
macht am Besten seine eigenen Erfahrungen damit..
LG
Michl
Re: Ribbonbar
ich bin mit der Demo schon ein Stückchen weiter, das Skin Framework arbeitet nun mit dem bekannten Alaska-Problem bei der CheckBox und RadioButton
doch habe ich leichte Probleme, bestimmte "Objekte" weiter zu verwenden, wenn ich die RibbonBar benutzen möchte
xtpControlButton wäre ein Beispiel dazu, wie es auch in http://www.xbaseforum.de/viewtopic.php? ... bon#p51356 verwendet wurde
ich gehe davon aus, dass es nicht nur ein Flag ist wie xtpFlagStretched, was ich noch im Internet habe finden können, welcher Wert dahinter versteckt ist
doch habe ich leichte Probleme, bestimmte "Objekte" weiter zu verwenden, wenn ich die RibbonBar benutzen möchte
xtpControlButton wäre ein Beispiel dazu, wie es auch in http://www.xbaseforum.de/viewtopic.php? ... bon#p51356 verwendet wurde
ich gehe davon aus, dass es nicht nur ein Flag ist wie xtpFlagStretched, was ich noch im Internet habe finden können, welcher Wert dahinter versteckt ist
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Ribbonbar
Das SkinFramework arbeitet tatsächlich, von den Feinheiten mit den Hintergrundfarben einiger XbParts abgesehen, einwandfrei (weshalb unsere App Skins nur noch bei XP und darunter zulässt), und das tun auch die meisten anderen Komponenten, aber ich bin da an einem ähnlichen Punkt angekommen wie Michael. Ich habe mich eine Weile mit den DockingPanes herumgeschlagen und sie schließlich in die Tonne geklopft, weil die Z-Order der Fenster (hauptsächlich im "abgelösten" Zustand, also als freie Panes) vor allem mit Thin Clients in Terminal-Server-Umgebungen zu Horrorszenarien führte. Ich habe das Popup-Control verwendet und schließlich durch ein eigenes ersetzt, das schlicht aus einem rahmenlosen, halbtransparenten Fenster besteht, das ich über eine eigene Routine "smooth" ein- und wieder ausblende; es nutzt Ownerdrawing für Markup-ähnliche Schriftformatierung (die Klasse werde ich demnächst in die Wissensbasis hochladen). Ähnliches gilt für die Pushbuttons, die ich nunmehr auch ersetze, weil ich mit Ownerdrawing und dem XbpFormattedLabel aus dem Pack 2 etwas gebaut habe, das dem letztlich entspricht, außerdem enthält Rogers eXpress++ mit den "DCPushbuttonsXP" eine Klasse, die für eXpress++-Nutzer ganz nativ Office-ähnliche Buttons erlaubt, ohne großen Aufwand. Und auch mit den CommandBars habe ich eine Weile herumoperiert, ohne eigentlich eine wirkliche Verwendung dafür zu haben, denn Ribbons haben nur dann Sinn, wenn es verschiedene Bearbeitungsmodi für ein Fenster gibt, zu denen Funktionen zu gruppieren wären, und das ist in klassischen Datenbankanwendungen nur selten der Fall - derlei benötigt man bei der Bearbeitung von Dokumenten im weitesten Sinn, oder bei MDI-Anwendungen, die alle Fenster in einem AppWindow sammeln (was wir nicht tun). Sie sehen hübsch aus, was für alle CJ-Controls gilt, und sie sind vergleichsweise leicht zu migrieren, aber irgendwo hakt's dann wieder, was sehr ärgerlich ist.
Was ich sagen will: Nach der anfänglichen Euphorie bin ich kurz davor, CJ komplett abzuhaken. Unterm Strich bleiben aus der wirklich umfangreichen Sammlung nur wenige Controls übrig, die man wirklich benötigt, und die komplexeren - DockingPanes, CommandBars, das CalendarControl - zeigen sich im Echtbetrieb hakelig, was natürlich auch an der AX-Schnittstelle von Xbase++ liegen kann. Aber man kann das meiste davon mit Ownerdrawing selbst bauen, was im Ergebnis erstens sehr viel schneller ist, sich problemlos in die Multithreading- und Eventhandling-Struktur der Anwendung einfügt, und auch deutlich leichter zu warten ist.
Was ich sagen will: Nach der anfänglichen Euphorie bin ich kurz davor, CJ komplett abzuhaken. Unterm Strich bleiben aus der wirklich umfangreichen Sammlung nur wenige Controls übrig, die man wirklich benötigt, und die komplexeren - DockingPanes, CommandBars, das CalendarControl - zeigen sich im Echtbetrieb hakelig, was natürlich auch an der AX-Schnittstelle von Xbase++ liegen kann. Aber man kann das meiste davon mit Ownerdrawing selbst bauen, was im Ergebnis erstens sehr viel schneller ist, sich problemlos in die Multithreading- und Eventhandling-Struktur der Anwendung einfügt, und auch deutlich leichter zu warten ist.
Herzlich,
Tom
Tom
-
- UDF-Programmierer
- Beiträge: 94
- Registriert: Do, 22. Dez 2005 16:37
Re: Ribbonbar
Das kann ich nur unterschreiben...
Auch die Docking Panes ließen sich bei mir nicht so "docken" wie gewünscht - und
vor allem waren die Dinger nie 100% Thread-Safe, d.h. mann konnte sie einfach
zwischen Threads hin und her schieben..
Ich hab das Zeugs weggeworfen..
LG
M
Auch die Docking Panes ließen sich bei mir nicht so "docken" wie gewünscht - und
vor allem waren die Dinger nie 100% Thread-Safe, d.h. mann konnte sie einfach
zwischen Threads hin und her schieben..
Ich hab das Zeugs weggeworfen..
LG
M
Re: Ribbonbar
also sollte ich das ganze gleich in die Tonne klopfen bevor ich mich noch ärgere?
ein frischeres Design in der Software wäre natürlich immer nett und das Alaska-seitige VisualTheme reißt es nicht ganz raus
es gibt ja noch andere CommandoBars, die man ja nutzen könnte, die gehen dann wohl auch nicht so wie gewünscht?
ein frischeres Design in der Software wäre natürlich immer nett und das Alaska-seitige VisualTheme reißt es nicht ganz raus
es gibt ja noch andere CommandoBars, die man ja nutzen könnte, die gehen dann wohl auch nicht so wie gewünscht?
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Ribbonbar
Die Visual Themes von Alaska gibt es in dem Sinn nicht. Xbase++ nutzt die Vorgaben, die Windows vorgibt. Ribbonbars sind (noch) nicht Bestandteil des Betriebssystems, daher kann Xbase++ die so auch nicht einfach nutzen.
Wenn ich das richtig erinnere dann haben die original MS-Ribbonbars einen gravierenden Nachteil: Die Lizenz schreibt wohl vor, das immer die aktuelle Version genutzt werden darf. Bringe ich also von meiner Software ein Update raus, dann MUSS das immer die dann gültige MS-Ribbonbar-Version nutzen. Was für mich dann erneute Lizenzkosten an CJ bedeutet für die andere Version, und eventuell erneuten Programmieraufwand um die neu zu implementieren (falls da Änderungen anfallen sollten).
Von daher ist es sicher wesentlich besser, wie Tom das schreibt die selber zu schreiben. Dann amcht man das, was man selber braucht, und hat keinen Ärger mit irgendwelchen Lizenzgebern oder Patentinhabern.
Jan
Wenn ich das richtig erinnere dann haben die original MS-Ribbonbars einen gravierenden Nachteil: Die Lizenz schreibt wohl vor, das immer die aktuelle Version genutzt werden darf. Bringe ich also von meiner Software ein Update raus, dann MUSS das immer die dann gültige MS-Ribbonbar-Version nutzen. Was für mich dann erneute Lizenzkosten an CJ bedeutet für die andere Version, und eventuell erneuten Programmieraufwand um die neu zu implementieren (falls da Änderungen anfallen sollten).
Von daher ist es sicher wesentlich besser, wie Tom das schreibt die selber zu schreiben. Dann amcht man das, was man selber braucht, und hat keinen Ärger mit irgendwelchen Lizenzgebern oder Patentinhabern.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Ribbonbar
Das ist Unsinn. Die CJ-Commandbars sind keine MS-Ribbonbars. CJ malt selbst.Was für mich dann erneute Lizenzkosten an CJ bedeutet für die andere Version
Und obwohl ich inzwischen ziemlich fit mit Ownerdrawing bin, würde ich es mir nicht zutrauen, in angemessener Zeit ein Ribbonbar-Replacement selbst zu schreiben. Das ist schon ein ziemlich komplexes Control. Wenn man es also wirklich benötigt, sollte man sich tatsächlich die CJ-Komponente reinziehen, dafür sorgen, dass es sich um die aktuellste Fassung handelt (aber nicht wegen der Lizenzsachen, sondern um für weitgehende Fehlerfreiheit zu sorgen), und Alaska mit Anfragen bombardieren, die die Stabilität, Performance und Schnittstellenverlässlichkeit betreffen. Ich habe die CJ-Commandbars zuletzt in Version 13.4 ausprobiert; vielleicht funktionieren sie ja inzwischen besser.
Herzlich,
Tom
Tom