AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringrid Selektion eines Feldes wegnehmen

Ein Thema von DelphiManiac · begonnen am 26. Nov 2008 · letzter Beitrag vom 29. Nov 2008
Antwort Antwort
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

Stringrid Selektion eines Feldes wegnehmen

  Alt 26. Nov 2008, 15:04
Hallo,

ich habe jetzt das Problem, dass ich bei der Zuweisung auf dem Textfeld eine Selektion des Wertes habe (siehe Screenshot).
Nach dem weiteren eingeben wird der vorherige Werte gelöscht, durch die Selektion.

Wie kann ich denn die Selektion wegnehmen?

Delphi-Quellcode:
procedure TMainGUI.JvStringGrid2SetEditText(Sender: TObject; ACol,
  ARow: Integer; const Value: string);
begin
  // Begrenzung des Wertes auf 16 Zeichen
  if ((length(Value) > 16) and (ACol = 1)) then
  begin
    JvStringGrid2.Cells[ACol,ARow]:= Copy(Value,0,16);
    // Jetzt hat das Feld den Fokus und wenn man weiter was eingibt, wird der Wert gelöscht
  end;

end;

Danke euch!
Miniaturansicht angehängter Grafiken
2008-11-26_150006_109.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Stringrid Selektion eines Feldes wegnehmen

  Alt 29. Nov 2008, 22:45
Hallo

Mit folgendem Code kannst du den Cursor in einer Zelle
(InplaceEditor) des TStringGrids positionieren.
Hierfür verwenden wir eine "Cracker" Klasse, da der InplaceEditor "protected" ist.


Delphi-Quellcode:
type
  TGridCracker = class(TStringGrid);
  
{...}

implementation

{...}

procedure SetCaretPosition(Grid: TStringGrid; Col, Row, X_Pos: Integer);
begin
  Grid.Col := Col;
  Grid.Row := Row;
  with TGridCracker(Grid) do
    InplaceEditor.SelStart := X_Pos;
end;

// Ermittelt die Caret-Position der aktuellen Zelle
function GetCaretPosition(Grid: TStringGrid): Integer;
begin
  with TGridCracker(Grid) do
    Result := InplaceEditor.SelStart;
end;

// Beispiel: Fokusiert die Zelle(1,3) und setzt den Cursor auf Position 5

procedure TForm1.Button1Click(Sender: TObject);
begin
  StringGrid1.SetFocus;
  SetCaretPosition(StringGrid1, 1, 3, 5);
end;
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz