Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Toolbar : mehr Buttons als Platz ? [erledigt]

Nutzung, Komponenten, .NET

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10520
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Toolbar : mehr Buttons als Platz ? [erledigt]

Beitrag von AUGE_OHR » Mi, 21. Jan 2015 2:13

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: 6792
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Toolbar : mehr Buttons als Platz ?

Beitrag von Tom » Mi, 21. Jan 2015 9:54

Größe anpassen?
Herzlich,
Tom

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2282
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: Toolbar : mehr Buttons als Platz ?

Beitrag von Wolfgang Ciriack » Mi, 21. Jan 2015 9:57

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: 6792
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Toolbar : mehr Buttons als Platz ?

Beitrag von Tom » Mi, 21. Jan 2015 10:06

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: 10520
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Toolbar : mehr Buttons als Platz ?

Beitrag von AUGE_OHR » Do, 22. Jan 2015 0:20

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) 2112 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: 10520
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Toolbar : mehr Buttons als Platz ?

Beitrag von AUGE_OHR » So, 25. Jan 2015 0:15

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: 10520
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Toolbar : mehr Buttons als Platz ?

Beitrag von AUGE_OHR » Mo, 26. Jan 2015 6:06

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) 46-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: 1810
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Kontaktdaten:

Re: Toolbar : mehr Buttons als Platz ?

Beitrag von Herbert » Mo, 26. Jan 2015 7:30

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: 10520
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Toolbar : mehr Buttons als Platz ?

Beitrag von AUGE_OHR » Mo, 26. Jan 2015 8:45

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: 10520
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Toolbar : mehr Buttons als Platz ?

Beitrag von AUGE_OHR » Mo, 26. Jan 2015 9:08

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) 2034 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: 10520
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Toolbar : mehr Buttons als Platz ?

Beitrag von AUGE_OHR » Mo, 26. Jan 2015 22:33

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) 2015 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: 10520
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Toolbar : mehr Buttons als Platz ?

Beitrag von AUGE_OHR » Mo, 26. Jan 2015 23:59

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: 10520
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Toolbar : mehr Buttons als Platz ? [erledigt]

Beitrag von AUGE_OHR » Di, 27. Jan 2015 0:07

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: 10520
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Toolbar : mehr Buttons als Platz ? [erledigt]

Beitrag von AUGE_OHR » Mi, 28. Jan 2015 22:37

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

Antworten