ACTIVE BEFORE INSERT
POSITION 0
AS
BEGIN
IF (NEW.USERS_ID IS NULL) THEN
NEW.USERS_ID = GEN_ID(USERS_USERS_ID_GEN, 1);
END;
Mironas napisał(a):Jeśli nie chcesz zaznaczać całych wierszy na DBGrid (multiselect) a wolisz w wybranym polu rysować 'ptaszka' po kliknięciu na tym polu, to działaj wg instrukcji:
Do DBGrid-a dodaj pole boolean o nazwie '_check' typu Calculated - to rozumiem mam dodać do tabeli
DBGrid1DrawColumnCell(...) - a ten kod do OnDrawColumnCellKOD cpp: UKRYJ// Rysowanie CHECK BOX-a
if ( Column->FieldName == "_check" )
{
int x = (Rect.right - Rect.left) / 2 + Rect.left - 5;
int y = Rect.top + 2;
// wypelnienie pola kolorem domyslnym tla
DBGrid1->Canvas->Font->Color = DBGrid1->Canvas->Brush->Color;
DBGrid1->DefaultDrawDataCell(Rect,Column->Field,State);
// parametry check box-a
DBGrid1->Canvas->Brush->Color = clWhite;
DBGrid1->Canvas->Pen->Color = clBlack;
DBGrid1->Canvas->Pen->Width = 2;
// rysowanie pustego kwadratu
DBGrid1->Canvas->Rectangle(x, y, x+12, y+12);
// rysowanie 'X'
if ( sqlTabela_check->AsBoolean ) //<span style="font-weight: bold">mam zdefiniować tą zmienną sqlTabela_check jak tak to gdzie i jaką </span>
{
DBGrid1->Canvas->MoveTo(x+2,y+2);
DBGrid1->Canvas->LineTo(x+8, y+8);
DBGrid1->Canvas->MoveTo(x+2,y+8);
DBGrid1->Canvas->LineTo(x+8, y+2);
}
}
Po kliknięciu wybranej komórki zmieniasz wartość wo polu '_check' i przerysowujesz DBGrid-a:
DBGrid1->Repaint(); i to nie wiem gdzie i jak dokładnie wstawić
Powodzenia.
admszczep napisał(a):nie mogę poradzić sobie z zapisanie wartości dla pola _check
admszczep napisał(a):Mironas napisał(a):void __fastcall TForm1::IBDataSet1CalcFields(TDataSet *DataSet)
{
IBDataSet1LP->AsInteger = DataSet->RecordCount;
}
Numeracja działa idealnie tylko musiałem zmienić na:
SZUKAJLP->AsInteger = DataSet->RecNo;
struct SELINFO
{
int id; // id rekordu
bool select; // informacja czy rekord jest zaznaczony
}
Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 15 gości