Delphi-PRAXiS
Seite 1 von 2  1 2      

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

Murcielago82 19. Apr 2006 18:56


Wert auslesen Stringgrid
 
Hallo,

ich möchte bei einem StrinGrid die Eigenschaften jeder Zelle in einem array EigenchaftenGrid speichern. Bei Farbe und Schrift gelingt es mir auch. Nur bekomme ich es einfach nicht hin auch den String der in der Zelle stecht mit auszulösen. Hat einer eine Lösung? Schonmal danke!

Delphi-Quellcode:
type
 TEigenschaften = Record
   Farbe : TColor;
   Schrift : TFont;
var
EigenschaftenGrid : array [0..n-1,0..n-1] of TEigenschaften;

Gruß
Murcielago

s-off 19. Apr 2006 19:12

Re: Wert auslesen Stringgrid
 
Hallo,

den Inhalt einer bestimmten Zelle eines StringGrids erhältst Du über

Delphi-Quellcode:
TStringGrid.Cells[Spalte, Zeile] => String

Murcielago82 19. Apr 2006 19:22

Re: Wert auslesen Stringgrid
 
Hallo danke erstmal,

allerdings will ich für jede Zelle die Eigenschaften wie Schrift, Farbe und eben auch den Wert in einem Array abspeichern.
dies mache ich mit der FArbe so:

Delphi-Quellcode:
type
  TEigenschaften = Record
   Farbe : TColor;
   Schrift : TFont;
   Wert : ????; //Was kommt hier als Eigenschaft für wert rein????
var
  EigenschaftenGrid : array [0..n-1,0..n-1] of TEigenschaften;
begin

for i:=0 to n do
  begin
    for j:=0 to n do
    begin
      EigenschaftenGrid[i,j].farbe := clWhite;
      EigenschaftenGrid[i,j].wert := ??? // wie lese ich hier den wert aus?
    end;
  end;
end;
Hier will ich aber auch den Wert auslesen und dann an die gleiche Stelle im Array den wert/string speichern.

Gruß
M.

fkerber 19. Apr 2006 19:26

Re: Wert auslesen Stringgrid
 
Hi!

Es sollte ein String sein, aber wo genau ist denn hier eigentlich das Stringgrid?

Ciao Frederic

Murcielago82 19. Apr 2006 19:32

Re: Wert auslesen Stringgrid
 
Hallo,
das StringGrid erstelle ich hier:
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
VAR outRect : TRect;
    Text   : String;
begin
  Text:= StringGrid1.Cells[ACol, ARow];
  outRect := Rect;
 
  StringGrid1.Canvas.Brush.Color:=EigenschaftenGrid[ACol, ARow].Farbe;
  StringGrid1.Canvas.Fillrect(Rect);
  if EigenschaftenGrid[ACol, ARow].Schrift <> nil then
    StringGrid1.Canvas.Font.Assign(EigenschaftenGrid[ACol, ARow].Schrift);
 
  DrawText(StringGrid1.Canvas.Handle,PChar(Text),length(Text),outRect,DT_Center    
    or
    DT_SingleLine);
end;

fkerber 19. Apr 2006 19:33

Re: Wert auslesen Stringgrid
 
Hi!

Naja, erstellen würde ich das nicht nennen. Das da ist ja schon eine Methode des Stringgrids, oder?

Ciao Frederic

Murcielago82 19. Apr 2006 19:37

Re: Wert auslesen Stringgrid
 
Nicht :-(
war der Meinung das ich bei Drawcell beschreibe wie das Stringgrid erstellt werden soll?

fkerber 19. Apr 2006 19:42

Re: Wert auslesen Stringgrid
 
Hi!

Nein, DrawCell ist eine Methode des bereits erstellten Stringgrids. In ihr beschreibst du, wenn man so will, das Aussehen.

Am besten postest du mal größee QuellCode-Abschnitte, damit man auch mal mitbekommt, wo die ersten Auszüge aufgerufen werden.
So ganz hab ich den Sinn auch noch nicht verstanden. Der Wert steht doch im Stringgrid drin, warum soll er auch noch in das Record rein?


Ciao Frederic

Murcielago82 19. Apr 2006 19:50

Re: Wert auslesen Stringgrid
 
So,
also den Inhalt einer Celle in ein einziges array zu speichern habe ich schon hinbekommen. Nun dachte ich das ich zu diesen, die Eigenschaften irgendwie abspeichern kann, somit also pracktisch ein array spare. Also alle informationen der Celle(x,y) an einer Stelle in einem array habe (Schrift, Hintergrundfarbe,und eben den String der in der Zelle ist).
Also an der Position array(x,y) nach Wahl einen der 3 Wahlmöglichkeiten auslesen kann.
Ich hoffe ich habe mich nciht allzu blöd ausgedrückt!

fkerber 19. Apr 2006 19:53

Re: Wert auslesen Stringgrid
 
Hi!

Also du willst für jede Zelle des Stringgrids ein Record haben, in dem Wert, Farbe und Schrift drinstehen?

Und wo genau hängst du jetzt?
Du hast es doch für Farbe und Schrift hinbekommen.
Der "Wert" ist ein String und wie du an ihn rankommst steht doch weiter oben auch...


Ciao Frederic


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:54 Uhr.
Seite 1 von 2  1 2      

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