AGB  ·  Datenschutz  ·  Impressum  







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

StringGrid verliert Object bei goColMoving

Ein Thema von bogdan · begonnen am 29. Nov 2013 · letzter Beitrag vom 30. Nov 2013
Antwort Antwort
bogdan

Registriert seit: 15. Apr 2013
77 Beiträge
 
#1

StringGrid verliert Object bei goColMoving

  Alt 29. Nov 2013, 16:16
Ich verstehe den Zusammenhang nicht Zwischen Row und Col wieso das folgende Problem auftaucht:

Delphi-Quellcode:
xGrid.Cols := 7; // also 0 bis 6
xGrid.FixedRows := 1;
xGrid.FiexdCols := 0;
In eine StringGrid (xGrid) Komponente werden Daten (ca. 40 Datensätze mit ID-Nr) aus einer Query Komponente geschrieben. Und ein Integer Object (Datensatz IDNr) der Rows zugewiesen:
xGrid.Rows[i].Objects[i] := TObject(xQuery.Fields[j].AsInteger); Es gibt keinen Datensatz-Wert der bei 0 liegt.
Beim xGrid.OnClick Event wird der Integer-Wert des Objektes der angeklickten Row auch richtig angezeigt.

folgendes Problem habe ich aber beim verschieben der Columnen:
FromIndex=0 ToIndex=1, dann bekomme ich bei Row[1] den IntegerWert 0.
FromIndex=0 ToIndex=2, dann bekomme ich bei Row[1] und Row[2] den IntegerWert 0.
FromIndex=0 ToIndex=3, dann bekomme ich bei Row[1], Row[2] und Row[3] auch wieder den IntegerWert 0.
usw.

Verschiebe ich die Columne wieder an Ihre alte Position sind die Integer Werte wieder richtig.

Ich verstehe nicht wieso der Integer Wert des Row-Objektes nach dem verschieben der Cols nicht richtig angezeigt wird?
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#2

AW: StringGrid verliert Object bei goColMoving

  Alt 30. Nov 2013, 15:34
. Und ein Integer Object (Datensatz IDNr) der Rows zugewiesen:
xGrid.Rows[i].Objects[i] := TObject(xQuery.Fields[j].AsInteger);
Damit verwendest du die Eigenschaft Objects der Rows-Eigenschaft, die eine StringList für die Zellen der Row verwaltet. Dein Object wird also an die Col i gebunden.

Sollte das nicht besser heißen:
xGrid.Objects[0, i] := TObject(xQuery.Fields[j].AsInteger);
Damit wird das Object an die Col 0 der Row i und damit eingeutig an die Zeile gebunden.
  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 17:05 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