AGB  ·  Datenschutz  ·  Impressum  







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

Property "Objects" im Stringgrid

Ein Thema von Hansa · begonnen am 9. Jan 2005 · letzter Beitrag vom 24. Feb 2005
 
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#11

Re: Property "Objects" im Stringgrid

  Alt 15. Feb 2005, 18:31
Hi,

ich habe ähnliche Fragen wie Hansi. Mir wurde schonmal nahe gelegt, TObject zu benutzen, aber bis jetzt sehe ich keinen wirklichen Sinn darin.

Ich habe ebenfalls ein Beispiel, bei dem ich gern wissen würde, ob das mit einen TObject besser umzusetzen wäre.

Ich will einfach alle Zeilen im Grid in Arrays gespeichert haben, damit ich diese per Speicherklick dann alle abarbeiten bzw speichern kann.

Meine Variante ist eine bissl umständlicher, aber funktioniert auch:

Delphi-Quellcode:
procedure TFmain.StringGridSetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String);
begin //Sobald ein feld editiert wird, wird die RowNummer im array a[x] gespeichert und die Änderungen im Label festgehalten
if posproof(strtoint(lgrid_change.Caption),stringgrid.Row) = false then
begin
setlength(a,stringgrid.RowCount);
zahl:=strtoint(lgrid_change.Caption);
a[zahl]:=stringgrid.Row;
lgrid_change.Caption:=inttostr(zahl+1);
end;
end;

//Die Funktion um die Position der reihe zu ermitteln

function TFmain.posproof(label_zahl,reihe:integer):boolean;
begin
if label_zahl > 0 then
  begin
    zahl:=1;
    while zahl < label_zahl do
      begin
      if reihe= a[zahl] then
      begin
      result:=true;
      exit;
      end
      else zahl:=zahl+1;
   end;
   result:=false;
end
else result:=false;
end;

//Das Speichern...

   zahl:=1;
   while zahl < strtoint(lgrid_change.Caption) do
   begin
   DM.SP_abrechnung_update.Params[0].AsString:= stringgrid.Cells[0,a[zahl]];
   DM.SP_abrechnung_update.Params[1].AsString:= stringgrid.Cells[1,a[zahl]];
   ...
   DM.SP_abrechnung_update.ExecProc;
   Dm.IBTrans.Commit;
   DM.IBTrans.Active := True;
   DM.Abrechnung.Open;
   zahl:=zahl+1;
   end;
Wie ihr sehen könnt fehlt mir noch die Prüfung ob ünberhaupt etwas geändert wurde. Kann man das über ein TObject lösen, sodass man den alten Zelleninhalt im TObject speichert und ihm beim Verlassen der Zelle mit dem neuen Zelleninhalt vergleicht?

Und könnte ich gleich die geänderten in den Arrays speichern und dann abarbeiten, ohne das ich die Anzahl der Veränderungen im Label speichere?


Schön Abend noch,

Plautzer
  Mit Zitat antworten Zitat
 


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 23:52 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-2025 by Thomas Breitkreuz