Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Stringgrid Rowselect (https://www.delphipraxis.net/58136-stringgrid-rowselect.html)

f4r 1. Dez 2005 19:43


Stringgrid Rowselect
 
Hi Leute,
ich weis das es scho n paar threads dazu im forum gibt, wurde draus aber net schlauf deswegen noch einmal! Gleichhier hier auch die Funktion

Wenn ich auf das Stringgrid klicke soll Rowselect true werden !
Mit dem Befehl
Stringgrid.options.gorowselect:=true;
konnt er irgendwie nix anfangen :(

Sinn und Zweck

habe drei grids
wenn ich alle von anfang an auf rowselect true setze dann hab ich immer drei balken das will ich net,
deswegen will ich wenn ich auf eines der grids klicke, das rowselect dieses grids auf true und die anderen beide auf false

bsp
Stringgrid.options.gorowselect:=true;
Stringgrid1.options.gorowselect:=fakse;
Stringgrid2.options.gorowselect:=false;


weis jemand dan e lösung

gruss
f4r

Keldorn 1. Dez 2005 19:46

Re: Stringgrid Rowselect
 
Hallo

Delphi-Quellcode:
Stringgrid.options:=Stringgrid.options + [gorowselect]; //an
Stringgrid2.options:=Stringgrid2.options - [gorowselect]//aus
Mfg Frank

f4r 1. Dez 2005 19:56

Re: Stringgrid Rowselect
 
danke erstmal
aber

das klappt irgendwie net so wie ich mir das vorstellen

also vielleicht war ich net deutlich genug
nochmal

hab 3 grids mit jeweils

wenn ich alle auf rowselect true setze und das programme bzw. das form aufrufe habe ich drei selectierte zellen in jedem grid die erste

ich will
a. von anfang an keine selektierte zelle
b. wenn ich ins grid klicke solle rowselect aktiviert werde
c. wenn ich das ggrid wechsel soll die vorige selektierte zelle nicht mehr selektiert sein und dem zweiten soll rowselect aktiviert werden und selbst verständlich die auf die klicke celle selektiert werden :D

hmmm so ich auf das war jetzt net zu kompliziert geschrieben

gruss
f4r

Keldorn 1. Dez 2005 20:28

Re: Stringgrid Rowselect
 
wenn du Stringgrid.options.gorowselect:=true; schreibst, gehe ich davon aus, das dort deine Probleme sind, weil der Syntax falsch ist.

Aktivier bei allen Grid rowselect. Wenn du keine zelle selektiert haben willst, such im Forum nach Hier im Forum suchennoselection. Ein grid hat kein "Hideselection" wie z.B. ein Listview, die Selektion wird immer angezeigt. Um die selektion bei den anderen Grids aufzuheben: reagier z.B. im Onexit und heb die Selektion auf. So könntest du aber auch mit col und row nicht mehr auf die Selektion zugreifen. Du könntest auch die Grids selber zeichen und die selektiert Zelle nur mit entsprechender Hintergrundfarbe und Focusrahmen zeichnen, wenn das Grid den Focus hat.

Lannes 1. Dez 2005 20:36

Re: Stringgrid Rowselect
 
Hallo,

@Keldorn: genau so, hab es gerade in der Nähe gehabt:

beim Start alle deselectieren
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Selection:= TGridRect(Rect(-1,-1,-1,-1));
StringGrid2.Selection:= TGridRect(Rect(-1,-1,-1,-1));
StringGrid3.Selection:= TGridRect(Rect(-1,-1,-1,-1));
end;
das folgende bei allen Grids entsprechend anwenden.
Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; Col, Row: Integer;
  var CanSelect: Boolean);
begin
StringGrid2.Selection:= TGridRect(Rect(-1,-1,-1,-1));
StringGrid3.Selection:= TGridRect(Rect(-1,-1,-1,-1));
end;

marabu 1. Dez 2005 20:48

Re: Stringgrid Rowselect
 
Vielleicht sollte man sich die Selection merken:

Delphi-Quellcode:
type
  PGridRect = ^TGridRect;

procedure TDemoForm.FormCreate(Sender: TObject);
begin
  StringGrid1.Tag := Integer(New(PGridRect));
  StringGrid2.Tag := Integer(New(PGridRect));
end;

procedure TDemoForm.FormDestroy(Sender: TObject);
begin
  Dispose(PGridRect(StringGrid1.Tag));
  Dispose(PGridRect(StringGrid2.Tag));
end;

procedure TDemoForm.StringGridEnter(Sender: TObject);
begin
  with Sender as TStringGrid do
    Selection := PGridRect(Tag)^;
end;

procedure TDemoForm.StringGridExit(Sender: TObject);
begin
  with Sender as TStringGrid do
  begin
    PGridRect(Tag)^ := Selection;
    Selection := TGridRect(Rect(-1, -1, -1, -1));
  end;
end;
Grüße vom marabu

f4r 1. Dez 2005 21:00

Re: Stringgrid Rowselect
 
danke lannes ich liebe dich :D

klappt alles sowie ichs mir vortsell :D

gruss
f4r

@ marabu

danke fuer deine bemühungen aber das passt scho so
und da ich sowieso keenn wort davon versteh was du da hingeschrieben hast weil ich ein anfanger bin lasses ich sowie es ist und bin zufreiden :D ist mein erstes großes Projekt vielleicht koennt ihr mir auch in zukunft n bissel unter die arme greifen :D


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