Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TStringGrid in Delphi7 und XE (https://www.delphipraxis.net/176590-tstringgrid-delphi7-und-xe.html)

jan001 16. Sep 2013 08:24

TStringGrid in Delphi7 und XE
 
In Delphi7 funktioniert StringGrid1.Cells[] und Form1.StringGrid1.Cells[] einwandfrei. In XE4-5 werden die Werte mit Form1.StringGrid1.Cells[] nicht angezeigt. Gibt es eine Lösung?

Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
var
  n : integer;
begin
StringGrid1.RowCount:= 5;
StringGrid1.ColCount:= 3;
StringGrid1.Cells[0,0]:= 'LNr';
for n:= 1 to 4 do begin
  StringGrid1.Cells[0,n]:= IntToStr(n);
  StringGrid1.Cells[1,n]:= IntToStr(n*10);
  StringGrid1.Cells[2,n]:= IntToStr(n*100);
end;
end;

procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
Label1.Caption:= StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row];
Label2.Caption:= Form1.StringGrid1.Cells[Form1.StringGrid1.Col,Form1.StringGrid1.Row];
end;

DeddyH 16. Sep 2013 08:32

AW: TStringGrid in Delphi7 und XE
 
Und wenn Du die benannte Instanz weglässt wie in der Zeile darüber auch?

baumina 16. Sep 2013 08:34

AW: TStringGrid in Delphi7 und XE
 
Also wenn du mit .cells die Zellen füllen kannst, dann kannst du sie genauso auch wieder auslesen. Mir fällt auf, dass du OnMouseUp verwendest und dort X und Y nicht auswertest um die richtige Zelle zu erwischen. Was steht denn in Form1.StringGrid1.Col bzw. Form1.StringGrid1.Row so drin?

jan001 16. Sep 2013 08:50

AW: TStringGrid in Delphi7 und XE
 
Ohne Instanz ist OK. Das ist nur als Beispiel. Ich brauche aber mit Instanz - Anruf von anderer Unit.

DeddyH 16. Sep 2013 08:59

AW: TStringGrid in Delphi7 und XE
 
Stimmt die Instanz? Ist dort auch die korrekte Zelle markiert? Sollte man nicht lieber Logik und Darstellung trennen?

Daniela.S 16. Sep 2013 09:20

AW: TStringGrid in Delphi7 und XE
 
Zitat:

Ohne Instanz ist OK. Das ist nur als Beispiel. Ich brauche aber mit Instanz - Anruf von anderer Unit.
Unabhängig von dem Problem jetzt... dafür solltest du besser eine Public-Funktion machen, die du dann in der anderen Unit aufrufst. Ansonsten erzeugst du sehr viele Abhängigkeiten.

jan001 16. Sep 2013 09:48

AW: TStringGrid in Delphi7 und XE
 
In richtigem Programm habe ich public function gemacht, aber das Problem bleibt.

Klaus01 16. Sep 2013 10:01

AW: TStringGrid in Delphi7 und XE
 
Delphi-Quellcode:
procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Label1.Caption:= StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row];
  Label2.Caption:= Form1.StringGrid1.Cells[Form1.StringGrid1.Col,Form1.StringGrid1.Row];
end;
Woher bekommst Du denn hier die Spalten- und Zeilekoordianten her?
Solltest Du die X,Y Werte nicht in GridKoordinaten umwandeln und dann benutzen?

Grüße
Klaus

jan001 16. Sep 2013 10:07

AW: TStringGrid in Delphi7 und XE
 
Das braucht man nicht.
Es geht nur um Form1.StringGrid1.Cells und StringGrid1.Cells

DeddyH 16. Sep 2013 10:09

AW: TStringGrid in Delphi7 und XE
 
Hast Du meine Nachfragen aus #5 schon geprüft?


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