Portál AbcLinuxu, 4. května 2025 07:37
Ahoj
Zkousel jsem hledat, ale strejdy Googla se neumim spravne zeptat, tudiz jsem odpoved nenasel.
Mam ListItem
, v nem 4 polozky (Pol1
, Pol2
, Pol3
a Pol4
). Po spusteni programu je (implicitne) vybrana Pol1
. Kliknu na polozku Pol3
a zavola se OnSelectItem
se vstupnimi parametry
Item: Pol3 Selected: truePotud vse OK. Jenze vzapeti se
OnSelectItem
zavola podruhe s
Item: Pol1 Selected: false(tedy predchozi vybrana polozka) a vzapeti jeste potreti s
Item: Pol3 Selected: true(nove vybrana). A takto se to chova pri kazdem vyberu jine polozky, nez je aktualne vybrana (proste kdyz dojde k volani
OnSelectItem
).
Nevite nekdo, jak tomuhle vicenasobnemu volani zabranit? Nebo aspon jak odfiltrovat to treti (nebo klidne i to prvni, na tom uz asi nesejde) volani (s druhym neni problem diky Selected
). Dival jsem se na Sender
, ale pokazde je stejny. Na tu udalost mam navazanou akci, ktera chvili trva a docela to zdrzuje.
Diky moc za kazde nakopnuti spravnym smerem.
To uz se tady nevyskytuje zadny pascalista?
Zatim jsem to vyresil pomocnou promennou, kterou si pri druhem volani (s Selected
= false
) nastavim, takze pri tretim volani mam priznak, ze udalost uz mam obslouzenou.
Ale kdyby nekdo znal elegantnejsi reseni, budu rad.
mne to funguje správne
Ahoj
Moc diky za snahu. Co mas na mysli vyrazem "spravne".
Mi se to popisovanym zpusobem chova na Fedore 6 32 bit (ano, archaicky system, ale proc vrtat do neceho, co mam nastavene a funguje), Lazarus 0.9.40, FPC 2.4.2, revize SVN 29811, i386-linux-gtk 2
A ted jsem to zkusil na WinXP (taky Lazarus 0.9.40, FPC 2.4.2, revize SVN 29749, i386-win32-win32/win64) a tam nedojde k tomu prvnimu volani. Takze jen "Unselect" na predchozi polozce a "Select" na nove.
Uvidime tedy, jak se ti to bude chovat na linuxu
Správne znamená, že keď má selektnutú jednu položku a kliknem na inú, tak mi prídu dva eventy(nie tri). Jeden je odselektovanie tej, čo bola selektnutá na začiatku a druhý je zaselektovanie tej, na ktorú som klikol.Tak nejak jsem tohle predpokladal, dekuji za potvrzeni domnenky.
Beru to teda tak, ze problem mam nekde v "systemu" (nemyslim OS) a musim se s tim bud smirit nebo nejak vyporadat sam.
Jeste jednou moc diky za snahu
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.