AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi OnExit Event einer einzelnen StringGrid Zell
Thema durchsuchen
Ansicht
Themen-Optionen

OnExit Event einer einzelnen StringGrid Zell

Ein Thema von Wonx · begonnen am 8. Jul 2009 · letzter Beitrag vom 8. Jul 2009
Antwort Antwort
Wonx

Registriert seit: 7. Jul 2009
4 Beiträge
 
#1

OnExit Event einer einzelnen StringGrid Zell

  Alt 8. Jul 2009, 08:48
Also mein Problem ist folgendes ich habe ein StringGrid in dem ich mit FormatFloat bestimmten Spalten bestimmte Formatierungen
zugewiese habe das klappt auch in soweit ganz gut, solange der Benutzer jedes mal schön Enter drückt da ich den ganzen Kramaux einfahc in das OnEnter Event von meinem StringGrid geschrieben habe.
Das Problem das ich habe besteht dadrin, das ich bis jetzt noch keine möglichkeite gefunden habe festzustellen ob der Benutzer auf
eine einzelne Zelle klickt bzw wann er diese wieder verlässt was bewirkt das der eingegeben Wert nicht wie gewollt formatiert wird.
Da ich aber mal meine gehört zu haben das es irgendwie möglich ist die einzelnen TEditfelder der einzelnen Spalten zuzugreifen dachte ich mir das es dann doch auch bestimmt möglich sit die einzlenen OnExit Events dieser Spalten-TEditfelder auszulösen ^^
Auch nach längerem suchen bin aber leider noch nicht so ganz auf die Idee gekommen wie man das genau machen könnte
bzw ob es überhaupt möglich ist -.-!
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#2

Re: OmExit Event einer einzelnen StringGrid Zell

  Alt 8. Jul 2009, 09:22
Vielleicht kannst du OnSelectCell missbrauchen? Einfach in der Formularklasse zwei Variablen FLastFocusedRow und FLastFocusedCell anlegen, die du in OnSelectCell auswertest und updatest.
Uli Gerhardt
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.477 Beiträge
 
Delphi 12 Athens
 
#3

Re: OmExit Event einer einzelnen StringGrid Zell

  Alt 8. Jul 2009, 09:24
OnGetEditText
OnSetEditText
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#4

Re: OmExit Event einer einzelnen StringGrid Zell

  Alt 8. Jul 2009, 09:36
Hallo,

ich würde die Formatierung nur bei der Darstellung in OnDrawCell vornehmen.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Wonx

Registriert seit: 7. Jul 2009
4 Beiträge
 
#5

Re: OnExit Event einer einzelnen StringGrid Zell

  Alt 8. Jul 2009, 10:18
Erstmal vielen dank für die schnelle Antwort^^

Also

Zitat von Lannes:
Hallo,

ich würde die Formatierung nur bei der Darstellung in OnDrawCell vornehmen.
das Problem wasich dabei hatte war das er mir die Zelle dann nach jeder eingabe der eines Einzelnen Zeichen formatiert(Es sei denn
ich hatte da irgendnen anderen Fehler drinne der es so aussehen lassen hat was ich acuh nicht ausschließe )

Mit on GetEdit Text sollte es Theoretisch funktioneieren, endspricht aber nicht 100% dem Zweck der sache da ich auch noch andere
Sachen, wie die Nagesproche Zelle farblich markieren etc..., machen wollte
Das gleiche Problem ergiebt sich demendsprechend auch bei OnSelectCell.
Ich werds warscheinlich auch erstmal so machen aber falls doch jemand weiß wie das TEdidfeld hinter Zelle als solches ansprechen kann wär das schon besser ^^
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#6

Re: OnExit Event einer einzelnen StringGrid Zell

  Alt 8. Jul 2009, 11:20
Hallo,

durch den Beispielcode werden Zahlen mit 2 Nachkommastellen nur bei den Spalten 2 und 4 im Grid rechtsbündig angezeigt, Text wird linksbündig ausgegeben, Fehleingaben werden sichtbar.

Es ist kein weiterer Code in anderen Events erforderlich.

Delphi-Quellcode:
procedure TForm1.StringGridDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var p : PChar;
    e : Extended;
begin
  if not (gdFixed in State) then
    if ACol in [2,4] then
      begin
      p := PChar(StringGrid.Cells[ACol,ARow]);
      if TextToFloat(p,e,fvExtended) then
        begin
        p := PChar(FormatFloat('#,##0.00 ',e));
        StringGrid.Canvas.FillRect(Rect);
        DrawText(StringGrid.Canvas.Handle,p,-1,Rect,DT_RIGHT);
        end;
      end;
end;
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  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 04:50 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