Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi wiedermal Stringgrid.... (https://www.delphipraxis.net/1867-wiedermal-stringgrid.html)

Madeleine 28. Dez 2002 16:28


wiedermal Stringgrid....
 
Hi an alle,
hier mal eine kleine Herausforderung an die Profis. Ich habe ein StringGrid mit einer Reihe FixedRows. Frage: Gibt es eine Möglichkeit, das man nur diese FixedCols, praktisch die erste Reihe anklicken kann,und das wenn man auf dem Rest klickt, nichts passiert?

thx for any hints!

Sebastian Nintemann 28. Dez 2002 17:26

Das was passiert hängt ja nur von deiner Auswertung des Klicks ab:

Delphi-Quellcode:
procedure TForm1.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  aX,aY : integer;
begin
  StringGrid1.MouseToCell(X,Y,aX,aY);
  if aX = 0  then
    StringGrid1.Cells[aX,aY] := 'hier wurde geklickt'
end;
In diesem Beispiel passiert nur was bei klick auf eine der Zellen in der linken Spalte (FixedCol), hoffe das hilft dir weiter.

Gruß, Sebastian

Madeleine 28. Dez 2002 17:32

hm, das hat natürlich geklappt, und ich habe da sonstwas für komplizierte Prozeduren erwartet, dabei geht es auch so einfach!
Danke! :spin:

Madeleine 28. Dez 2002 18:50

doch nicht
 
gibt es vielleicht auch noch eine andere Möglichkeit, das man eben wirklich nur bestimmte Zellen anklicken kann, und andere nicht? deine Lösung klappt im Zusammenhang mit meinem Programm leider einfach nicht :(

Sebastian Nintemann 28. Dez 2002 19:14

Was man auf eine ganze Spalte anwenden kann, kann man natürlich auch auf eine bestimmte Zelle anwenden :spin: :

Delphi-Quellcode:
if (aX = 0) and (aY = 0) then
  StringGrid1.Cells[aX,aY] := 'Nur hier darf geklickt werden'
Wars das was du gemeint hast?
Gruß, Sebastian

Madeleine 28. Dez 2002 20:35

naja, am besten wäre, wenn anstatt 'Nur hier darf geklickt werden' man wirklich nur dort klicken darf
bin schon die ganze Zeit über am wilden ausprobieren :coder: und das nicht ohne Folgen :freak:
denn dadurch, das man auf die anderen Felder noch draufklicken kann, werden bestimmte Variablen verändert, was ich nicht ganz ausschließen kann,zumindest ist es mir noch nicht gelungen :?

Sebastian Nintemann 28. Dez 2002 20:43

Hallo Madeleine, was ist denn das Problem? Wenn du explizit die Zellenkoordinaten abfragst kannst du doch genau bestimmen was passieren soll, mit obenstehendem Code wird ganz sicher nur die Zelle [0,0] angesprochen. Oder hast du vielleicht im OnMouseup oder OnClick-Event noch anderen Code stehen? Denn diese Abfrage im OnMouseDown Ereignis verhindert natürlich nicht, dass Code im OnClick-Event bei dem nicht auf bestimmte Zellen geprüft wird ausgeführt wird, dann müsstest du die Abfrage vor den Code im OnClick-Event durchführen.

Gruß, Sebastian

Madeleine 29. Dez 2002 18:22

das ist ja das komische, es gibt nur die MouseDown-Prozedur, und in die hab ich alles in diese if-Schleife gepackt, es ist wirklich mysteriös

Sebastian Nintemann 29. Dez 2002 19:05

Poste doch einfach mal den Code, dann wirds einfacher zu helfen :hi:

Gruß, Sebastian

Madeleine 1. Jan 2003 14:16

Liste der Anhänge anzeigen (Anzahl: 1)
Na gut, vielleicht findet ein Profi wie du auch meine Fehler wie EInvalidPointer und EInvalidAdress (oder so),muß irgendwas mit "hoehe" zu tun haben! das wär ganz super und ist total wichtig! :roll:
Gruß M


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 Uhr.
Seite 1 von 3  1 23      

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