Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - StringGride Zelle erfragen


maniac_89 - So 27.02.05 15:01
Titel: StringGride Zelle erfragen
Hi,
ich wollte mal fragen wie man bei einem Stringgrid herausbekommen kann was für Breiten und Längen Werte die makierte Zelle hat.
Hier ein Beispiel:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Button1Click(Sender: TObject);
begin
//die Variable leange steht für die Länge 
//die Variable hoehe für die Höhe

//anstatt der Zahlen sollen dann eine Variablen die angeklickten Felder bestimmen
//stringgrid1.Cells [2,2] := 'Mahtematik';

stringgrid1.Cells [leange, hoehe] := 'Mahtematik';
end;



Ich hoffe ihr hapt meine Frage verstanden.

Steffen, Maniac_89

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.
Moderiert von user profile iconraziel: Topic aus Sonstiges verschoben am So 27.02.2005 um 17:23


Keldorn - So 27.02.05 16:14

Hallo


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
Spaltenbreiten und Zeilenhöhen
w:=stringgrid.colwidths[Spalte];
h:=stringgrid.rowheights[Zeile];

h:=Stringgrid.canvas.textheight(string);
w:=Stringgrid.canvas.textwidth(string);
oder alles zusammen mit textextend


Mfg Frank


maniac_89 - So 27.02.05 19:47

Ich galube du hast mich nicht richtig verstanden :?: ich wollte wisse wie man herausbekommen kann, auf welche Zelle der Benutzer geklickt hat.


Delete - So 27.02.05 19:51

guck dir mal das OnSelectCell-Ereignis des Stringgrids an, allerdings hab ich das aus deinem ersten Beitrag auch nicht herausgelesen


maniac_89 - So 27.02.05 20:59

Was soll ich damit machenn???


Delete - So 27.02.05 21:29

Wenn du das Ereignis mit Code ausfüllst, hast du mit den übergebenen Parameter ACol und ARow die entsprechenden Koordinaten der Zelle die ausgewählt wurde und das wollteste doch oder nicht?


maniac_89 - So 27.02.05 21:41

Kanst du mir vieleicht denn Quelltext dazu schreiben.


Keldorn - So 27.02.05 21:47


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  showmessage('Es wird gerade die Zelle '+inttostr(acol)+', '+inttostr(arow)+' ausgewählt');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  showmessage('Es ist gerade die Zelle '+inttostr(stringgrid1.col)+', '+inttostr(stringgrid1.row)+' ausgewählt');
end;

procedure TForm1.StringGrid1Click(Sender: TObject);
begin
  showmessage('Es ist gerade die Zelle '+inttostr(stringgrid1.col)+', '+inttostr(stringgrid1.row)+' ausgewählt');
end;

mit onselect solltest du in deinem Wissenstand vorsichtig sein. onclik wäre besser, da dann die Zelle schon ausgewählt ist.

Mfg Frank


Spatz - So 27.02.05 23:26

wenn du nur x/y koordinaten des klickpunktes der maus hast, dann schau dir mal die methode TStringGrid.mouseToCell (oder so, hab delphi grad nicht offen) an.