Toolbar : mehr Buttons als Platz ? [erledigt]

Nutzung, Komponenten, .NET

Moderator: Moderatoren

Antworten
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

Toolbar : mehr Buttons als Platz ? [erledigt]

Beitrag von AUGE_OHR »

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
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: Toolbar : mehr Buttons als Platz ?

Beitrag von Tom »

Größe anpassen?
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: Toolbar : mehr Buttons als Platz ?

Beitrag von Wolfgang Ciriack »

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
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: Toolbar : mehr Buttons als Platz ?

Beitrag von Tom »

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
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: Toolbar : mehr Buttons als Platz ?

Beitrag von AUGE_OHR »

Wolfgang Ciriack hat geschrieben:Am besten wäre da so etwas wie Roger in seinem Beispiel OUTLOOKBAR verwendet ...
Ja so was hab ich in Rösrath bei Usertreffen 2009 vorgestellt
PbStack.JPG
PbStack.JPG (29.95 KiB) 10943 mal betrachtet
aber ich meine XbpToolbar() mit der Button Leiste oben wie sie z.b von Firefox für die Lesezeichen Symbol-Leiste verwendet wird.
gruss by OHR
Jimmy
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: Toolbar : mehr Buttons als Platz ?

Beitrag von AUGE_OHR »

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.
gruss by OHR
Jimmy
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: Toolbar : mehr Buttons als Platz ?

Beitrag von AUGE_OHR »

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 ...
tja ... man sollte mal im Help File lesen :
XbpToolBar()
:wrappable
-
Bestimmt, ob die Schaltflächen beim Vergrößern umgebrochen werden
soweit so gut und wenn man das auf .F. stellt wird also "abgeschnitten" was ich ja für eine Rebar haben möchte.

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
es werden auch die "abgeschnitten" XbpToolBarButton() als o:visible = .T. zurück gegeben :angry4:
Rebar.zip
benötigt MsComCtl.OCX und ot4xb
(480.16 KiB) 501-mal heruntergeladen
die Frage ist nun wie nun feststellen soll "was" in das Menu soll ... jemand eine Idee ?

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
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
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 ?

Beitrag von Herbert »

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...
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: Toolbar : mehr Buttons als Platz ?

Beitrag von AUGE_OHR »

Herbert hat geschrieben:ich denke, du musst die Koordinaten der einzelnen Elemente prüfen und schauen, ob diese innerhalb der Weite des Toolbars liegen.
hab doch ein XbpToolbar() Demo beigefügt 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.

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.
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.
hm ...

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
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: Toolbar : mehr Buttons als Platz ?

Beitrag von AUGE_OHR »

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.
ich meinte das
Rebar_XbpToolbar.PNG
Rebar_XbpToolbar.PNG (12.68 KiB) 10865 mal betrachtet
aber nach dem 1st resize sortiert es sich dann.
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
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: Toolbar : mehr Buttons als Platz ?

Beitrag von AUGE_OHR »

hi,

mit dem "summieren" gibt es ein kleines Problem :
oError: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
ich hatte gedacht das ein activeX, welches als SuperClass XbpWindow() hat, doch mit o:currentsize() klar kommen müsste ... oder ?
AX_No_CurrentSize.PNG
AX_No_CurrentSize.PNG (54.96 KiB) 10857 mal betrachtet
egal auf der linken Seite sieht man im VX Debugger die IVar vom ActiveX und da gibt es o:Width ;)

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 ?
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.
nun sieht man ja die IVars von XbpToolbarButton() aber da gibt es kein o:activate ... was schreibe ich nun in bAction ?
gruss by OHR
Jimmy
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: Toolbar : mehr Buttons als Platz ?

Beitrag von AUGE_OHR »

ich hab es raus :blob8:

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
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: Toolbar : mehr Buttons als Platz ? [erledigt]

Beitrag von AUGE_OHR »

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() :banghead:
gruss by OHR
Jimmy
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: Toolbar : mehr Buttons als Platz ? [erledigt]

Beitrag von AUGE_OHR »

es sieht übrigens jetzt so aus.
Rebar_ToolBar_Chevron_Menu.PNG
Rebar_ToolBar_Chevron_Menu.PNG (16.93 KiB) 10830 mal betrachtet
gruss by OHR
Jimmy
Antworten