sync SVN r18237

This commit is contained in:
2026-09-30 20:06:18 +03:00
parent b7dd1ac0a5
commit c9bca5d4df
4 changed files with 30 additions and 3 deletions

View File

@@ -136,6 +136,10 @@ Cand un bug apare "de azi", compara cu clasa veche fara sa atingi SVN:
- **`FOR EACH` pe `loDom.selectNodes(...)`** da la rulare "Expression evaluator failed". Foloseste `loN = loDom.selectNodes(...)` + `FOR i = 0 TO loN.length - 1` / `loN.item(i)`.
- **`COUNT ... TO x IN alias` nu e sintaxa VFP9** (eroare "Command contains unrecognized phrase/keyword", vizibila doar in `.ERR`): `COUNT` nu are `IN`; fa `SELECT (cAlias)` inainte, apoi `COUNT FOR ... TO x`.
- **Control fara fereastra (`Control`/`Container`/`Shape`) nu captureaza mouse-ul.** `MouseMove` vine doar cat cursorul e deasupra lui: pe o banda ingusta (splitter 5px) tragerea se opreste dupa 3-4px. Tragerea se face in `MouseDown`, cu bucla `GetAsyncKeyState` + `GetCursorPos`/`ScreenToClient(Thisform.HWnd)` pana la eliberarea butonului (model: `sfsplitter.MouseDown` din `clase\sfsplitter.vcx`). `MDOWN()` intoarce `.F.` in `MouseDown`, nu-l folosi ca test de buton apasat.
- **Copiii unui control prind evenimentele de mouse** (ex. gripper-ul din mijlocul splitterului): `MouseDown`/`MouseLeave` nu ajung la parinte decat daca copilul le deleaga explicit (`this.parent.MouseDown(...)`), pe TOATE nivelurile (container, sub-container, shape-uri).
- **Bug "in exe nu merge" - verifica intai ca exe-ul contine codul**: `grep -a -c '<literal din metoda noua>' roacont.exe` (> 0 = codul e compilat). Apoi reproduce in IDE; daca pica si acolo, nu e o diferenta IDE/exe.
## 7. Capcane la SCRIEREA scriptului de test
- **`SET SAFETY OFF` in primele linii, INAINTE de orice `STRTOFILE`/`CREATE CURSOR`/`COMPILE`**