AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Eigener Editor für TDBAdvGrid
Thema durchsuchen
Ansicht
Themen-Optionen

Eigener Editor für TDBAdvGrid

Ein Thema von Alphacodex · begonnen am 26. Aug 2009
Antwort Antwort
Alphacodex

Registriert seit: 16. Mär 2006
65 Beiträge
 
Delphi 2006 Professional
 
#1

Eigener Editor für TDBAdvGrid

  Alt 26. Aug 2009, 16:40
Datenbank: Firebird • Version: 2.5 • Zugriff über: Interbase
Hallo,

ich weiß nicht , ob es das richtige Forum ist - die Frage selbst hat nicht unmittelbar direkt was mit Datenbank zu tun, die Komponente auf die es sich bezieht ist aber ne Datenbank-Aware Komponente - ich vermute also dass hier am ehesten jemand Erfahrung damit hat...

Also es geht um folgendes:
Ich möchte, wenn der User in eine bestimmte Zelle mit den Datenbank-Daten klickt, dass er keinen Inplace-Editor bekommt sondern ein Form (pickfall) gezeigt wird (die Auswahl und Auswertung des Rückgabewerts ist nicht ganz trivial, deswegen ein eigenes Form). Es gibt bei der Komponente ein OnClickCell Ereignis, das immer dann ausgelöst wird, wenn der User in eine Zelle zum Bearbeiten klickt. Hier rufe ich per ShowModal mein Formular auf, dieses fragt ein paar Dinge vom User ab und schreibt schließlich den Rückgabewert in die Variable pickfall.fallid .

So bis hierher geht auch alles, aber ich schaffe es nicht, dass der Wert in der Variable pickfall.fallid in das Datenbank-Feld übernommen wird...

Hier erstmal der kritische Code:
Delphi-Quellcode:
procedure Tedstunden.grid_stundenClickCell(Sender: TObject; ARow, ACol: Integer);
var fallid : integer;
    pt : TPoint;
begin
  if (grid_stunden.Columns[ACol].FieldName = 'FALL_ID') AND (grid_stunden.PageMode) then begin
    if pickfall.fallid = -1 then begin
      getcursorpos(pt);
      pickfall.Top := pt.Y; pickfall.Left := pt.x;
      if pickfall.ShowModal = mrOK then begin
        fallid := pickfall.fallid;
         { TODO 1 -cBug : Er fügt den Wert nicht in der Zelle ein }
        grid_stunden.Options := grid_stunden.Options + [goEditing];
        grid_stunden.Cells[ACol, ARow] := inttostr(fallid);
        pickfall.fallid := -1;
      end;
    end;
  end;
end;
Normalerweise müsste grid_stunden.Cells[ACol, ARow] := inttostr(fallid); den ermittelten Wert in die Zelle eintragen... macht er aber nicht... Hat jemand ne Idee?? Hängt es evtl. irgendwie damit zusammen, dass der Grid DataAware ist und man nicht so einfach Werte in die Zellen schreiben darf?


Grüße
Codex
  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 13:16 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