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/)
-   -   Delphi StringGrid: Gitterindex ausserhalb des gueltigen Bereichs (https://www.delphipraxis.net/10733-stringgrid-gitterindex-ausserhalb-des-gueltigen-bereichs.html)

Burning_Chrome 24. Okt 2003 08:56


StringGrid: Gitterindex ausserhalb des gueltigen Bereichs
 
Hi!

ich hab hier ein ziemlich eklatantes problem:

wenn ich in meinem project folgendes mache:

Delphi-Quellcode:
procedure TForm2.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  canselect:=false;
end;
dann krieg ich beim klicken auf das stringgrid ab und zu die meldung:

EInvalidGridOperation: Gitterindex ausserhalb des zulaessigen Berreichs

wobei ACol und ARow aber eindeutig ok sind.

der fehler tritt nicht auf, wenn ich das canselect weglasse... :wall:

irgendwer eine idee? :gruebel:

Best_Regards
Burning_Chrome

Berichtigung:
der fehler tritt nicht beim klicken sondern beim clicken+ tastehalten + mausziehen (also beginn eines multiselect vorgangs) auf - allerdings ist goRangeSelect auf False gesetzt
und selected wird von mir vorher auf -1 -1 -1 -1 gesetzt.

das ganze soll mir ein grid zeigen indem keine zelle blau markiert ist bzw. werden kann und das auch nicht durch klicken geaendert wird.
der haken ist wohl das setzen von selected :?:

gibts ne andere moeglichkeit die laestigen bleuen boxen wegzukriegen?

Sharky 24. Okt 2003 10:06

Re: StringGrid: Gitterindex ausserhalb des gueltigen Bereich
 
Zitat:

Zitat von Burning_Chrome
....gibts ne andere moeglichkeit die laestigen bleuen boxen wegzukriegen?

Hai Burning_Chrome,

Du könntest einfach das Zeichnen im OnDrawCell selber übernehmen und dort die Farben so festlegen wie Du möchtest:

Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
 if (ACol > 0) And (ARow >0) then
  begin
   with Sender as TStringGrid do
    begin
     Canvas.Brush.Color := Color;
     Canvas.FillRect(Rect);
   end;
  end;
end;

MeisterLampe 8. Jan 2013 19:48

AW: StringGrid: Gitterindex ausserhalb des gueltigen Bereichs
 
Auch wenn dieser Eintrag schon ewig alt ist. Ich habe die gleiche Fehlermeldung und möchte das ganze aber nicht über OnDrawCell lösen.

Meine Frage ist nun also: Warum kommt die Fehlermeldung und wie bekomme ich sie weg?

Best regards.

MeisterLampe 8. Jan 2013 19:50

AW: StringGrid: Gitterindex ausserhalb des gueltigen Bereichs
 
Zusatz:

Zitat:

Zitat von Burning_Chrome (Beitrag 78577)
Hi!
der fehler tritt nicht beim klicken sondern beim clicken+ tastehalten + mausziehen (also beginn eines multiselect vorgangs) auf
...
der haken ist wohl das setzen von selected :?:



Bei mir tritt der Fehler auf, wenn ich Reihe 1 und folgende anklicke. Bei Reihe 0 passiert nichts.

Keldorn 8. Jan 2013 21:06

AW: StringGrid: Gitterindex ausserhalb des gueltigen Bereichs
 
Hallo

zeig mal bitte mehr code.

du nutzt in deinem anderen Thread ja das hier
Delphi-Quellcode:
QUEUE_Grid.Selection := TGridRect(Rect(-1, -1, -1, -1));
erweitere mal das um
Delphi-Quellcode:
QUEUE_Grid.setFocus
und dreh mal am Mausrad ;-), da knallts auch, wenn Du onmousewheelXY nicht erweiterst.
Das setfocus geht nur einfacher, du bekommst das auch hin, wenn du in eine fixed-Zelle klicktsund dann am Rad drehst ;-)

Selber Zeichnen ist aber für mich die bessere Lösung, wenn du den Selektionsrahmen weghaben willst.

Gruß Frank


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