Italian community of Lazarus and Free Pascal
Programmazione => Generale => Topic aperto da: Nicola - Febbraio 18, 2015, 10:32:31 am
-
Scusate, ma proprio non capisco; ho inserito un ComboBox con tre opzioni e a fianco una casella TEdit che nulla ha di collegato con la ComboBox; orbene alla selezione di un Items della ComboBox (OnSelect) ho previsto una serie di istruzioni; mentre all'evento OnEditingDone ho previsto altre istruzioni; non riesco a comprendere perche' al click sulla ComboBox, vengano eseguite anche le istruzioni della TEdit; in sostanza quando faccio click sul menu a tendina della Combo, mi varia anche la Tedit.
-
Cambiano l'ordine nella proprietà Tab, sembra il problema si risolva.
-
mentre all'evento OnEditingDone
Deduco che stai parlando dell'evento del TEdit. Inoltre deduco che il primo ad avere il focus è il TEdit (quindi secondo il programma, l'utente sta modificando il TEdit) e quando passi il focus al TCombobox (click su di esso), il tuo programma fa partire l'evento OnEditingDone del TEdit.
-
Si infatti è proprio cosi' e cambiando l'ordine di tabulazione il problema si risolve; mi rimane un quesito: come posso "imbrogliare" il programma segnalando che nella TEdit,
l'evento OnEditingDone non si è avverato?
-
prova se ti può essere di aiuto l'evento onexit del tedit visto che diversamente dal oneditingdone si verifica solo se si esce dal componente con il tasto tab
-
Con onExit va meglio; avrei un'altra domanda: ho inserito tramite la form una serie di dati (letti dalle caselle Edit); confermo e salvo su disco; ora senza chiudere la form, vorrei inserire un'altra serie di dati, come faccio ad azzera tutti gli eventi utilizzati?
in sostanza una sorta di pulizia prima di passare alla nuova fase di inserimento.
-
Be ho capito il problema, lo scrivo solo perchè se qualche nubbio come me si trova nella medesima condizione.... il fatto era che avevo assegnato una serie di istruzioni all'evento Form OnActivate; quando andavo a interrogare un'altra form per ricavare una serie di dati, alla chiusura di questa, le istruzioni di OnActivate della prima form si avveravano; ho risolto spostando il codice su OnCreate.