Autor Beitrag
Zombimode
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26

Win 98, Win XP

BeitragVerfasst: Sa 04.12.04 11:43 
Moin

Ich möchte den Zeilen-Index herrausbekommen, wenn ich auf eine Zeile eines Stringgrids klicke. Ist das möglich? Wenn ja, wie?

danke im Vorraus
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 04.12.04 11:53 
Delphi Hilfe -> Methode MouseToCell von TStringGrid.
Zombimode Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26

Win 98, Win XP

BeitragVerfasst: Sa 04.12.04 12:02 
Ich habs zwar in der Hilfe nachgeschaut, aber das muss ich wohl übersehen haben.
Danke :)
Zombimode Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26

Win 98, Win XP

BeitragVerfasst: Sa 04.12.04 15:33 
sorry, dass ich da nochmal nachhaken muss, denn so ganz funzt das noch nicht

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.StringGrid4MouseUp(Sender: TObject; mbRight: TMouseButton;
  ssRight: TShiftState; X, Y: Integer);
var column, row :longint;
i :integer;
begin
     StringGrid4.MouseToCell(X, Y, Column, Row);
     for i := 1 to spieler.invgr do
        if spieler.Inventar[i].kat = 'Trank' then
           if spieler.Inventar[i].rowW = Row then
           begin
              itemverlust(spieler.Inventar[i],1);
              break;
           end;
end;


Erstens wird die Prozedur sowohl über die rechte als auch die linke Maustaste aufgerufen, obwohl ich doch mit mbRight die rechte Maustaste als Auslöser deklariert wurde. Das ist mir schon recht schleierhaft.
Noch viel verwunderlicher in meinen Augen ist, dass die zweite If-Abfrage nicht anspringt, obwohl rowW und Row beide 1 sind...
Was überseh ich hier?
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Sa 04.12.04 15:59 
Mit OnSelectCell bekommst du auch die Zeile und Spalte des Grids.

Zu deinem Source:
Ganz sicher, dass die Werte gleich sind? Bist du mit dem Debugger durchgegangen und hast die Werte zur Laufzeit geprüft?
Falls nicht: Fängt das Inventar-Array beim Index 0 an? Beim StringGrid wäre das nämlich so. Ansonsten vergleichst du zwei verschiedene Werte.
Zombimode Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26

Win 98, Win XP

BeitragVerfasst: Sa 04.12.04 18:36 
Hab das eben nachgeguckt, und tatsächlich: mein inventar-array fängt bei 0 an. So ist das, wenn man zwischen dem Programmieren eines Projektes 2 Monate Pause macht :roll:

Naja, jetzt hab ich noch das Problem, dass es dem Programm egal ist, mit welcher Maustaste man in den StringGrid klickt. Bestimmt TMouseButton nicht, mit welcher Maustaste die Prozdedur ausglöst wird?