Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid: In einer Spalte die Eingabe einschränken (https://www.delphipraxis.net/158728-dbgrid-einer-spalte-die-eingabe-einschraenken.html)

Angel4585 28. Feb 2011 15:44

Datenbank: BDE • Version: 5.2.xyz • Zugriff über: Delphi Std DB Komponenten

DBGrid: In einer Spalte die Eingabe einschränken
 
Hallo,

ich habe ein DBGrid in welches direkt Daten eingegeben werden.
In der ertsen Spalte sollen nun nur die Zeichen 'A'-'Z' und '0'-'9' eingegeben werden können.
Wie realisiere ich sowas?
Mit dem OnKeyPress-Ereignis wie bei Eingabefeldern komm ich hier nicht weit, da in andern Spalten ja alles eingegeben werden können soll. :gruebel:

Bummi 28. Feb 2011 16:00

AW: DBGrid: In einer Spalte die Eingabe einschränken
 
SetText der Feldkomponente ...?

Angel4585 1. Mär 2011 09:19

AW: DBGrid: In einer Spalte die Eingabe einschränken
 
naja das SetText-Event dürfte für den Anwender etwas unbefriedigend sein, da der heutige Standard ja eigentlich so aussieht, dass man direkt ne Rückmeldung bekommt wenn was falsch ist.
Bei dem SetText-Event ist es ja so, dass der Anwender erst allesmögliche eingeben kann, sich freut dass es klappt und sich dann wundert, dass entweder garnichts oder was anderes ins Feld geschrieben wurde.

Ich habs jetzt über das KeyPress-Event des Grids gelöst:
Delphi-Quellcode:
procedure TtfMyForm.MyGridKeyPress(Sender: TObject; var Key: Char);
begin
if MyGrid.SelectedField = dmMyDataModule.ttMyTableMyField then
  begin
  Key := UpCase(Key); // damit man nicht ständig shiften muss :)
  if not (Key in ['A'..'Z','0'..'9','_','-','+',#8,#27,#13]) then // Steuerzeichen wie Backspace, ESC und Return zulassen
    begin
    Key:=#0;
    ShowInputHint;
    end;
  end;
end;
An der ShowInputHint bastel ich grad noch, da ich einen Hint am selektierten Feld anzeigen will mit den zugelassenen Zeichen, kein Plan wie das gehen soll :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz