Maschera continua. Selezione record in base a posizione cursore mouse

di il
5 risposte

Maschera continua. Selezione record in base a posizione cursore mouse

Buona sera a tutti.

Come da titolo vorrei, così come esperimento personale e per poi implementarlo eventualmente in lavori futuri, CAPIRE se esiste la possibilità di selezionare un record di una maschera (o sottomaschera) continua in base alla posizione del cursore del mouse. Un po' come la visualizzazione del "ControltipText" dei vari controlli.

La mia idea è di utilizzare tale "accrocchio grafico" per esempio in un database "anagrafico". Ovvero... Avendo a video l'elenco dei vari nomi di una società, lista, ecc ecc, passando sopra al controllo associato a quel nome della maschera continua aprire una maschera pop up con la foto di quella persona, o di quell'articolo nel caso di un gestionale per un azienda, ecc ecc. E che tale maschera si chiuda:
A) se il cursore è al di fuori di quel determinato controllo (nome, codice, soprannome ecc)
B) se il cursore passa ad un altro record o alla maschera principale oppure esce dal campo attivo del front end (riduzione a icona, cmabio scheda, ecc ecc).

Ho visto che @alex in un vecchissimo post aveva postulato che tale idea è fattibile, ma non di semplice esecuzione. Così rispolvero le vs conoscenze in modo da avere qualche idea su come agire o se lasciare perdere e optare per un "immagine non associata" che varia alla SELEZIONE del record specifico.

Grazie a chi vorrà rispondere

5 Risposte

  • Re: Maschera continua. Selezione record in base a posizione cursore mouse

    Che conoscenze hai del codice...?
    Le maschere continue sono una bruttissima "bestia" da gestire... io avrei qualche remora a farlo, e per farlo andrei a scaricare un demo di Lebans, ma siccome Lwbans usava tantissime API se non sei veramente pratico non sarà affatto gestibile anche solo per la necessaria conversione delle API da apportare...

    Sulle form continue devi attivare il record corrente e poi fai quello che vuoi... fossi in te, io non lo farei...
  • Re: Maschera continua. Selezione record in base a posizione cursore mouse

    Conoscenze del codice: "amatore".

    Mettiamola così... So usare la composizione guidata.

    La mia idea era di intercettare x e y del Onmousemove. Però volevo capire se e come ottenere le stesse coordinate del controllo "nome". Il problema OVVIAMENTE è che io posso tentare di intercettare tali valori, ma avrò sempre quelli del record attivo. Ergo se anche passassi col mouse del N record come X e Y del controllo otterrò sempre quello del Record attivo, potrei esser a mouse X = 2000 e Y = 7500 ma il mio controllo mi ritornerà X = 1 e Y = 1 perchè è attivo il primo record. Da qui la necessità di attivare il record al passaggio del mouse.

    Il discorso API lo tralascio perchè effettivamente non ho MAI sfruttato le API, mi ci son sempre tenuto a distanza preferendo soluzioni arzigogolate col VBA piuttosto.

    Alternative?
  • Re: Maschera continua. Selezione record in base a posizione cursore mouse

    Lascia stare ti sconsiglio di intraprendere questa strada, peraltro il tuo ragionamento non è assolutamente funzionale, pensa solo alla scrollbar...
    Non devi ragionare sul record attivo di quello non te ne fai nulla, ma devi calcolare il record sotto al mouse come numero progressivo ed andare nel recordsetclone a trovare quello con AbaolutePosition equivalente...
  • Re: Maschera continua. Selezione record in base a posizione cursore mouse

    @Alex ha scritto:


    Lascia stare ti sconsiglio di intraprendere questa strada, peraltro il tuo ragionamento non è assolutamente funzionale, pensa solo alla scrollbar...
    Mettiamo che la scrollbar sia un elemento "NON PERVENUTO".

    @Alex ha scritto:


    Non devi ragionare sul record attivo di quello non te ne fai nulla, ma devi calcolare il record sotto al mouse come numero progressivo ed andare nel recordsetclone a trovare quello con AbaolutePosition equivalente...
    Beh questo mi è meno chiaro. Posso ragionare sul record "sotto al mouse". Ma se invece di fare una ricerca io lo rendo attivo, potrei usare a quel punto il suo ID per farne ciò che voglio... O sbaglio?!
  • Re: Maschera continua. Selezione record in base a posizione cursore mouse

    Beh devo dire che grazie al tuo consiglio di studiare l'esempio di Lebans @alex ho risolto il problema della visualizzazione. Ovvero la parte più semplice, cioè l'apertura di un pop up che "segue" a distanza (per ora l'ho limitato a 100 twips dalla posizione del cursore) i vari spostamenti del mouse e che si chiude quando il cursore esce dal controllo che ho scelto.

    Adesso viene il bello. Associare alla posizione il record giusto.

    Ed inoltre dvo gestire il porblema del "flickering". Perchè ad ogni spostamento del mouse io per ora ho semplicemente chiuso e riaperto brutalmente il pop up con le nuove coordinate.

    Ma un passo alla volta.

    Non credevo comunque che con la GetCursorPos e due righe nella maschera continua sulla variazione delle coordinate di ottenere un risultato per ora soddisfaciente.

    Ho gestito il tutto con due eventi onmousemove, il primo sul controllo per aprire il popup, il secondo sull'intera form secondaria per la chiusura al di fuori dell'area del controllo.

    Per ora grazie.
Devi accedere o registrarti per scrivere nel forum
5 risposte