* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Maggio 02, 2024, 10:38:42 am

Inserisci il nome utente, la password e la durata della sessione.

525 Visitatori, 0 Utenti

Autore Topic: "Rimpallo" di SetFocus  (Letto 5812 volte)

Nicola

  • Full Member
  • ***
  • Post: 201
  • Karma: +0/-0
"Rimpallo" di SetFocus
« il: Novembre 23, 2015, 11:51:33 pm »
Buona notte a tutti; ho questo problema:
presenza di StringGrid e di un oggetto Button;
al click sul Bottone si aggiunge una riga sulla StringGrid; dopo aver inserito
alcuni dati il Focus passa di nuovo al bottone, che dovrebbe aggiungere una
nuova riga alla StringGrid. Il fatto che quanto ho il comando "BtNewRow.SetFocus",
mi viene rimbalzato in automatico il focus di nuovo sulla StringGrid, presumo perchè
l'interprete lo trova giò cliccato.
C'e un metodo per azzerare lo stato del Bottone? stesso dicasi per la StringGrid.
Grazie per l'aiuto.
La disumanità del computer sta nel fatto che una volta
programmato e messo in funzione, si comporta in
maniera perfettamente onesta.

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2871
  • Karma: +20/-4
Re:"Rimpallo" di SetFocus
« Risposta #1 il: Novembre 24, 2015, 12:12:49 am »
buona notte ;)

non è che per caso esci dalla griglia con il tasto TAB?
magari è quello che ti sposta il focus
Imagination is more important than knowledge (A.Einstein)

Nicola

  • Full Member
  • ***
  • Post: 201
  • Karma: +0/-0
Re:"Rimpallo" di SetFocus
« Risposta #2 il: Novembre 24, 2015, 07:13:50 am »
no con il mouse
La disumanità del computer sta nel fatto che una volta
programmato e messo in funzione, si comporta in
maniera perfettamente onesta.

Diego1981

  • Full Member
  • ***
  • Post: 180
  • Karma: +0/-0
Re:"Rimpallo" di SetFocus
« Risposta #3 il: Novembre 24, 2015, 10:21:12 am »
buongiorno  ;D
anche io ho qualche dubbio sul TAB, mi sembrava ci fosse il modo di "paragonare" l'invio al TAB e magari nel premere il pulsante scatta il meccanismo che ti da problemi

Nicola

  • Full Member
  • ***
  • Post: 201
  • Karma: +0/-0
Re:"Rimpallo" di SetFocus
« Risposta #4 il: Novembre 24, 2015, 10:38:28 am »
Fra la griglia mi sposto da cella a cella con INVIO, poi quando arrivo alla cella all'estrema dx, premo il bottone con mouse
La disumanità del computer sta nel fatto che una volta
programmato e messo in funzione, si comporta in
maniera perfettamente onesta.

Diego1981

  • Full Member
  • ***
  • Post: 180
  • Karma: +0/-0
Re:"Rimpallo" di SetFocus
« Risposta #5 il: Novembre 24, 2015, 10:55:04 am »
magari è una stupidata, ma tu dai il focus alla riga e non alla cella, forse dovresti darlo alla cella?

Nicola

  • Full Member
  • ***
  • Post: 201
  • Karma: +0/-0
Re:"Rimpallo" di SetFocus
« Risposta #6 il: Novembre 24, 2015, 12:52:33 pm »
Provo a postare un po di codice:
qua premo il bottone che mi crea una nuova riga nella stringgrid
Codice: [Seleziona]
procedure TTfInseMovConta.BtNewRowClick(Sender: TObject);
begin
  inc(NumeroRiga);
  SgMovCon.RowCount:=NumeroRiga;
  SgMovCon.SetFocus;
end;

ora il comando passa alla stringgrid

Codice: [Seleziona]
rocedure TTfInseMovConta.SgMovConEditingDone(Sender: TObject);

begin
  cl:=SgMovCon.Col;rg:=SgMovCon.Row;
  case cl of
       0: ;
       2;
       3:begin
         dato:=UpperCase(SgMovCon.Cells[cl,rg]);
         .
         .
         .
         AggiornaSaldoConto;
         if ord (MovOk.Ctp[NumeroRiga].Segno)=0 then dato:='DARE'
                                                else dato:='AVERE';
         SgMovCon.Cells[cl,rg]:=dato;
         BtNewRow.Refresh;
         BtNewRow.SetFocus;
         end;
  end;

end;
ho omesso un po' di codice dei punti 0,1,2 giusto per non far confusione
La disumanità del computer sta nel fatto che una volta
programmato e messo in funzione, si comporta in
maniera perfettamente onesta.

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2871
  • Karma: +20/-4
Re:"Rimpallo" di SetFocus
« Risposta #7 il: Novembre 24, 2015, 12:58:01 pm »
in "AggiornaSaldoConto" ci sono solo calcoli o lavori anche con qualche controllo?

perché richiami BtNewRow.Refresh?

Prova in alternativa con
Form1.ActiveControl := BtNewRow;
Imagination is more important than knowledge (A.Einstein)

Nicola

  • Full Member
  • ***
  • Post: 201
  • Karma: +0/-0
Re:"Rimpallo" di SetFocus
« Risposta #8 il: Novembre 24, 2015, 03:04:57 pm »
per ora niente di che in "AggiornaSaldoConto" avevo messo solo uno ShowMessage; in effetti togliendolo
il problema scompare anche se non mi è chiara la motivazione logica (mia ignoranza)
BtNewRow.Refresh era una prova che avevo provato a fare, non conoscendo alla perfezione
tutte le funzioni pensavo che il Refresh "azzerasse" lo stato del button.
Non ho capito l'utilizzo di  "Form1.ActiveControl := BtNewRow;" andrebbe inserito al
posto di refresh?
La disumanità del computer sta nel fatto che una volta
programmato e messo in funzione, si comporta in
maniera perfettamente onesta.

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2871
  • Karma: +20/-4
Re:"Rimpallo" di SetFocus
« Risposta #9 il: Novembre 24, 2015, 04:26:36 pm »
impostare ActiveControl era una alternativa a BtNewRow.SetFocus
ho pensato che se fosse il form principale ad impostare il focus magari le cose cambiavano

per curiosità: dallo ShowMessage in AggiornaSaldoConto, uscivi con invio o col mouse?
Imagination is more important than knowledge (A.Einstein)

Nicola

  • Full Member
  • ***
  • Post: 201
  • Karma: +0/-0
Re:"Rimpallo" di SetFocus
« Risposta #10 il: Novembre 24, 2015, 04:39:46 pm »
col mouse su "ok"
La disumanità del computer sta nel fatto che una volta
programmato e messo in funzione, si comporta in
maniera perfettamente onesta.

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2871
  • Karma: +20/-4
Re:"Rimpallo" di SetFocus
« Risposta #11 il: Novembre 24, 2015, 05:20:35 pm »
beh, fosse stato con il tasto INVIO avremmo potuto indagare ma così non so cosa dire :)
Imagination is more important than knowledge (A.Einstein)

Nicola

  • Full Member
  • ***
  • Post: 201
  • Karma: +0/-0
Re:"Rimpallo" di SetFocus
« Risposta #12 il: Novembre 24, 2015, 10:42:38 pm »
Mettendo un po' di ordine su TabStop e tabOrder fra i vari elementi sembra che funzioni
correttamente; grazie a tutti per i consigli.
La disumanità del computer sta nel fatto che una volta
programmato e messo in funzione, si comporta in
maniera perfettamente onesta.

 

Recenti

How To

Utenti
Stats
  • Post in totale: 18784
  • Topic in totale: 2236
  • Online Today: 543
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 525
Total: 525

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.