AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

StringGrid Aufruf/Bezeichnung/Addressierung

Ein Thema von Stecky2000 · begonnen am 16. Aug 2008 · letzter Beitrag vom 17. Aug 2008
Antwort Antwort
Stecky2000

Registriert seit: 7. Mai 2008
Ort: Trebur
66 Beiträge
 
Delphi 2010 Professional
 
#1

StringGrid Aufruf/Bezeichnung/Addressierung

  Alt 16. Aug 2008, 21:51
Hi Fans,

ich wusste ehrlich gesagt nicht, wie ich den Titel für diesen Thread wählen sollte.
Ich hoffe, Ihr kommt mit meiner Frage klar.

Also, ich habe mehrere Proceduren die Berechnungen durchführen und in StringGrids schreiben.
Die Sache ist halt die, dass der Code für die Berechnung recht umfangreich ist.

Wenn ich also ein Formular (Dienstplan) für eine bestimmte Abteilung öffne und verändere, werden Berechnungen in ein bestimmtes StringGrid geschrieben.

Beispiel:

ich bearbeite Formular für Dienststelle "1", die Berechnungen sollen in StringGrid1 geschrieben werden.
ich bearbeite Formular für Dienststelle "4", die Berechnungen sollen in StringGrid4 geschrieben werden.

Da die Berechnungen umfangreiche Formeln, Schleifen etc. haben, hätte ich mir einen Aufruf des Ziel-StringGrids á la
StringGrid[x].Cells..... gewünscht. Das scheint es aber nicht zu geben.
Kennt jemand von Euch eine andere Lösung die mich den gleichen Code statt mit 4 x mit Case, einmal mit so eine Art
StringGrid[x].Cells verwenden lässt. x soll natürlich die Variable sein die den Wert von 1 bis 4 enthalten kann für entsprechend eine der 4 Abteilungen/StringGrids.

Ich hoffe auf Eure Hilfe.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#2

Re: StringGrid Aufruf/Bezeichnung/Addressierung

  Alt 16. Aug 2008, 22:36
Moin, Moin.
Gedanke: Für n Abteilungen rufst du deine Berechnungsprozedur n-mal auf und übergibst das jeweils gewünschte (Ziel-)grid als Parameter an die Berechnungsprozedur, dann landen die Ergebnisse optisch auch dort wo sie sollen.
Ralph
  Mit Zitat antworten Zitat
Stecky2000

Registriert seit: 7. Mai 2008
Ort: Trebur
66 Beiträge
 
Delphi 2010 Professional
 
#3

Re: StringGrid Aufruf/Bezeichnung/Addressierung

  Alt 17. Aug 2008, 09:08
Ich weis nicht, ob ich das richtig verstehe.......

Also nochmal von meiner Seite, wie es aussieht:

Ich habe für 4 Abteilungen, 4 StringGrids, die mittels PageControl einzeln angezeigt werden können.

Darüber habe ich ein Grid, welches die Werte der 4 Abteilungsgrids zu einem komprimierten Gesamtergebnis zusammen fasst.

Wenn ich einen Dienstplan von Abt 1 ändere, werden die Berechnungen in StringGrid1 erneuert, die anderen bleiben unangetastet.
Die Gesamtberechnung findet dann dennoch statt, weil sich ja die Inhalte von einem StringGrid geändert haben.

Die Berechnungen die in einem StringGrid 1 - 4 erfolgen, werden zum Teil in Schleifen aus mehreren StringGrids im Dienstplanformular errechnet und in das entsprechenden Ziel StringGrid geschrieben. Dort werden intern weitere Berechnungen durchgeführt und ebenfalls reingeschrieben.

Bisher habe ich nur einen Teil der Berechnung in StringGrid1 Programmiert.
Es wäre leicht, da das ganze auf Case 1 - 4 aufgebaut ist, den Code von Case 1 auch nacj Case 2, 3, 4 zu kopieren und dort die Zeilen: StringGrid1.Cells..... in StringGrid2.Cells..., StringGrid3.Cells etc. um zu benennen. Das erscrscheint mir aber "unsauber".

Deshalb die Suche nach einer Methode, das Zielobjekt, in diesem Fall "StringGrid[x]" an die Codezeile zu übergeben und somit für alle 4 Zielgrids nutzen zu können.
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#4

Re: StringGrid Aufruf/Bezeichnung/Addressierung

  Alt 17. Aug 2008, 11:08
Hallo,

leg die Daten außerhalb der StringGrids ab, z.B. in ein dreidimensionales Array.
MyArr : Array [0..3{Abt},0..10{Cols},0..100{Rows}] of String;//oder Integer ? dann kannst Du die Berechnungen/Summierungen als auch die Datenausgabe über den Index des Arrays realisieren.

Für die Datenanzeige nutzt Du dann nur ein Grid das jeweils auf der gewählten Registerkarte angezeigt wird, indem das Parent entsprechend gesetzt wird:
Delphi-Quellcode:
procedure TForm1.PageControlChange(Sender: TObject);
begin
//Daten berechnen, ins Array
StringGrid.Parent := PageControl.ActivePage;
//Daten ins Grid setzen
//z.B erste Abt., erste obere Zelle:
//StringGrid.Cells[c,r] := MyArr[PageControl.ActivePage.PageIndex,c,r];
//das natürlich in einer verschachtelten Schleife :-)
end;
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 Uhr.
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