Aktív témák
-
Imrege
csendes tag
Helo!
Tud-e valaki arra módszert, hogy Delphiben a DBgrid használatakor kinyomozzam azt a rekordot, amin az egérmutató éppen áll? Nem az aktuálisan kiválasztott rekord érdekel, hanem csak ha mászkálok a nyíllal a rácson. Pl. alatta mindig mutasson a mutatott rekordról kiegészítő infókat meg minden.
Az a baj, hogy ha alkalmazom az OnMouseMove eseményt, ott az y koordináta a rács aktuálisan látható soraihoz képest mutatja, hogy hol járok, tehát ha a 100. rekordtól látom, mert oda scrolloztam, akkor az lesz neki az 1. sor.
Szóval, ötlet kellene... -
Imrege
csendes tag
Na? Senki se gridel Delphiben?
-
Alan
aktív tag
Elég nehéz kérdés, mert a normál DBGrid-del ezt problémás lesz megoldani.
Már régen használtam a TDBGrid-et, ezért nem emlékszem, milyen metódusai vannak errea a célra, de az alapelv az, hogy meghatározod, melyik rekord a legfelső a DBGrid-ben, aztán ehhez képest a relatív egérkoordináták alapján kiszámítod, melyik felett áll az egér, és a cellákban lévő string-eket kibányászod belőle. Ehhez valószínűleg származtatnod kell saját grid-et, mert nem hiszem, hogy a DBGrid szintjén még megengedné, hogy magukat a cellákat vizsgáld vagy módosítsd (azért DBGrid).
Ha esetleg olyan adatot akarsz hint-ben megjeleníteni, ami nincs a képernyőn (mert pl. nincs hozzá oszlop definiálva a grid-ben), de az adatrekordban szerepel, akkor ez egyáltalán nem fog menni, mert az adatbáziskurzort nem mozdíthatod el, hiszen akkor a fókusz is elmozdul, amit nem akarsz. Ehhez olyan grid kell, ami offline módon kezeli az adatokat, tehát betölti az egészet (vagy legalább n rekordot, pl. a láthatóakat) a memóriába és elérhetővé teszi ezeket kívülről az adatbáziskurzor mozgatása nélkül is.
Tehát nem könnyű a dolog, nem biztos, hogy érdemes vele foglalkozni. Ha mindenképpen kell, én azt csinálnám, hogy származtatok egy új komponenst a TCustomDBGrid-ből és ebben ismét elérhetővé teszem a cellákat, valamint lemondanék a nem látható információk megjelenítéséről. -
Imrege
csendes tag
Aha. Tulajdonképpen az a szitu, hogy egy DBGridben megjelenítek szöveges és numerikus mezőket. A méretek és egyéb infók miatt a szöveges oszlop nem olyan széles, hogy minden adat kiférjen (egy csomónak le van vágva a vége). Ezért gondoltam arra, hogy az egérkurzor alatti sort megmutatom Hint-ben vagy egy Labelben.
Ez a származtatás-dolog nem rossz. Talán vannak a TCustomDBGrid-nek olyan tulajdonságai/metódusai, amikkel hozzá tudok férni egy cella tartalmához. Kipróbálom, kösz. -
Torontál S.
csendes tag
Pazarló , de gyors megoldás készíteni egy másolatot a tábláról, és a fenti módszerrel navigálni benne. ekkor bármit kiszedhetsz. ha a tábla módosul, a másolatodat is frissíted. szerintem.
Aktív témák
- Hp elitebbok 755 G5 Áfás Számlával
- Mini PC Lenovo M710q i5-6500T/8Gb - 16Gb DDR4/ 256Gb SSD M2 + 250Gb HDD/USB 3.0/DP Port/ 1Év Gari
- Mini PC HP 400 G3 DM i5-7500T/8 Gb DDR4/ 256 Gb SSD/USB 3.0/ DP Port/ VGA Win 11 Pro 1Év gari
- Olcsó számítógép játékra! I5 6500 / GTX 1060 6GB / 16GB DDR4 / 500Gb SSD
- XFX AMD Radeon RX 7900 GRE Reference GARANCIA 2027.02.08-ig