Page 4 of 4

PostPosted: Sun May 14, 2006 10:28 pm
by Silvio
ok ho risolto almeno credo ho aggiunto un parametro alla classe LTestata
se c'è lo aggiunge altrimenti no
ho un altro problema da chiederti
Nella mia famosa linea ho inserito la bitmap:
Code: Select all  Expand view
@ 0,15  BITMAP ::oBmp  SIZE 360,200 OF Self   ;
    ON CLICK DrawSections( ::oBmp,.t. )


come vedi ho messo un controllo cioè se ci clicco sopra si attiva la funzione drawsections che non è altro che dei fillrect che disegnano una cornice gialla

Il problema è questo : se io ho due linee io clicco su una e mi disegna la cornice se ci clicco sull'altra mi disegna la cornice ma come faccio a dirgli di cancellare la cornice alla prima linea ?

qui sotto la funzione :

Code: Select all  Expand view
function DrawSections(obmp,lattivo )
   LOCAL hDC := obmp:GetDC()
   local oBrWhite, oBrCyan


   DEFINE BRUSH oBrWhite COLOR CLR_WHITE
   DEFINE BRUSH oBrCyan  COLOR CLR_YELLOW

   IF lattivo
    // SE è SELEZIONATO
    FillRect( hDC, { 0, 0, 200, 641 }, oBrCyan:hBrush )
    FillRect( hDC, { 10, 10, 190, 350 }, oBrWhite:hBrush )
    else
    //ALTRIMENTI
    //  FillRect( hDC, { 10, 10, 190, 350 }, oBrWhite:hBrush )
    ENDIF

   oBrWhite:End()
   oBrCyan:End()

return lattivo

PostPosted: Mon May 15, 2006 6:45 am
by Enrico Maria Giordano
Prova con un Refresh() prima di disegnare la seconda linea. Dovrebbe cancellare tutto quello che è stato disegnato direttamente.

EMG

PostPosted: Mon May 15, 2006 10:50 am
by Silvio
no niente da fare
ma forse non mi sono spiegato cerco di spiegartelo meglio...


io creo ad esempio un controllo rbook:

@ 2,0 rbook oRb

e poi un altro

@15,0 rbook orb2

poi clicco sul bitmap del primo controllo e mi crea la cornice
poi clicco sul bitmap del secondo controllo e mi crea la cornice ma non mi toglie la cornice al primo controllo


magari è una fesseria ma sembra che sono attivi tutti e due però se io provo ad inserire un simbolino me lo crea sul secondo controllo come se è veramente attivo quel secondo controllo e non è attivo il primo infatti se dopop clicco sul primo controllo e provo ad inserire un simbolo m elo fa vedere sul orimo controllo anzichè sul secondo . quindi il programma funziona bene ma forse come dici tu c'è qualcosa di grafica che non funziona


aaah mi sono ricordato una cosa

Quando inserisco un simbolino io uso il comando DESIGN per spostare il simbolo nel bitmap ma si vedono tutte le coordinate e potrei allargarlo o restringerlo : Io non voglio che l'utente allarghi o restringa il simbolino perchè gli do già io le dimensioni quindi come faccio ad non usare la clausola design e spostare lo stesso il simbolino all'interno del bitmap senza farmi vedere i puntini neri che delineano la forma dell'immagine inserita ?

PostPosted: Mon May 15, 2006 2:34 pm
by Enrico Maria Giordano
Silvio wrote:poi clicco sul bitmap del primo controllo e mi crea la cornice
poi clicco sul bitmap del secondo controllo e mi crea la cornice ma non mi toglie la cornice al primo controllo


Quindi stai parlando dell'indicatore di focus. Devi disegnarlo nell'evento bGotFocus e cancellarlo nell'evento bLostFocus di ogni controllo. Guardati nei sorgenti delle FWH la funzione DrawFocusRect().

Silvio wrote:Quando inserisco un simbolino io uso il comando DESIGN per spostare il simbolo nel bitmap ma si vedono tutte le coordinate e potrei allargarlo o restringerlo : Io non voglio che l'utente allarghi o restringa il simbolino perchè gli do già io le dimensioni quindi come faccio ad non usare la clausola design e spostare lo stesso il simbolino all'interno del bitmap senza farmi vedere i puntini neri che delineano la forma dell'immagine inserita ?


Prendi i metodi CheckDots() e compagnia di TControl e modificali a tuo piacimento.

EMG

PostPosted: Mon May 15, 2006 9:49 pm
by Silvio
grazie era quello che cercavo

PostPosted: Tue May 23, 2006 10:03 am
by Silvio
scusami sono tornato solo oggi dal wrc mondiale di Rally in sardegna.

per il focus intendi di crear eun nuovo metodo e ridisegnare il controllo e richiamre il metodo paint ?


poi per il checkdots non ho trovato niente o meglio volevo solo togliere i puntini per non far allargare l'immagine ...ma poi ho la possibilità di spostare comunque il controllo ?

se disegno un controllo e poi devo ridisegnare un altro me lo disegna sopar alla'altro , ho provato a creare il controllo con nriga e ncol ma non ho avuto nessun effetto

nel metodo additem delle tabs lui crea una nuova linguetta io devo creare una nuova linea : è difficile ottenere questo in automatico ?

grazie