Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   EInvalidGridOperation nach scrollen im StringGrid (https://www.delphipraxis.net/48718-einvalidgridoperation-nach-scrollen-im-stringgrid.html)

Osse 29. Jun 2005 15:09


EInvalidGridOperation nach scrollen im StringGrid
 
Hallo,

in meinem Projekt habe ich ein Sringgrid, welches ich mit Werten befülle. Das befüllen geschieht mit Hilfe der Routine Grid.OnDrawCell. Es läuft auch alles soweit.
Ich kann ganz normal an der seite mit den ScrollBars herumspielen in dem ich die rechte Maustaste betätige. Sobald ich eine Zelle markiere und das Scrollrad an meiner Maus betätige, bekomme ich folgende Fehlermeldung.

"Im Projekt.. ist eine Exception der Klasse EInvalidGridOperation aufgetreten! Meldung: 'Gitterindex außerhalb des zulässigen Bereichs..' "

Hab keine Ahnung woran das liegen könnte. :gruebel:

Als Alternative, wenn der Fehler nicht zu beheben ist, würde ich sonst das Srcollrad für das Stringgrid ausschließen.
Geht das???

Vielen Dank

Keldorn 29. Jun 2005 16:03

Re: EInvalidGridOperation nach scrollen im StringGrid
 
Zitat:

Das befüllen geschieht mit Hilfe der Routine Grid.OnDrawCell
das würde ich gern mal sehen, das kann so nicht gehen :wink:

EInvalidGridOperation-fehler bekomm ich, wenn man die selection aufhebt (auf -1,-1,-1,-1 setzt) und außerhalb des grid am Scrollrad dreht. Ich habe mir irgendwann mal so beholfen:

Delphi-Quellcode:
procedure TForm1.StringGrid1MouseWheelDown(Sender: TObject;
  Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
  with Sender as Tstringgrid do
    begin
      //obere Reihe + angezeigte Reihen darf nicht größer sein, als die Gesamtreihen    
      if TopRow+Visiblerowcount<rowcount then toprow:=toprow+1
    end;
  handled:=true;
end;

procedure TForm1.StringGrid1MouseWheelUp(Sender: TObject;
  Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
  with Sender as Tstringgrid do
    begin
      if TopRow>fixedrows then toprow:=toprow-1
    end;
  handled:=true;
end;
mfg Frank

Osse 29. Jun 2005 18:10

Re: EInvalidGridOperation nach scrollen im StringGrid
 
Danke Frank, :thumb:

wieso beholfen ?? Funktioniert doch hervorragend :bounce2: .

Auch vielen Dank für die Hintergrundinfo, WARUM dies passiert.

Einen schönen Abend noch.

Gruß Oliver :hi:

turboPASCAL 19. Apr 2006 19:46

Re: EInvalidGridOperation nach scrollen im StringGrid
 
Hi,

Habe seit einiger Zeit das selbe Problem in meinem Progrämmchen. Die hier gezeigte Lösung ist für mich nicht so geeignet da ich gern die Selection selbst mit der Mausscrollen möche aber nicht wie in der Lösung die komplette "Stringgridseite".

Mal dumm gefragt, ist mit
Zitat:

die selection aufhebt (auf -1,-1,-1,-1 setzt)
dieStringGrid1.Selection gemeint (
also TGridRect) ?

Der Fehler tritt auf wenn ich meine Form mit einem Klick auf das TrayIcon mit FormX.Show wieder anzeigen lasse und dann mit dem Mausrad scrollen will.

Ein SetFocus hilft nix.

:gruebel:


Sourcecode: iAdressen (Passwortverwaltung)

turboPASCAL 20. Apr 2006 16:25

Re: EInvalidGridOperation nach scrollen im StringGrid
 
Also an dem/der Selection von Stringgrid kann es nicht liegen. Nachdem ich mir mal nach einem Fehler den Bereich ausgeben lassen habe:

Code:
---------------------------
Information
---------------------------
EInvalidGridOperation, Selection: 0,8,6,8
---------------------------
OK  
---------------------------
Der Fehler ist irgend wo /wie anders... :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 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