Toolbar : mehr Buttons als Platz ? [erledigt]
Moderator: Moderatoren
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Toolbar : mehr Buttons als Platz ? [erledigt]
bei o:maximize passen alle Buttons aber je nach Fenster Grösse sind die letzten Buttons von der Toolbar nicht mehr sichtbar ... was kann man dagegen tun ?
Zuletzt geändert von AUGE_OHR am Di, 27. Jan 2015 0:01, insgesamt 1-mal geändert.
gruss by OHR
Jimmy
Jimmy
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Toolbar : mehr Buttons als Platz ?
Am besten wäre da so etwas wie Roger in seinem Beispiel OUTLOOKBAR verwendet, oder einen Button am Ende der Toolbar, der als Menüpunkte alles dynamisch aufnimmt, was nicht mehr in die Toolbar passt.
Viele Grüße
Wolfgang
Wolfgang
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9374
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Toolbar : mehr Buttons als Platz ?
Ja, so ähnlich mache ich das auch. Wenn der Raum nicht reicht, wird ein zusätzlicher Button ("Mehr ...") angezeigt, der ein Ausklappmenü öffnet.
Herzlich,
Tom
Tom
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Toolbar : mehr Buttons als Platz ?
Ja so was hab ich in Rösrath bei Usertreffen 2009 vorgestellt aber ich meine XbpToolbar() mit der Button Leiste oben wie sie z.b von Firefox für die Lesezeichen Symbol-Leiste verwendet wird.Wolfgang Ciriack hat geschrieben:Am besten wäre da so etwas wie Roger in seinem Beispiel OUTLOOKBAR verwendet ...
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Toolbar : mehr Buttons als Platz ?
habt ihr schon mal versucht das Demo c:\ALASKA\XPPW32\Source\samples\activex\editor\EDITOR.EXE kleiner zu machen ?
ich hatte erwartet das die XbpToolbar() "abgeschnitten" würde ...
was man ganz gut sehen kann ist das XbpToolbar() noch einen (Static ?) Parent enthält der ein wenig grösser ist als die Toolbar selbst ...
das ist wohl der "Trick" für ein Chevron am Ende einer Rebar.
ich hatte erwartet das die XbpToolbar() "abgeschnitten" würde ...
was man ganz gut sehen kann ist das XbpToolbar() noch einen (Static ?) Parent enthält der ein wenig grösser ist als die Toolbar selbst ...
das ist wohl der "Trick" für ein Chevron am Ende einer Rebar.
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Toolbar : mehr Buttons als Platz ?
tja ... man sollte mal im Help File lesen :AUGE_OHR hat geschrieben:habt ihr schon mal versucht das Demo c:\ALASKA\XPPW32\Source\samples\activex\editor\EDITOR.EXE kleiner zu machen ?
ich hatte erwartet das die XbpToolbar() "abgeschnitten" würde ...
soweit so gut und wenn man das auf .F. stellt wird also "abgeschnitten" was ich ja für eine Rebar haben möchte.XbpToolBar()
:wrappable
-
Bestimmt, ob die Schaltflächen beim Vergrößern umgebrochen werden
Das funktioniert auch aber nun kommt das nächste Problem : woher soll ich "wissen" was abgeschnitten wurde ?
Ich habe nun diesen Code
Code: Alles auswählen
IF oXbPart[A_XbPart]:isDerivedFrom( "DXE_Toolbar") .OR. ;
oXbPart[A_XbPart]:isDerivedFrom( "XbpToolbar")
jMax := oXbPart[A_XbPart]:numItems()
FOR j := 1 TO jMax
oButton := oXbPart[A_XbPart]:getItem(j) // XbpToolBarButton()
IF oButton:isDerivedFrom( "XbpToolbarButton")
IF oButton:GetVisible() // aus axctrls.prg
//
// es ist IMMER .T.
//
ELSE
cCaption := oButton:Caption
cBlock1 := VAR2CHAR(oButton:activate)
cBlock2 := "{ '"+cCaption+"',"+cBlock1+"}"
::oMenu:AddItem(&cBlock2)
lAdd := .T.
ENDIF
ELSE
p.s. habe die Xbase++ Applikation extra "sichtbar" plaziert ... nicht das die durch VX überdeckt wurde
*** o:GetVisible() in c:\ALASKA\XPPW32\Source\SYS\axctrls.prg Zeile 4206
gruss by OHR
Jimmy
Jimmy
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Toolbar : mehr Buttons als Platz ?
Jimmy, ich denke, du musst die Koordinaten der einzelnen Elemente prüfen und schauen, ob diese innerhalb der Weite des Toolbars liegen. Visible sind tatsächlich alle, selbst wenn diese ausserhalb des Mutterfensters liegen. Das ist auch bei anderen Elementen so, die ausserhalb ihres Parents liegen.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Toolbar : mehr Buttons als Platz ?
hab doch ein XbpToolbar() Demo beigefügt wo man sieht das er sehr früh mit dem "abschneiden" beginnt.Herbert hat geschrieben:ich denke, du musst die Koordinaten der einzelnen Elemente prüfen und schauen, ob diese innerhalb der Weite des Toolbars liegen.
da ist noch so viel Platz für 2-3 Buttons ... und das variiert beim Fenster resizen.
das 2nd Beispiel sind nun 12 XbpPushbuttons die gleich gross sind und da funktioniert es mit der Berechnung und ich kann ein Chevron Menu anzeigen ( was noch ein anderes Problem ist ...)
bitte bei der Demo die "Band" mit dem Chevron als 1st "Band" lassen (kann man verschieben) da in der Version noch ein Fehler mit der Chevron Menu vorhanden ist.
hm ...Herbert hat geschrieben:Visible sind tatsächlich alle, selbst wenn diese ausserhalb des Mutterfensters liegen. Das ist auch bei anderen Elementen so, die ausserhalb ihres Parents liegen.
wenn ich eine Static, auf der DrawingArea, habe als Parent für ein XbPart der den gesamten Parent "überdeckt" ( gleiche Grösse ) ...
ist die Parent-Static dann noch o:visible oder nur oChild:visible ?
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Toolbar : mehr Buttons als Platz ?
ich meinte das aber nach dem 1st resize sortiert es sich dann.AUGE_OHR hat geschrieben:wo man sieht das er sehr früh mit dem "abschneiden" beginnt.
da ist noch so viel Platz für 2-3 Buttons ... und das variiert beim Fenster resizen.
ok also mal sehen ob ich das "addieren" kann und damit eine Menu bauen kann.
es wird allerdings wohl kein "schönes" Menu denn jetzt kommt das nächste Problem ... die Icons aus der Imagelist aber das ist ein anderes Thema.
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Toolbar : mehr Buttons als Platz ?
hi,
mit dem "summieren" gibt es ein kleines Problem :
also hab ich angefangen zu summieren und dann wollte ich das Menu aufbauen ...
und das nächst Problem : was schreibe ich nun in das Pop-Up Menu ?
mit dem "summieren" gibt es ein kleines Problem :
ich hatte gedacht das ein activeX, welches als SuperClass XbpWindow() hat, doch mit o:currentsize() klar kommen müsste ... oder ? egal auf der linken Seite sieht man im VX Debugger die IVar vom ActiveX und da gibt es o:WidthoError:args :
-> VALTYPE: C VALUE: currentsize
oError:canDefault : J
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Unbekannter Name.
Member-Variable ist f r dieses Objekt unbekannt
oError:filename : NIL
oError:genCode : NIL
oError:operation : currentsize
oError:osCode : -2147352570
oError:severity : 2
oError:subCode : 6500
oError:subSystem : Automation
oError:thread : 1
oError:tries : NIL
also hab ich angefangen zu summieren und dann wollte ich das Menu aufbauen ...
und das nächst Problem : was schreibe ich nun in das Pop-Up Menu ?
nun sieht man ja die IVars von XbpToolbarButton() aber da gibt es kein o:activate ... was schreibe ich nun in bAction ?XbpMenu
o:addItem( <aItem> ) --> nItemIndex
xCaption
xCaption ist die Caption des Menüeintrags. Das kann NIL, eine Zeichenkette, die Resource ID einer Bitmap, ein Objekt der Klasse XbpBitmap oder ein Objekt der Klasse XbpMenu sein. Das Verwenden von XbpBitmap-Objekten erlaubt die Anzeige von Rasterbildern, die in einer Reihe von Bildformaten vorliegen können. Ausserdem werden in Bitmaps, für die eine Transparenzfarbe definiert ist, die transparenten Bereiche automatisch durch die Hintergrundfarbe des XbpMenubar-Objekts ersetzt.
bAction
bAction ist ein optionaler Codeblock, der ausgeführt wird, nachdem der Menüeintrag ausgewählt wurde. Soll der Menüeintrag keine Aktion auslösen, ist für bAction der Wert NIL anzugeben.
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Toolbar : mehr Buttons als Platz ?
ich hab es raus
Code: Alles auswählen
IF oButton:isDerivedFrom( "XbpToolbarButton")
lToolbar := .T.
//
// activeX IVar "Width"
//
nSum += oButton:Width
IF nSum > aRc[3]
cCaption := oButton:Caption
//
// hm ... PRIVATE
//
cRetValue := oXbPart
//
cBlock1 := "{|| TbMenuClick(cRetValue, "+LTRIM(STR(j))+" )}"
cBlock2 := "{ '"+cCaption+"',"+cBlock1+"}"
//
::oMenu:AddItem(&cBlock2)
lAdd := .T.
ENDIF
ELSE
...
FUNCTION TbMenuClick(oXbPart,nNo)
LOCAL oButton
IF nNo > 0
oButton := oXbPart[A_XbPart]:getItem(nNo) // XbpToolBarButton()
PostAppEvent( xbeTBAR_ButtonClick,oButton,,oButton:GetToolbar() )
ENDIF
RETURN NIL
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Toolbar : mehr Buttons als Platz ? [erledigt]
Nachtrag :
XbpToolBarButton() ist FROM AutomationObject und nicht wie XbpToolBar() von XbpActiveXControl() wie ich dachte ...
deshalb keine IVar von XbpWindow() wie o:CurrentSize oder o:SetParent()
XbpToolBarButton() ist FROM AutomationObject und nicht wie XbpToolBar() von XbpActiveXControl() wie ich dachte ...
deshalb keine IVar von XbpWindow() wie o:CurrentSize oder o:SetParent()
gruss by OHR
Jimmy
Jimmy