![]() |
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 |
Re: Wert auslesen Stringgrid
Hallo,
den Inhalt einer bestimmten Zelle eines StringGrids erhältst Du über
Delphi-Quellcode:
TStringGrid.Cells[Spalte, Zeile] => String
|
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:
Hier will ich aber auch den Wert auslesen und dann an die gleiche Stelle im Array den wert/string speichern.
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; Gruß M. |
Re: Wert auslesen Stringgrid
Hi!
Es sollte ein String sein, aber wo genau ist denn hier eigentlich das Stringgrid? Ciao Frederic |
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; |
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 |
Re: Wert auslesen Stringgrid
Nicht :-(
war der Meinung das ich bei Drawcell beschreibe wie das Stringgrid erstellt werden soll? |
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 |
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! |
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 |
Re: Wert auslesen Stringgrid
Hi,
schonmal danke für das Durchhaltevermögen. Ich bekomme den Wert einfach nicht ins Record. |
Re: Wert auslesen Stringgrid
Hi!
Die Frage ist und bleibt, wann du das machen willst. Rein theoretisch wäre ja ein einfaches belegen des Wertes (wie bei Farbe mit clWhite) so möglich:
Delphi-Quellcode:
Aber das wilst du wohl eher nicht, oder?
type
TEigenschaften = Record Farbe : TColor; Schrift : TFont; Wert : string; //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 := 'teststring'; // wie lese ich hier den wert aus? end; end; end; Ciao Frederic |
Re: Wert auslesen Stringgrid
Ahh ich glaube ich habe es jetzt!
Delphi-Quellcode:
Müsste doch so gehen oder?
type
TEigenschaften = Record Farbe : TColor; Schrift : TFont; Wert : string; //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 := StringGrid1.Cells[i,j]; // wie lese ich hier den wert aus? Fehlermeldung!!! end; end; end; Gruß Leider bekomme ich so folgende Fehlermeldung: Klasse besitzt keine Standardeigenschaft! |
Re: Wert auslesen Stringgrid
Hi!
Ja, so liest du ihn aus, genau. (Auch wenn ich denn Sinn immer noch nicht verstehe...) Ciao Frederic |
Re: Wert auslesen Stringgrid
Hallo,
habe grundlegend selbige Basis, allerdings würde ich gern die Eigenschaften des Stringgrids, welches immer wieder dynamisch via DrawCell erstellt wird zur Laufzeit, wie z.B. die Breite, Höhe (klar Spalten und Zeilen beeinflussen) Hintergrundfarbe, Textfarbe und selbstverständlich auch den eigentlichen String 1zu1 im meinem Export in dem ExcelSheet abbilden. D.h. ich habe i-wann zur Laufzeit ein Stringgrid, welches mir Daten anzeigt. Diese Daten variiren, da ich durch divesre Radio- und Check-Buttons den Inhalt des Stringgrids verändern kann, aber nach dem klicken auf den Export Button, und der Vergabe eines Dateinamens möchte ich in der Excel Datei die Farbgebung, die Grössen und Höhen der Zellen, sowie ALLES andere identisch wiederfinden. Kann mir da jmd Info drüber geben. Um Missverständnisse vorzubeugen, habe bereits alle Threads mit den Schalgwörten Stringgrid und Drawcell, sowie Excel Export durchschaut, leider ohne produktives Ergebnis. Vielen Dank! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz