* * * *

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 18, 2024, 02:57:01 am

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

644 Visitatori, 0 Utenti

Autore Topic: Viewing a memo field type in dbgrid  (Letto 5383 volte)

ffabio

  • Full Member
  • ***
  • Post: 217
  • Karma: +0/-0
Viewing a memo field type in dbgrid
« il: Maggio 26, 2016, 12:17:56 pm »
Ciao ragazzi sto cercando di visualizzare un campo memo in una dbgrid .

Ho un campo note, mi piacerebbe visualizzarlo tutto magari con le scol bar per poterlo
leggerlo.

Ho trovato questo codice : ma mi da errore Dec (R.Bottom, 2);
identifier not foud R ????

qualcuno ha qualche idea ???

Procedure TForm1.DBGrid1DrawColumnCell (Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
A: TRect;
begin
A: = Rect;
Dec (R.Bottom, 2);
if Column.Field = Table1Memo Then
begin
if not (in gdSelected State) then
DBGrid1.Canvas.FillRect (Rect);
DBGrid1.Canvas.TextRect (R, R.Left, R.Top,
Table1Memo.AsString, Integer (AlignmentFlags_WordBreak));
end;
end;

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Viewing a memo field type in dbgrid
« Risposta #1 il: Maggio 26, 2016, 01:20:26 pm »
Prova a rinominare la variabile a in r 😊
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3251
  • Karma: +12/-0
Re:Viewing a memo field type in dbgrid
« Risposta #2 il: Maggio 26, 2016, 01:20:55 pm »
Consiglio spassionato, evita come la peste i memo dentro una grid. Sono brutti da vedere e difficili da gestire. Piuttosto fai un cast del campo e fallo diventare un varchar di mille caratteri ad esempio.
Ieri è passato, domani è futuro, oggi è un dono...

ffabio

  • Full Member
  • ***
  • Post: 217
  • Karma: +0/-0
Re:Viewing a memo field type in dbgrid
« Risposta #3 il: Maggio 26, 2016, 02:03:01 pm »
xinyiman dici ???? ma riesco a fare la cella piu' corta su piu' righe e scorrevole ???

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3251
  • Karma: +12/-0
Re:Viewing a memo field type in dbgrid
« Risposta #4 il: Maggio 26, 2016, 02:06:10 pm »
Questo non te lo so dire. non ne ho mai avuto necessità. Altrimenti metti una TMemo fuori dalla griglia e la popoli al cambio di riga della griglia. Poi quando ottieni un onchange sulla TMemo automaticamente ne salvi il contenuto nel campo che visualizzi attraverso la memo. Non è elegantissimo ma fa il suo lavoro dignitosamente e così non ti serve neanche il cast
Ieri è passato, domani è futuro, oggi è un dono...

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Viewing a memo field type in dbgrid
« Risposta #5 il: Maggio 26, 2016, 10:29:38 pm »
Come è andato il cambio della variabile?
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

ffabio

  • Full Member
  • ***
  • Post: 217
  • Karma: +0/-0
Re:Viewing a memo field type in dbgrid
« Risposta #6 il: Maggio 27, 2016, 08:37:44 am »
Ciao Stilgar ma .... si quella era ok

poi mi dava errore su Table1Memo ..... :-\ :-\ :-\ :-\
e non saprei cosa vuole ... mi rimane sempre il dubbio di come sarebbe venuto.


Adesso provo seguire la strada di xinyiman .

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Viewing a memo field type in dbgrid
« Risposta #7 il: Maggio 27, 2016, 01:51:39 pm »
Citazione
poi mi dava errore su Table1Memo .....

Che errore ti dava?
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

Avogadro

  • Full Member
  • ***
  • Post: 217
  • Karma: +0/-0
Re:Viewing a memo field type in dbgrid
« Risposta #8 il: Maggio 28, 2016, 06:02:11 am »
" evita come la peste i memo dentro una grid. Sono brutti da vedere e difficili da gestire"

Concordo.

Personalmente io risolvo così: non metto i campi meno nella dbgrid, setto la medesima  a "read only" e per l'editing mi poggio su una form dove utilizzo l'oggetto memo per editare i campi in cui è richiesto molto testo.

Questo approccio si è rivelato molto piu' comodo che stare li a fare editing nelle stiminzite righe della dbgrid.

E' possibile gestire sia l'ampiezza, sia l'altezza delle righe di una dbgrid in maniera tale che il testo sia intermente visibile ed editabile a run-time  e se serve posso postare il codice che ho usato; purtuttavia questo approccio, seppur comodo, diventa pesanate quando si hanno molti record da scorrere , per applicazioni in remoto la cosa diventa ingestibile se non si ha una rete adeguata.

In sintesi: mettere sulla db grid solo i campi essenziali (e magari metterla read only per prevenire modifiche accidentali dei dati); per l'edit poggiarsi su una form che si apre a run time usando in essa i componenti dell' ide che sono molto comodi, memo* e scroll box compresi.

Unica difficoltà: ho problemi con il rich text; sulla libreria RX di Delphi c'era un buon componente rich text ma non trovo la versione per Lazarus.

Saluti


* per passare il testo dal campo al memo e viceversa basta "vedere" entrambi come una stringa di caratteri.

« Ultima modifica: Maggio 28, 2016, 06:05:01 am da Avogadro »

 

Recenti

How To

Utenti
  • Utenti in totale: 788
  • Latest: mastro
Stats
  • Post in totale: 18826
  • Topic in totale: 2242
  • Online Today: 653
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 644
Total: 644

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.