Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: CortelliStefano - Aprile 02, 2012, 12:06:10 am

Titolo: Bugs DbGrid Lazarus 0.9.30(.4)
Inserito da: CortelliStefano - Aprile 02, 2012, 12:06:10 am
Un saluto a tutto il forum. Volevo sapere se qualcuno aveva incontrato problemi con Lazarus 0.9.30 e successive, in particolare con la DbGrid.

In particolare, dopo avere compilato con la nuova versione di Lazarus un mio progetto piuttosto complesso, ho notato questi problemi:

1) In un progetto composto da più form, il passare con Alt+Tab da una form all'altra (form secondarie dello stesso programma scritto con Lazarus) crea talvolta problemi con le dbgrid quando si ritorna nuovamente con Alt+Tab alla prima form, la quale sembra avere perso il focus, ed anche cliccando con il mouse la cella attiva non ha il contorno tratteggiato di rosso.

La situazione è difficile da descrivere, ma provando ad inserire dati nella griglia, ogni carattere va a sostituire il precedente così che vi è solamente l'ultimo carattere inserito nella cella.

Diventa difficile riportare la situazione alla normalità, in alcuni casi ci sono riuscito cliccando sulla form principale e poi riducendola ad icona, ma non sempre.

Trattandosi anche di situazioni un po' complesse (form principale con form secondarie) mi diventa anche difficile postare un esempio, ma forse qualcuno si è già imbattutto nello stesso problema?

Nessun problema sembrerebbe invece verificarsi se si passa da una form all'altra cliccando sulla Taskbar invece di usare Alt+Tab.

2) Non capisco se il problema sia solo nella DbGrid, o se invece riguardi più in generale la LCL, in quanto ho riscontrato un piccolo problema anche sul DbEdit, che sembra perdere le modifiche del campo corrente se mi sposto anche qui su un'altra form con Alt+Tab.

3) Le colonne intermedie che hanno ButtonStyle a cbsCheckBox e proprietà Visible = False, visualizzano comunque la CheckBox "in trasparenza" sulla colonna visibile successiva.

4) Con DbGrid complesse e AutoFillColumns = True, che a runtime modificano la larghezza delle colonne e soprattutto abilitano o disabilitano la proprietà Visible delle colonne, presentano talvolta problemi di larghezza se la proprietà ScrollBars è impostata a ssVertical: l'ultima parte dell'ultima colonna viene "mangiata", come se la griglia fosse più lunga e/o la ScrollBar verticale non ci fosse, la differenza di larghezza è esattamente pari alla larghezza della ScrollBar.

Se invece la proprietà ScrollBars è impostata a ssAutoVertical tutto funziona perfettamente.

Questi problemi si sono presentati già dalla versione 0.9.30 di Lazarus, sono rimasti nella 0.9.30.2 e nella nuovissima 0.9.30.4.

Con Lazarus 0.9.28.2 funziona tutto in maniera perfetta.

Al momento non ho purtroppo il tempo di costruire un progetto ad hoc di test per riprodurre il problema, né a descrivere l'errore in inglese sul bugtracker. Mi limito a tenermi la 0.9.28.2 che funziona egregiamente.

Se però qualcuno avesse il tempo e la voglia di fare qualche tentativo e/o di segnalare il problema, magari meglio circostanziato, sul bugtracker... forse la prossima versione di Lazarus sarà finalmente corretta.

Il problema si è presentato su Linux - i386 - GTK2. Non sono in grado al momento di installare la 0.9.30.4 su altri sistemi. operativi.

Grazie a chiunque riesca ad approfondire questi aspetti della nuova versione di Lazarus.

Buon inizio settimana a tutti,

Stefano