DCBrowse mit Cell-Editing und Check-Box
Verfasst: Fr, 17. Jun 2011 10:42
Hallo xBase-Gemeinde,
ich habe da ein kleines Problem in einem dcbrowse.
Ich habe in der ersten Spalte einen Checkbutton (Datenbankfeld: markier C 1) mit der Anzeige eines Bitmaps abhängig ob markier Empty ist oder nicht,
daneben sind auch noch andere Spalten vorhanden, die auch für Cell-Editing freigegeben sind.
Momentan ist es so, daß ich in der ersten Spalte mit der Mouse eine Zelle markiere und anschließend über RETURN
den Status checked / unchecked hervorrufen kann.
Nun soll ich aber alternativ auch über einen Doppelklick den Status der ersten Spalte ändern können.
Dies ist mir bisher nicht gelungen !
Entweder es geht die eine Methode oder die andere aber nicht beide in Kombination.
Funktion fToggle() bzw. ret_block() ändern den Inhalt
Auszug aus meinem Code:
@ 3.5,2 DCBROWSE oSuchen ;
SIZE 78,14 ;
CURSORMODE XBPBRW_CURSOR_CELL ;
EDIT xbeBRW_ItemSelected;
MODE DCGUI_BROWSE_EDITEXIT;
ACTION {|| rec_lock()};
EXIT {|| dbunlock() };
DATALINK {|| oDlg:hide(),;
ret_block(@aDef, @oSuchen),; // markieren
oDlg:show() }
Spaltendefinition-1 für Methode RETURN:
DCBROWSECOL ;
DATA {||IF(!EMPTY(markier),7392,7393)} ;
TYPE XBPCOL_TYPE_BITMAP;
HEADER 'X';
PARENT oSuchen;
WIDTH 3;
PROTECT .F. ;
EDITOR 'LOGISCH'
@ NIL,NIL DCGET xNIL GETID 'LOGISCH' PREEVAL {|| fToggle(oSuchen,aBlock)} WHEN {||(.F.)
Spaltendefinition-1 für Methode Doppel-Klick:
DCBROWSECOL ;
DATA bSpaBlock ;
TYPE XBPCOL_TYPE_BITMAP;
HEADER aBlock[i,2];
PARENT oSuchen;
COLOR GRA_CLR_WHITE,GRA_CLR_DARKGREEN;
WIDTH aBlock[i,4];
PROTECT {|| fToggle(oSuchen,aBlock),.T.}
Was muß ich machen um beide Methoden aktiv zu haben ?
Viele grüße aus dem Schwabenland
Peter
ich habe da ein kleines Problem in einem dcbrowse.
Ich habe in der ersten Spalte einen Checkbutton (Datenbankfeld: markier C 1) mit der Anzeige eines Bitmaps abhängig ob markier Empty ist oder nicht,
daneben sind auch noch andere Spalten vorhanden, die auch für Cell-Editing freigegeben sind.
Momentan ist es so, daß ich in der ersten Spalte mit der Mouse eine Zelle markiere und anschließend über RETURN
den Status checked / unchecked hervorrufen kann.
Nun soll ich aber alternativ auch über einen Doppelklick den Status der ersten Spalte ändern können.
Dies ist mir bisher nicht gelungen !
Entweder es geht die eine Methode oder die andere aber nicht beide in Kombination.
Funktion fToggle() bzw. ret_block() ändern den Inhalt
Auszug aus meinem Code:
@ 3.5,2 DCBROWSE oSuchen ;
SIZE 78,14 ;
CURSORMODE XBPBRW_CURSOR_CELL ;
EDIT xbeBRW_ItemSelected;
MODE DCGUI_BROWSE_EDITEXIT;
ACTION {|| rec_lock()};
EXIT {|| dbunlock() };
DATALINK {|| oDlg:hide(),;
ret_block(@aDef, @oSuchen),; // markieren
oDlg:show() }
Spaltendefinition-1 für Methode RETURN:
DCBROWSECOL ;
DATA {||IF(!EMPTY(markier),7392,7393)} ;
TYPE XBPCOL_TYPE_BITMAP;
HEADER 'X';
PARENT oSuchen;
WIDTH 3;
PROTECT .F. ;
EDITOR 'LOGISCH'
@ NIL,NIL DCGET xNIL GETID 'LOGISCH' PREEVAL {|| fToggle(oSuchen,aBlock)} WHEN {||(.F.)
Spaltendefinition-1 für Methode Doppel-Klick:
DCBROWSECOL ;
DATA bSpaBlock ;
TYPE XBPCOL_TYPE_BITMAP;
HEADER aBlock[i,2];
PARENT oSuchen;
COLOR GRA_CLR_WHITE,GRA_CLR_DARKGREEN;
WIDTH aBlock[i,4];
PROTECT {|| fToggle(oSuchen,aBlock),.T.}
Was muß ich machen um beide Methoden aktiv zu haben ?
Viele grüße aus dem Schwabenland
Peter