XbpComboBox()

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

XbpComboBox()

Beitrag von Jan »

Ich kämpfe gerade mit einer Eigenschaft eine Combobox.
  • Typ = XBPCOMBO_DROPDOWNLIST -> SLE nicht bearbeitbar, nur Auswahlliste
  • Aktueller SLE-Wert soll direkt aus der dbf gelesen werden
  • Auswahl-Liste ist gefüllt, der Wert in der dbf ist einer der Auswahlwert
  • Über :itemSelected wird der gewählte Eintrag verarbeitet und Teile daraus in der dbf gespeichert
  • Ich habe keine :itemMarked
  • Ich habe keine :dataLink, das scheint mir hier unnötig
  • Den aktuellen Wert aus der dbf hole ich mir per XbpSle:setData(cDatenbank->feldname)
Alles klappt alles soweit. Nur wird leider das SLE nicht mit dem Wert des dbf-Feldes gefüllt. Ich stehe eindeutig auf dem richtigen Satz. Es steht auch was in dem Feld drin. Es wird aber nicht nach dem Erzeugen der ComboBox angezeigt. Was mache ich da falsch?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: XbpComboBox()

Beitrag von Rolf Ramacher »

Hi Jan

so sieht meine combobox aus. m.E. wird aber datalink benötigt funktioniert einwandfrei

Code: Alles auswählen

   oCombo := XbpCombobox():new( oDlg, , aPos, {40,60}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
	oCombo:type := XBPCOMBO_DROPDOWNLIST
 	oCombo:tabStop := .T.
  	oCombo:setInputFocus  := {|mp1,mp2,obj| HiliteSle( oCombo ) }
  	oCombo:create()

   oCombo:XbpSLE:dataLink := {|x| IIf( x==NIL, aFelder[2][2], aFelder[2][2] := x ) } 
  	bAction := {|mp1, mp2, obj| obj:XbpSLE:getData() }

   oCombo:ItemMarked := bAction 
	
   // Codeblock für Auswahl durch linken Mausklick in der Listbox 
	oCombo:ItemSelected := bAction 
	For i = 1 to Len(aFil)
		oCombo:addItem(aFil[i])
	Next i
	oCombo:setData(aFil[1]) 

Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
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: XbpComboBox()

Beitrag von AUGE_OHR »

Jan hat geschrieben:
  • Über :itemSelected wird der gewählte Eintrag verarbeitet und Teile daraus in der dbf gespeichert
  • Ich habe keine :dataLink, das scheint mir hier unnötig
  • Den aktuellen Wert aus der dbf hole ich mir per XbpSle:setData(cDatenbank->feldname)
Es wird aber nicht nach dem Erzeugen der ComboBox angezeigt. Was mache ich da falsch?
ein o:itemSelected geht auf den Listbox Teil.
ein o:dataLink ist zum "updaten" des SLE notwendig

Code: Alles auswählen

  bData := {|c| IF( c != NIL, FIELD->XXX := c, FIELD->XXX ) } 
   // Zuweisung des Datencodeblocks an den XbpSle-Teil der Combobox 
  oCombobox:XbpSLE:dataLink := bData
gruss by OHR
Jimmy
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: XbpComboBox()

Beitrag von Jan »

Rolf, Jimmy,

es macht keinen Unterschied, ob ich den oCombo:XbpSle:datalink drin habe oder nicht - der Ist-Zustand wird nicht im SLE angezeigt. Ich weiß, daß das ansich funktioniert. Allerdings habe ich bislang auch noch nie mit einer Combobox vom Typ XBPCOMBO_DROPDOWNLIST gearbeitet. Eventuell wird da das "SLE" anders angesprochen?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: XbpComboBox()

Beitrag von Rolf Ramacher »

Hi Jan,

nein - außer Datalink habe ich für das Arrayfeld aFelder[2][2] nichts anderes - aFelder wird an die Function speichern übergeben - und dort dann in die Datenbank eingetragen.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Antworten