Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   array of TStringgrid (https://www.delphipraxis.net/188069-array-tstringgrid.html)

matashen 28. Jan 2016 10:13

array of TStringgrid
 
Hallo zusammen,

ich such grad nach einer Lösung um auf verschieden Stringgrids zuzugreifen ohne ewig IF Abfragen zu bauen.

Ich habe mehrere Stringgrids die ich gerne über einen Index ansprechen würde

Momentan mach ich das zum Beispiel so

Delphi-Quellcode:
Add_Werte2Chart(werte_orte,Chart1.Series[0]);
Add_Werte2Chart(werte_fehlercodes,Chart1.Series[1]);
Add_Werte2Chart(werte_Materialnummer,Chart1.Series[2]);
...
...
Add_Werte2Chart(Quelle: TStringGrid; ZielSerie: TChartSeries);
ich würde das gern aber so lösen
Delphi-Quellcode:
const gridliste: Array[0..2] of TStringgrid=(werte_orte,werte_fehlercodes,werte_Materialnummer); //Geht aber nicht
...
...
Add_Werte2Chart(gridliste[i],Chart1.Series[h]);
Die const Definition akzeptiert mir aber der Compiler nicht, was ich bräuchte wär also wie ich in das Array die Pointer zu den Grids bekomme, ging das über das Handle


Wäre über eine Lösung dankbar

Gruß Matthias

HeZa 28. Jan 2016 10:49

AW: array of TStringgrid
 
Delphi-Quellcode:
var
  gridliste: array [0..2] of TStringGrid;

// zu einem von dir wählbaren Initzialisierungszeitpunkt
gridListe[0] := werte_orte;
gridliste[1] := werte_fehlercodes;
gridliste[2] := werte_Materialnummer;

Jumpy 28. Jan 2016 10:53

AW: array of TStringgrid
 
Mach es doch nicht über ein konstantes Array, sondern über ein dynamisches oder eine Objektliste.
Allerdings würde ich dann überlegen, ob du bei
Delphi-Quellcode:
Add_Werte2Chart(gridliste[i],Chart1.Series[h])
nicht einfach nur noch i und h übergibst, irgendwie sieht das so nämlich unschön aus.

Eventuell wäre noch eine Überlegung die Daten nicht aus dem StringGrid zu nehmen, sondern aus deiner ursprünglichen Datenquelle, mit der zuvor schon das StringGrid gefüllt wurde, sprich es macht evtl. Sinn die Datenhaltung von der GUI zu trennen.

Photoner 28. Jan 2016 10:58

AW: array of TStringgrid
 
Da war einer schneller :-)

Mein Vorschlag bläst in dasselbe Horn.

Mach einfach eine Variable daraus:
Delphi-Quellcode:
var
  Form2: TForm2;
  gridliste : Array[0..2] of TStringGrid;
und dann im FormCreate mit Leben füllen:

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
var
  i : Integer;
begin
  for I := 0 to 2 do
    gridliste[i] := TStringGrid.Create(Self);
  //oder deine [U]vorher erzeugten[/U] Listen werte_orte,werte_fehlercodes,werte_Materialnummer zuweisen
  //gridliste[0] := werte_orte;
  //...
end;

matashen 28. Jan 2016 11:28

AW: array of TStringgrid
 
OK, danke dafür

Direkt aus der Datenquelle geht nicht, bzw. nur sehr umständlich.

Das mit der Zuweisung zum Array reicht mir als Lösung.
Mehr Hirn wird ich da nicht mehr investieren.

Gruß Matthias


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