C'è un modo per scoprire quale riga è corrente in un TDBGrid?Trovare la riga corrente in Delphi TDBGrid
risposta
Non sono sicuro di aver capito la tua domanda, ma tenterò una risposta e forse puoi chiarire se questo non è ciò che stai chiedendo.
Poiché un TDBGrid è legato a un DataSource, la riga corrente è la stessa della riga corrente nell'origine dati. È possibile eseguire una query su DataSource, esaminando un valore di chiave primaria o la proprietà RecNo per determinare quale record è quello corrente.
Se non si desidera dipendere dall'origine dati per fornire un conteggio record e un record corrente (ad esempio perché si utilizza un cursore unidirezionale su un server remoto), quindi la tecnica di accesso alle proprietà del può essere utilizzato il controllo di rete sottostante.
Vedere this answer in una domanda StackOverflow simile.
Hai iniziato a dire la cosa corretta, ma il link che hai indicato mostra solo come ottenere il recordcount ma i più importanti (RecNo o Row o CurrentRow, ecc.) Non possono essere ottenuti direttamente dalla griglia. Scusa –
@Carlos: cosa ti impedisce di scrivere 'Riga: = TDummyGrid (MyDBGrid) .Row' invece di' RowCount: = TDummyGrid (MyDBGrid) .RowCount'? È necessario un minimo di pensiero, sai ... – mghie
Beh ... Voglio mostrare colori alternativi sulla mia Griglia, ma la proprietà ROW non è "persistente" tra le modifiche del cursore, cioè, se muovi il cursore in alto o in basso sulla griglia, modificando la selezione, la proprietà ROW cambia per TUTTE le righe visibili allo stesso tempo. Ho bisogno di un modo per identificare ogni riga individualmente, indipendentemente dalla riga selezionata. Ora sto usando il RecNo del set di dati collegato, ma su dataset unidirezionali, questa proprietà è inutile. Come puoi vedere, E 'RICHIESTO UN PICCOLO PECCATO DI PENSIERO, ma TU sei stato il pigro. Scusa ... –
Si può fare in questo modo:
1 - Definire una classe locale che è una copia di TDBGrid (questo vi permetterà di accedere metodi privati):
type
THackDBGrid = class(TDBGrid);
2 - Poi si può lanciare alla classe definita a livello locale, e tirare da metodi privati come in:
function TfrmMain.GetFieldValue(colnum : integer): string;
begin
Result := THackDBGrid(grdMain).GetFieldValue(colnum);
end;
Oppure, per ottenere la riga #:
function CurrentRowNumber: integer;
Result := THackDBGrid(grdMain).Row;
end;
Questa tecnica è utile anche in altre situazioni, ma non posso rivendicare il credito. I got it from here.
- 1. Come modificare un valore di cella in Delphi TDBGrid
- 2. UITextView ottiene la riga corrente
- 3. Trovare la lingua corrente dell'utente
- 4. come mantenere la riga corrente in jqgrid
- 5. Aprire una nuova riga sotto la riga corrente in Xcode
- 6. Fare tab per rientrare la riga corrente
- 7. Come trovare la risoluzione sotto Delphi XE5
- 8. SQL Trova la differenza tra riga precedente e riga corrente
- 9. Delphi ListView Trascina tutta la riga
- 10. Come trovare la posizione corrente della riga del puntatore del file in C?
- 11. Testo sublime 3: evidenzia la riga corrente
- 12. Cancellare la riga della console stampata corrente
- 13. Delphi - Ottieni l'indice corrente dell'articolo selezionato in TListView
- 14. VIM Evidenzia l'intera riga corrente
- 15. Come eliminare la riga corrente e aggiungere una nuova riga in Notepad ++?
- 16. Come trovare la posizione di traduzione corrente in Canvas?
- 17. Desidero trovare la posizione corrente dell'utente in php
- 18. Come trovare la directory di lavoro corrente in Bamboo?
- 19. Come posso eliminare la riga corrente in Emacs?
- 20. Come rimuovere la riga corrente dalla tabella in jQuery?
- 21. Ottenere la riga di codice corrente in Ruby
- 22. SqlDataReader - Come convertire la riga corrente in un dizionario
- 23. cancella fino alla fine della riga (esclusa la lettera corrente)
- 24. Recupera indice riga tabella della riga corrente
- 25. numero di riga corrente in Lua
- 26. Come trovare UIViewController corrente in Xamarin
- 27. Trovare numero di pagina corrente in Wordpress
- 28. Evidenziazione della riga corrente in TextMate 2
- 29. trovare la riga in DataTable con specifico id
- 30. Come ottenere il nome del metodo corrente in Delphi 7?
Penso che sia necessario fornire un po 'di chiarimenti sulla domanda, intendi la riga nella query o la riga in DBGrid? –