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
 
#27

Re: Property "Objects" im Stringgrid

  Alt 23. Feb 2005, 19:43
Hi,

ich habe meine liebe zum array wieder gefunden

das ganze sieht nun so aus:

Delphi-Quellcode:
grid :array[1..20] of tstringgrid;
      grd:integer;

procedure TForm1.AddObjectToGrid(ACol, ARow : integer; nr : integer; st_grid:tstringgrid);
begin
  zelle := Tzelle.Create;
  zelle.nr := nr;
  zelle.reihe := arow;
  zelle.editiert:=false;
  st_grid.Objects[ACol, ARow] := zelle;
end;


grd:=1;
while grd < ibdataset1.RecordCount+1 do
begin
datum1:=ibdataset1.fieldbyname('ablesejahr').AsInteger;
NewTabSheet := TTabSheet.Create(PageControl1);
NewTabSheet.PageControl := PageControl1;
newtabsheet.Caption:= inttostr(grd);

grid[grd]:=tstringgrid.Create(newtabsheet);
grid[grd].Parent := newtabsheet;
//grid[grd].TableName:='grid' + inttostr(datum1);
grid[grd].name:='grid' + inttostr(datum1);
with grid[grd] do
....

  k:=0;
  While K < ibDataset2.RecordCount do
  Begin
   grid[grd].RowCount := grid[grd].RowCount +1;
   grid[grd].Cells[1,k+1]:=ibdataset2.fieldbyname('ablese_nr').AsString;
   grid[grd].Cells[2,k+1]:=ibdataset2.fieldbyname('ablesedatum').AsString;
   AddObjectToGrid(1, k+1, ibdataset2.fieldbyname('ablese_nr').AsInteger, grid[grd]);
   AddObjectToGrid(2, k+1, ibdataset2.fieldbyname('ablese_nr').AsInteger, grid[grd]);
   ibdataset2.Next;
   k:=k+1
  end;
...
Per keydown wird das objekt zellen.editiert auf true gesetzt und das will ich dann so auslesen:
Delphi-Quellcode:
 
for k:=1 to grd do
  for i :=grid[k].FixedCols to grid[k].ColCount do <--- Hier bringt Delphi die Fehlermeldung
    for j := grid[k].FixedRows to grid[k].RowCount do
       if zelle.editiert = true then
          begin
          zelle.editiert:=false;
          showmessage(inttostr(zelle.reihe));
          end
Wenn ich das jetzt ausführe, und nichts wurde geändert, dann kommt ne Fehlermeldung "Zugriffsverletzung...". Die kommt auch, wenn die Schleife einmal durchlaufen wurde.
Sieht jemand den Grund dafür?

Thx,

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 04:20 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