Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - vuott

Pagine: 1 ... 742 743 [744] 745 746 ... 755
11146
Programmazione / Re: Tastiera virtuale
« il: 16 Novembre 2011, 13:29:35 »
Ho provato l'ultimo codice che hai postato ed avviene una cosa "strana", si avvia il form che contiene l'Embedder, viene visualizzata la tastiera
(onboard) all'interno del form, ma se sposto con il mouse il form in un'altra posizione la tastiera rimane ferma nella sua posizione.
Ne ho dedotto che la tastiera non è "inglobata" nell'Embedder ma che i due oggetti sono separati. ??? ???
Io uso:
Ubuntu 10.04 LTS
Gambas3 Rev.(svn)4249

...dunque.... sto provando l'ultimo codice (quello più veloce con le funzioni di Gambas) con Kubuntu-KDE: ho inglobato la calcolatrice, ed ho provato a spostare il form per verificare il problema da te sollevato. Posso confermarti che la calcolatrice resta inglobata regolarmente nel riquadro dell'Embedder, e si sposta coerentemente con il form all'interno (come detto) dell'Embedder. Ti segnalo (ed è una conferma in fondo) che questo mi avviene (ho infatti eseguito per curiosità nuovamente le prove) sia impostando gb.qt4, sia gb.gui, sia gb.gtk.

Il problema da te segnalato, sospetto sia derivato dal fatto che tu - probabilmente (dammi conferma o smentita) - non hai piazzato sul form almeno un Button. Il mio breve codice, infatti, prevede l'azione di inglobamento solo se clicchi su un tasto, che deve chiamarsi "Button1" (come da codice).
La circostanza che la tastierina a te si apra proprio sul form, suppongo sia del tutto casuale. E', però, semplicemente visualizzata lì su.
Se è così, allora fai così:
1) piazza un Button1 nel form;
2) lancia il programmino;
3) clicca sul tasto;
4) verificato l'effettivo inglobamento nel riquadro dell'Embedder, prova a spostare il form.
Puoi piazzare anche un Button2 per chiudere contemporaneamente la tastierina ed il programmino Gambas.

Fammi sapere.

11147
Programmazione / Re: Tastiera virtuale
« il: 15 Novembre 2011, 12:56:01 »
...ma ho elaborato una strada molto più breve e veloce:  :coder:
(qui non è più necessario wmctrl, né useremo più la Classe Process. Bisogna però attivare il componente: gb.desktop)

Codice: gambas [Seleziona]


Private dw As DesktopWindow  


Public Sub Form_Open()

  Shell "onboard"
      
End


Public Sub Button1_Click()

  Dim a As Integer


' Fra le finestre aperte sul Desktop...
    For Each dw In Desktop.Windows
    
 '...cerca quella avente nome "onboard"...
      If dw.name = "onboard" Then
 ' ...per estrarne l'Id (già in decimale !)...
        a = dw.Id
      Endif

   Next
  
 ' ...che va ad inserire in Embed:
   Embedder1.Embed(a)
  
End


Public Sub Button2_Click()  ' chiude "onboard"

' La finestra di "onboard" viene liberata dall'inglobamento:
   Embedder1.Discard()

' Viene nuovamente individuata...
   For Each dw In Desktop.Windows  
     If dw.name = "onboard" Then  
'  e quindi viene chiusa:
       dw.Close
     Endif  
   Next

End




...... di più "nin zò" !  ;D

11148
Aggiornamento:

Dopo alcuni mesi sono tornato sull'argomento ed ho fatto delle prove e verifiche sull'individuazione del ID di una finestra e sul funzionamento di Embed con Gambas 3 (che bisognerà avere cura di aggiornare); e rinvio a questa discussione dove ho descritto i risultati finalmente positivi (con risoluzione dei problemi sopra citati):

http://www.gambas-it.org/smf/index.php?topic=1923.msg21337#msg21337

Sono riuscito a trovare alcuni modi per individuare l' ID della finestra di un programma, che sono visibili in questa pagina:
http://www.gambas-it.org/wiki/index.php?title=Individuare_ed_estrarre_l%27ID_della_finestra_di_un_programma


Consultare anche questa pagina della WIKI: http://www.gambas-it.org/wiki/index.php/Embedder .

11149
Programmazione / Re: Tastiera virtuale
« il: 14 Novembre 2011, 20:28:34 »
....ho provato il tuo codice ma all'avvio mi da questo errore:
Not enough arguments
Mi manca forse qualcosa?  ???

...me lo dava anche a me fino a ieri questo medesimo problema, al di là del codice, che ho scritto solo oggi pomeriggio e che t'ho passato. Poi ieri sera ho fatto un aggiornamento di Gambas, ed oggi funziona. Forse il problema stava in qualche bug...  :-\  ..non saprei !  :-\
L'Embdder oggi mi funziona sia con KDE che con Gnome (poco fa - tra l'altro - ho embeddato con Mint-Gnome proprio la tastierina "onboard" !!!  :coder:  Quindi la cosa la potrai fare tranquillamente... se risolvi quel problema.)

Ho notato però che:
  • effettuando l'inglobamento (...embedding) con Mint-Gnome, questo non avviene con impostazione del componente gb.qt4, ma solo impostando il componente gb.gui oppure il componente gb.gtk ! (ma questo fatto solo i più esperti, rispetto ad un semianalfabeta come me, potranno spiegarti il perché);
  • effettuando l'inglobamento, invece, con Kubuntu-KDE, esso avviene anche con gb.qt4 !





Adde:
Dunque... sto provando ancora con l'Embedder: sto inglobando l'ira di dio !  Proprio di tutto !  :coder:  Mr Calamita ! :P Uno spassoooo !  :party:

11150
Programmazione / Re: Tastiera virtuale
« il: 14 Novembre 2011, 16:59:26 »
Ho la soluzione per te
(necessita ancora  ;D la presenza nel sistema del programmino wmctrl):

Codice: gambas [Seleziona]


Private h As Process

Public Sub Form_Open()

'....va be', metto qui a fini esemplificativi l'avvio di "onboard"
  h = Shell "onboard"

End

Public Sub Button1_Click()

 Dim id As Integer
 Dim listaId, s As String
 Dim ss As String[]
 Dim j As Byte

  Shell "wmctrl -p -l" To listaId

' per estrapolare l'ID di "onboard" raccolgo tutte le righe della variabile "listaId"
' distinguendole sulla base del carattere "nuova riga a capo":
    ss = Split(listaId, "\n")
 
    For j = 0 To ss.Max
' Se nella riga presa in considerazione è presente la parola "onboard"...
       If ss[j] Like "*onboard" Then
'...allora ne raccogliamo i caratteri che indicano l'Id in esadecimale della sua finestra...
         s = Replace(Split(ss[j], " ")[0], "0x", Null)
' ...e lo convertiamo in decimale:
         id = Val("&" & s)
' Per curiosità vediamo l'Id in console:
         Print id
       Endif
     Next

 ' Inserisco l'Id della finestra di "onboard" in "Embed":
     Embedder1.Embed(id)

End


Public Sub Button2_Click()  ' con questo puoi anche eliminare la tastierina

   h.kill

End


 :rolleyes:

Io l'ho provato con la calcolatrice KCalc su Kubuntu-KDE, e funziona perfettamente.

Fammi sapere.  :ciao:

11151
Ringrazio vivamente  :ciao: i miei amici Sotema e Milio per i loro interventi.

Faccio qualche prova al riguardo  :coder:  e faccio sapere....



Prove effettuate (nessuna gestione dei Group):

Soluzione di Sotema
Ovviamente funziona (si può utilizzare volendo anche Panel).
Ho provato, poi, la strada indicata da Sotema per ridimensionare in un solo momento non solo la proprietà Width, ma anche quella Height. Per fare ciò ho così proceduto:
Ho inserito prima un HBox, quindi un VBox, e in quest'ultimo un Button; impostando la gerarchia dei tre oggetti nella sequenza prima espressa, ossia: HBox-->VBox-->Button.
Per quel riguarda il codice ho fatto così:
Codice: gambas [Seleziona]

Public Sub soluzioneSotema()
 Dim btn As Button
 Dim vb As VBox

' ridimensiono VBox.Width (e quindi indirettamente anche Button.Width)
  For Each vb In HBox1.Children
    vb.Width = 10
  Next

' passo quindi a ridimensionare direttamente Button.Height
  For Each btn In VBox1.children
    btn.H = 10  
  Next
End


Ho ottenuto il contemporaneo ridimensionamento di entrambe le proprietà del Button.


Soluzione di Milio (con il .Tag)
Funziona. Rapida e semplice.
Provo a modificare entrambe le dimensioni del Button:
Codice: gambas [Seleziona]

Public Sub soluzioneMilio()
  Dim btn As Button

For Each btn In Panel1.Children
    If btn.Tag = "milio" Then
     btn.W = 60
     btn.H = 10
    Endif
  Next
End


Molto rapido.



Molto bene.  :)
Ancora grazie ad entrambi.   :ciao:

11152
Presupposti:
- allora... ho un contenitore qualsiasi, per esempio un Panel1, nel quale sono children 4 Button;
- questi 4 Button sono raggruppati in due Group aventi nomi diversi: per esempio: button1 e button2 appartengono al Gruppo: "gruppoUno", mentre button3 e button4 appartengono al Gruppo: "gruppoDue";

Problema:
- usando la sintassi For Each ... IN ...... vorrei modificare, per esempio, la proprietà Width di quei button in modo distinto, ossia soltanto dei button appartenenti ad un solo gruppo (ad esempio solo ai due button appartenenti al Gruppo chiamato "gruppoDue", lasciando inalterata quindi la Width dei button appartenenti al Gruppo "gruppoUno").  :rolleyes:
- vorrei gestire la cosa - se possibile - utilizzando la denominazione del Gruppo per coinvolgere in un botta sola i due button interessati, e non quindi scrivere i nomi di ciascuno dei due button.

Non so se mi sono spiegato....

11153
Programmazione / Re: Tastiera virtuale
« il: 12 Novembre 2011, 19:58:15 »
A me serve non solo visualizzarla ma deve interagire con il programma che sto realizzando...
Scusami, non sono stato preciso. Con "wmctrl la tastierina virtuale non viene solo visualizzata, ma funziona regolarmente: il comando wmctrl ti consente semplicemente di gestire la finestra della tastierina.
Se, infatti, provi a piazzare ad esempio una TextArea nel form ed a posizionare sullo schermo la tastierina virtuale con wmctrl, potrai vedere che cliccando sui suoi tasti  :coder: appaiono i caratteri sulla TextArea del programma.


Ho detto contenuta all'interno di un form...
...non ho capito i contenuti dei link che mi hai postato.
Da quel che so, lo puoi fare con Embed; ci sono varie discussioni al riguardo nel forum: prova a fare una ricerca.

11154
Programmazione / Re: Tastiera virtuale
« il: 12 Novembre 2011, 14:12:05 »
"all'interno di un form" io direi con l'Embedder ed il metodo Embed.


Se vuoi, invece, semplicemente visualizzarla sullo schermo:

Codice: gambas [Seleziona]

Public Sub BtnKeyb_Click()

Shell "onboard" Wait

' la tastierina virtuale viene posta in basso al centro dello schermo:
  Shell "wmctrl -r onboard -e 0,500,800,600,300"

End


Note:
1) Con il comando bash wmctrl la tastierina virtuale (in realtà: la finestra del programma da gestire) deve essere ovviamente aperta prima che operi il comando wmctrl (perché appunto questo agirà sulla sua finestra);
2) riguardo ai valori dell'esempio precedente:
  • 500 = coordinate x;
  • 800 = coordinate y;
  • 600 = lunghezza della finestra;
  • 300 = altezza della finestra.
Quindi, volendo, puoi anche far modificare la grandezza della tastierina virtuale. Se non vuoi, i due ultimi parametri dovrebbero essere posti a -1.


11155
Ahhh quindi c'è qualche differenza ^^


Anch'io ho coominciato con VB. Le differenze con Gambas ci sono: come ha ricordato, tra l'altro, Ceskho, Gambas non è un semplice un clone di Vb.

Io credo che ti conviene comunque dare uno sguardo alla documentazione ed al manuale (se fai una ricerca anche qui nel forum, puoi trovare il collegamento al sito dove puoi trovare la traduzione in italiano; anche se ormai si può dire che quel contiene sostanzialmente le cose basilari): almeno così eviti ed elimini i problemi, errori e dubbi iniziali.

11156

infatti su windows avevo dichiarato la variabile fuori dalle funzioni, sempre con dim.
Se provo a farlo con gambas mi da un altro errore, "Unexpected DIM alla linea 2 in FMain.class"

 :ciao:

...senza DIM in Gambas all'esterno:

spesso basta anche solo:

variabile As Integer (o quello che è)  <------------

Public sub.......()
etc.. etc...

11157
Presento un mio semplice programmino: ProntoMidi, vers. 1.0.3, con il quale è possibile ascoltare i file Midi.


Preciso che il programmino è semplicemente un'interfaccia che gestisce le funzionalità dei programmi Aplaymidi ed Arecordmidi. Pertanto conserva i limiti (anche esecutivi) di questi due programmi.

Funzionalità:
- ascolto di file Midi;
- registrazione di file Midi da altro dispositivo.

(Non dimenticate di creare le necessarie connessioni, effettuabili - se necessario - anche da ProntoMidi medesimo - con il vostro Softsynth impostando il suo numero di Id-Client e della porta [all'avvio di ProntoMidi l'impostazione iniziale automatica è: 128:0], e, se registrate, con il dispositivo dal quale registrare !)

Lo so...  :-[  ...bisognerà che qualcuno crei un sequencer Midi con le sole funzioni e risorse di Gambas senza programmi esterni di supporto. Ma per ora.....

Gli utenti iscritti a questo forum possono scaricare qui il sorgente allegato di ProntoMidi. Provatelo !  :coder:

11158
OpenBar / Re: Linuxday e Gambas
« il: 08 Novembre 2011, 10:15:59 »
Occasione per un incontro? aho...ma nessuno vuole organizzare nulla? :2birre: :2birre: :2birre:

Per smuovere un po' di gente, credo sia necessario organizzare una sorta di seminario/convegno, al quale può aggiungersi, ma a margine, la parte conviviale.
Se non c'è una parte tecnica, impegnata, seria (...chiamiamola così), non credo che le persone si muoverebbero.

11159
Programmazione / Re: Registratore vocale con G3
« il: 07 Novembre 2011, 12:20:54 »
comunque questa cosa è molto importante, aplay e arecord mi sembrano siano programmetti fondamentali per lavorare con le registrazioni vocali!!

...sì, però magari se "qualcuno"  :-[ si studiasse  :rolleyes: la gestione dei dati audio con le funzioni di ALSA, si potrebbe evitare di utilizzare programmi in C di supporto (per l'ascolto dei file audio già ci sono i due comandi di Gambas, che ho citato più sopra, richiamabili con il componente gb.sdl.sound; resterebbe da risolvere la registrazione dei suoni).



Aggiornamento:

http://www.gambas-it.org/wiki/index.php?title=Apertura_del_subsistema_PCM_in_modalit%C3%A0_Registrazione

11160
OpenBar / Re: Linuxday e Gambas
« il: 07 Novembre 2011, 12:07:40 »

A me piacerebbe un mondo ma sono lontano da tutti e purtroppo non posso spostarmi...

No Ceskho ?  :'(  ...no party !   :P

Pagine: 1 ... 742 743 [744] 745 746 ... 755