Italian Trasparenza

Discussion in 'Italian Forum' started by micro, Jun 3, 2008.

  1. micro

    micro Well-Known Member Licensed User

    Salve ragazzi,
    ho notato che la funzione SetTransparentColor è attiva solo sulla proprietà sfondo della Form.
    E mi rammarica non avere la possibilità di avere label trasparenti.
    Ho voluto raggirare il tutto con la funzione FDrawString ma necessariamente prima di riaggiornare la scrittura (altrimenti sovrapponi le scritte) devi inviare un FErase e questo anche se a velocità alte comunque lascia percepire le due fasi (ad esempio l'aggiornamento dell'ora).
    Avevo anche pensato di utilizzare la proprietà Text dell'ImageButton ma se ci vai su con il mouse è per caso ci clicchi si nota che è un pulsante (anche se poi non succede nulla :) , ma formalmente è brutto da vedere).
    Avete qualche idea?


    ....Per il momento ho risolto disabilitando la proprietà Enabled dell'ImageButton così almeno se ci clicco non vedo l'effetto pulsante.
     
    Last edited: Jun 3, 2008
  2. giannimaione

    giannimaione Well-Known Member Licensed User

    ... forse ...

    Ciao Micro,
    forse se alleghi un po di codice, forse qualcuno potrebbe aiutarti, forse ci si capisce meglio, forse ... :rolleyes: :rolleyes:
     
  3. Cableguy

    Cableguy Expert Licensed User

    Transparensa solo e possibile en el deskTop, en lo device, no la ai(?)

    let me refrase in English...

    transparency is only possible in the desktop, trought the use of the door.dll, or especially targetted Dll's...( see my special forms Dll in the Adicional Libraries)

    In the device, since it uses a portion of the complete Framwork, some of the funcionalities were left off, one being the transparency in most controls...

    But even with Fdraw string, you don't need to do the convencional erase, if you only wich to erase on particular, string, just re-draw it with the background color.It's much faster...
     
  4. micro

    micro Well-Known Member Licensed User

    Grazie ad entrambi,
    Thanks Cableguy for your answer.

    Sfortunatamente non ho ancora il device e le prove le faccio solo sul desktop.
    Quello che chiedevo era di ottenere delle label trasparenti dove mostrerò la data e ora aggiornata (periodicamente ogni secondo).
    Code:
    Sub App_Start
                 ........
                 ........
                 FormStart.Refresh
       Sleep(
    500)
       
    'flb.New1("FormMain",B4PObject(1)) 'per eliminare la caption dalla form
       'flb.FullScreen(true)
       FormMain.ForeLayer = true
       Timer1.Enabled = 
    true
       DateFormat (
    "dddd - mmmm - yyyy")
       TimeFormat (
    "HH:mm:ss")
       FormMain.Show
       FormMain.Refresh
    End Sub

    Sub Timer1_Tick
       GetDataTime(
    12,280,390,670,670,cGray)
    End Sub

    Sub GetDataTime(size,x1,y1,x2,y2,color)
    Dim giorno
    Dim mom
       giorno = Date(Now)
       
    Select SubString(giorno,0, StrIndexOf(giorno,"-",0)-1)
          
    Case   "Monday"
             giorno = 
    "Lunedì"
          
    Case   "Tuesday"
             giorno = 
    "Martedì"
          
    Case "Wednesday"
             giorno = 
    "Mercoledì"
          
    Case "Thursday"
             giorno = 
    "Giovedì"
          
    Case "Friday"
                  giorno = 
    "Venerdì"
          
    Case "Saturday"
             giorno = 
    "Sabato"
          
    Case "Sunday"
             giorno = 
    "Domenica"
       
    End Select
       mom = DateD
       
    If StrLength(mom) = 1 Then mom = "0" & mom
       giorno = giorno & 
    " " & mom
       mom = DateM
       
    If StrLength(mom) = 1 Then mom = "0" & mom
       giorno = giorno & 
    "/" & mom & "/" & DateY & "  -  " & Time(Now)
       FormMain.FErase(x1,y1,x2,y2)
       FormMain.FDrawString(giorno,size,x1,y1,x2,y2,color)
    End Sub
    Però si nota in maniera fastidiosa il refresh della data ed ora, ecco perchè chiedevo una label trasparente.
    Siccome lo sfondo della form è un'immagine una label con un colore di sfondo ci starebbe male.

    Alla fine ho raggirato l'ostacolo scrivendo data e ora come testo di un'ImageButton.

    Nella Sub App_Start ho messo:
    VisData.Enabled = false

    e nella Sub GetDataTime invece di:
    FormMain.FErase(x1,y1,x2,y2)
    FormMain.FDrawString(giorno,size,x1,y1,x2,y2,color)
    ho messo:
    Visdata.Text = giorno

    non è una modo elegante ma non ho altre idee, l'unico controllo che mi permette di avere del testo su uno sfondo trasparente è l'ImageButton.
     
  5. Filippo

    Filippo Expert Licensed User

    Ciao micro,

    non sarà un modo elegante ma l' idea è molto buona.;)

    Ciao,
    Filippo
     
  6. Cableguy

    Cableguy Expert Licensed User

    Yes, but be sure to either catch the image button click event and code some "Ignore" function, or not to catch...but it could lead to some errouneaous behavior...
     
  7. maXim

    maXim Active Member Licensed User

    Girovagando in internet ho trovato questa libreria, AlphaMobileControls. Non è per niente male, anzi, inoltre permette di realizzare degli effetti eye candy veramente carini...
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice