Toolbar / Statusbar "activate"

Nutzung, Komponenten, .NET

Moderator: Moderatoren

Antworten

ich verwende

XbpStatusbar()
2
50%
XbpToolbar()
1
25%
eine 3-PP Lösung
0
Keine Stimmen
eine eigene Lösung
0
Keine Stimmen
nichts davon
1
25%
 
Insgesamt abgegebene Stimmen: 4

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 / Statusbar "activate"

Beitrag von AUGE_OHR »

wenn ich mir XbpToolBar() / XbpToolBarButton() ansehe habe ich kein Codeblock Slot "activate" ?

ich frage deshalb weil man es ja wie Buttons benutzt wird und ein "activate" Slot doch logisch wäre.

ich habe zwar über den

Code: Alles auswählen

XbpToolBarButton():index
die Möglichkeit einer auswertung -> Aktion aber der (unschlagbare) Vorteil von Codeblöcken ist ja das man sie ausführen kann "wann" und "wo" ( Thread ) man will !

ich kann ja auch bei

Code: Alles auswählen

XbpToolBarButton():addItem( [<cCaption>], [<cKey>] ) => <oMenu>
nichts weiter eingeben was eine Aktion bewirken könnte.

dito. mit XbpStatusBar() / XbpStatusBarPanel() was man auch Button (F1-F12) mässig verwenden könnte.
was ich bekomme ist o:index, o:caption etc ... aber kein Codeblock Slot zum evaluieren :(

wie hab ihr das gelöst ?
gruss by OHR
Jimmy
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Toolbar / Statusbar "activate"

Beitrag von Werner_Bayern »

Code: Alles auswählen

oStatusbar:panelClick := {|oPanel| if(oPanel:index == 3, if(.not. startedatei("calc.exe"),;
   fehler("Taschenrechner nicht gefunden!"), ), if(oPanel:index == 4, htmlAnzeige(, oDlg), ))}
es grüßt

Werner

<when the music is over, turn off the lights!>
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 / Statusbar "activate"

Beitrag von AUGE_OHR »

hi,
Werner_Bayern hat geschrieben:

Code: Alles auswählen

oStatusbar:panelClick := {|oPanel| if(oPanel:index == 3, if(.not. startedatei("calc.exe"),;
   fehler("Taschenrechner nicht gefunden!"), ), if(oPanel:index == 4, htmlAnzeige(, oDlg), ))}
das ist genau das was ich meine ! es wird, über den Index, eine "feste" Reihenfolge vorgelegt.

wenn ich nun einen Panel löschen / neu hinzufüge stimmt das ganz ja nicht mehr :banghead:

deshalb spreche ich ja auch von einem separaten "activate" Codeblock Slot den ich dem jeweiligen Panel zuordnen kann.
gruss by OHR
Jimmy
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Toolbar / Statusbar "activate"

Beitrag von Werner_Bayern »

Dann benutze halt den :key anstatt :index.
es grüßt

Werner

<when the music is over, turn off the lights!>
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 / Statusbar "activate"

Beitrag von AUGE_OHR »

Werner_Bayern hat geschrieben:Dann benutze halt den :key anstatt :index.
es geht doch nicht darum "wie" ich es identifiziere sondern um die Belegung von "einem" Codeblock durch o:panelClick.

ideal wäre doch diese Syntax

Code: Alles auswählen

oStatusbar:panelClick := {|oPanel| EVAL(oPanal:activate) }
d.h. jedes Panel Item sollte einen activeate Codeblock Slot haben den man EVALuieren kann.
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 / Statusbar "activate"

Beitrag von Herbert »

Jimmy, du hast recht. Die Toolbar ist in der gegebenen Form nicht mehr zeitgemäss. Man sollt sie z.B auch vom Fenster loslösen können.
Bei mir ist das daher sehr klassisch codiert:

Code: Alles auswählen

oToolBar:addItem(, ID_BTN_DET_BMP,,,,, "ETOOL_OKD"):tooltiptext := "Detailseite speichern"
...
oToolBar:buttonClick := {|oButton| ::EToolbEvent( oButton )}

METHOD AdressF:EToolbEvent( oButton )
LOCAL cKey:=oButton:key
DO CASE
CASE cKey == "ETOOL_OK"
...
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 / Statusbar "activate"

Beitrag von AUGE_OHR »

Herbert hat geschrieben:Die Toolbar ist in der gegebenen Form nicht mehr zeitgemäss.
Man sollt sie z.B auch vom Fenster loslösen können.
so wie in Office oder den meisten Browser ... das nennt man Rebar welches einen "Container" bereitstellt.
https://msdn.microsoft.com/en-us/librar ... 85%29.aspx
gruss by OHR
Jimmy
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Toolbar / Statusbar "activate"

Beitrag von Werner_Bayern »

Servus Jimmy,

was hindert Dich daran, den Codeblock als Text in :key oder :cargo reinzuschreiben und diesen dann makrozuexpandieren?
es grüßt

Werner

<when the music is over, turn off the lights!>
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 / Statusbar "activate"

Beitrag von AUGE_OHR »

Werner_Bayern hat geschrieben:was hindert Dich daran, den Codeblock als Text in :key oder :cargo reinzuschreiben und diesen dann makrozuexpandieren?
hm ... in den o:key Slot würde ich keinen Codeblock legen aber in den o:Cargo Slot ... das könnte man es machen.

es ging mir bei den beide activeX darum das Windows zwar kein Codeblock kennt aber es für Xbase++ doch "sinnvoll" wäre wenn man einen o:Activate Slot für einen Codeblock hätte.
gruss by OHR
Jimmy
Antworten