Átkozott DBGrid Vertikális Scrollbar
2003-08-03T18:23:45+02:00
2003-08-04T11:14:01+02:00
2022-07-27T17:57:31+02:00
  • A hiba valóban ebből adódik. Tudom ajánlani a Társalgó/Tudástár hosszas böngészéstét! Volt erre már néhány topic!

    A megoldás az adatbáziskomponensek lecserélése mondjuk a Zeos nevű lib-re. Interbase-nél állítólag megoldódik a dolog ezzel (én ADO-t használok, így nem próbáltam ki).

    Sok szerencsét!

    [DenniX]
    Mutasd a teljes hozzászólást!
  • Megoldottam a problémát, itt van a DBGrid WindowProc-ának a kiegészítés, hátha másnak is szüksége lesz rá:

    void __fastcall TMyDBGrid::MyWindowProc(TMessage& Message)
    {
    if (Message.Msg == WM_VSCROLL && Message.WParamLo == SB_THUMBTRACK && DataSource)
    DataSource->DataSet->RecNo = Message.WParamHi;
    else if (Message.Msg == WM_NCPAINT)
    {
    if ((Height / DefaultRowHeight) > RowCount)
    ShowScrollBar(Handle, SB_VERT, false);
    else
    ShowScrollBar(Handle, SB_VERT, true);
    WndProc(Message);
    }
    else
    WndProc(Message);
    }
    Mutasd a teljes hozzászólást!
  • Paradoxot használok, de sajna nem megy.
    Mutasd a teljes hozzászólást!
  • A probléma abból adódik, hogy az SQL szerverek recordcount-ként csak a már "lefetchelt" sorok számát adják vissza.

    Tehát, ha egy select eredménye mondjuk 1000 rekord, lehet hogy csak 300-at fog visszaadni a recordcount elsőre. Aztán elgörgetsz a feléig, ott már ad pl. 658-at, aztán mire a végére érsz, akkor jön rá, hogy 1000 a recordcount...


    Paradoxnál működik a dolog, mert másképp dolgozik. Interbase esetén már van ez a szépséghiba
    Mutasd a teljes hozzászólást!
  • Az a bajom a DBGrid-del C++ Builder-ben, hogy a veritkális scrollbart megragadva szarik görgetni az ablakot. Írtam egy saját DBGrid-et ami ezen kívül már megoldja pár hátrányát az eredetinek, de a scrollbaros problémára nem tudok megoldást találni. Már ott tartok, hogy elkapom a WM_VSCROLL üzenetet, de az átkozott mindig visszaállítja a scrollbar pozícióját 1-re.
    HOGYAN LEHETNE EZT MEGOLDANI???
    Kösz a segítséget.
    Mutasd a teljes hozzászólást!
abcd