Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: tornu - 10 Novembre 2009, 23:58:53

Titolo: [RISOLTO] Allineamento dati TextBox
Inserito da: tornu - 10 Novembre 2009, 23:58:53
Ho una TextBox filtrata solo per poter digitare dei numeri, mi servirebbe implementare una funzione del tipo:

Se all'avvio del programma la TextBox è vuota la digitazione dei valori deve avvenire con allineamento a sinistra è premendo il tasto Invio devono allinearsi a destra.

Se all'avvio del programma la TextBox contiene già dei dati devono essere visualizzati allineati a destra, se dovessi modificarli all'atto della digitazione  che deve partire a sinistra cancellando i "vecchi", i nuovi dati verranno allineati a destra alla pressione del tasto Invio.

A forza di fare prove con le varie proprietà della TextBox mi sono ingarbugliato, urge il vostro aiuto.
Titolo: Re: Allineamento dati TextBox
Inserito da: Ceskho - 11 Novembre 2009, 11:23:54
Scusa, da dove prende i dati la textbox?

Comunque su per giù sarebbe:

Codice: [Seleziona]

bDato as boolean

PUBLIC SUB Form_Open()

IF fonte_dati = vuota THEN
   textbox1.aglinment = "Left"
   bDato = TRUE
ELSE
   textbox.aglinment = "Right"
   bDato = FALSE
END IF

END

PUBLIC SUB TextBox1_keypress()

IF (key.code = key.enter OR key.code = key.return) THEN
  IF bDato = TRUE THEN
    textbox1.aglinment = "Right"
  ELSE
    textbox1.aglinment = "Left"
  END IF  
END IF

SUB
Titolo: Re: Allineamento dati TextBox
Inserito da: tornu - 12 Novembre 2009, 22:10:01
Ci siamo quasi, rimane un problema.
Se la TextBox si presenta popolata da un dato, nel momento che ho il focus (con il click del mouse) per modificarlo o cancellarlo per inserirne uno nuovo il dato rimane allineato a destra, a me serve che nel momento che devo inserire un nuovo dato per sotituire o modificare quello esistente il tutto avvenga a sinistra e si allinei a destra solo con la pressione del tasto Invio.
Un pò macchinoso ma spero di essermi spiegato.

P.S.: La TextBox prende il dato selezionato in un altro form per mezzo di una varibile di tipo String, preciso che da programma non è mai vuota a meno che non cancelli volontariamente il contenuto, comunque la controllo con una condizione che impedisce che rimanga vuota.
Titolo: Re: Allineamento dati TextBox
Inserito da: Ceskho - 12 Novembre 2009, 23:22:16
ehm....non ho capito...
Titolo: Re: Allineamento dati TextBox
Inserito da: tornu - 13 Novembre 2009, 00:14:36
Forse così il concetto è più chiaro.

Ho disegnato tre TextBox per spiegare meglio quello che voglio ottenere, ma in realtà la TextBox è una sola.

La prima è la condizione iniziale, TextBox popolata allineata a destra

La seconda condizione deve avvenire quando modifico il dato (è deve avvenire con allineamento a sinistra)

La condizione finale (dato modificato allineato a destra) solo quando premo Invio.
Titolo: Re: Allineamento dati TextBox
Inserito da: dex - 20 Novembre 2009, 22:08:56
ciao

intercetta gli eventi lostfocus e gotfocus

lostfocus alinei a sinistra

gotfocus a  destra
Titolo: Re: Allineamento dati TextBox
Inserito da: tornu - 21 Novembre 2009, 00:48:30
No, con questi eventi non ci siamo.
Con LostFocus e sufficente che passi il mouse sul campo e si allinea a sinistra, a me serve che si allinei al click del mouse.

Con GotFocus l'allineamento a destra funziona, ma a me serve non quando perde il "focus" ma quando premo il tasto Invio/Enter.
Titolo: Re: Allineamento dati TextBox
Inserito da: dex - 21 Novembre 2009, 00:58:52
vedi se và bene
Titolo: Re: Allineamento dati TextBox
Inserito da: tornu - 21 Novembre 2009, 19:20:22
Era quello che volevo ottenere.  :ok:
Grazie desadex
Titolo: Re: Allineamento dati TextBox
Inserito da: dex - 26 Novembre 2009, 01:47:57
di nulla
anzi mi hai dato un'idea, in fase di modifica per una maggiore visibilità mi sposto i dati a centro text poi salvo e se ne vanno a destra.