AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere StringGrids über Schleife befüllen?

Ein Thema von Stecky2000 · begonnen am 20. Feb 2013 · letzter Beitrag vom 20. Feb 2013
Antwort Antwort
Stecky2000

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

Mehrere StringGrids über Schleife befüllen?

  Alt 20. Feb 2013, 07:49
Hallo,

ich habe mal die Boardsuche gequält aber nichts passendes gefunden.
Zunächst zu mir, ich bin kein Programmierer, mache das nur so als Hobby und bitte von daher schon jetzt um Verzeihung wenn mein Code nicht so professionell aussieht

Also zu meinem Problem:

Ich habe eine Funktion, ich habe es hier exemplarisch kurz gehalten, der werden Daten übergeben und dann wird in das StringGrid eingetragen.

Delphi-Quellcode:
With StringGrid1 do
  begin
    Cells[1, Zeile] := 'Trage was ein';
    ... viel mehr
  end;
Das ist alles kein Problem. Nur, eigentlich möchte ich die Funktion dazu nutzen, 4 StringGrids nacheinander zu befüllen, mit verschiedenen Daten.
Ich könnte das so machen:

Delphi-Quellcode:

Case Variable of do
1: begin
     With StringGrid1 do
      begin
       Cells[1, Zeile] := 'Trage was ein';
       ... viel mehr
      end;
   end;
2: begin
     With StringGrid2 do
      begin
       Cells[1, Zeile] := 'Trage was ein';
       ... viel mehr
      end;
   end;

usw.
Aber dann würde ich die eigentliche Funktionalität vervierfachen...


Ich suche eher nach einer Möglichkeit es so zu mache, also eine Funktionalität für verschiedene StringGrids zu nutzen:

Delphi-Quellcode:
Function TReport.Test(Zeile, Strg_Nr: Integer): String;
begin
  With StringGrid[Strg_Nr] do
    begin
      Cells[1, Zeile] := 'Trage was ein';
      ... viel mehr
    end;
end;

Vielleicht habt Ihr ja einen einfachen Tipp...


Danke schon mal
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Mehrere StringGrids über Schleife befüllen?

  Alt 20. Feb 2013, 08:05
Delphi-Quellcode:
procedure TReport.SchreibeZeile(AGrid: TStringGrid; AZeile: Integer);
begin
  with AGrid do
  begin
    Cells[1, Zeile] := 'Trage was ein';
    ... viel mehr
  end;
end;

SchreibeZeile(StringGrid1, Zeile);
SchreibeZeile(StringGrid2, Zeile);
SchreibeZeile(StringGrid3, Zeile);
SchreibeZeile(StringGrid4, Zeile);

// oder:

function TReport.GetStringGrid(AIndex: Integer): TStringGrid;
begin
  case AIndex of
    0: Result := StringGrid1;
    1: Result := StringGrid2;
    2: Result := StringGrid3;
    3: Result := StringGrid4;
  else
    raise Exeption.Create('Bereichsüberschreitung');
  end;
end;

for i := 0 to 3 do
  SchreibeZeile(GetStringGrid(i), Zeile);
  Mit Zitat antworten Zitat
Stecky2000

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

AW: Mehrere StringGrids über Schleife befüllen?

  Alt 20. Feb 2013, 08:26
Danke Blup für deine schnelle Antwort.

Nun, die erste Lösung ist auf den ersten Blick das was ich nicht machen will da
Delphi-Quellcode:
SchreibeZeile(StringGrid1, Zeile);
SchreibeZeile(StringGrid2, Zeile);
SchreibeZeile(StringGrid3, Zeile);
SchreibeZeile(StringGrid4, Zeile);
sich alles 4 mal wiederholt.

Die zweite Lösung sieht da schon deutlich interessanter aus.
Ich werde mich mal damit befassen und es mal ausprobieren und würde mich jedenfalls melden.

Ich danke Dir erst mal dafür.

EDIT:
Ich sagte ja, ich bin kein Programmierer...
Wenn ich das jetzt so richtig verstehe, wird auch hier alles 4 mal wiederholt.

Mit der Zeile
Delphi-Quellcode:
for i := 0 to 3 do
  SchreibeZeile(GetStringGrid(i), Zeile);
rufe ich die folgende Funktion auf

Delphi-Quellcode:
function TReport.GetStringGrid(AIndex: Integer): TStringGrid;
begin
  case AIndex of
    0: Result := StringGrid1;
    1: Result := StringGrid2;
    2: Result := StringGrid3;
    3: Result := StringGrid4;
  else
    raise Exeption.Create('Bereichsüberschreitung');
  end;
end;
...und bei jedem "Result := " wird der auszuführende Code rein geschrieben.
Somit vervierfache ich ihn auch hier.

Leider ist auch das nicht die Lösung die ich suche.

Geändert von Stecky2000 (20. Feb 2013 um 08:58 Uhr)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: Mehrere StringGrids über Schleife befüllen?

  Alt 20. Feb 2013, 11:23
Nicht so ganz. GetStringGrid(i) liefert dir das StringGrid in das etwas eingentragen werden soll und zwar abhängig von dem Index i.
Das entspricht dem Pseudocode aus deinem ersten Beitrag:
With StringGrid[Strg_Nr] do

SchreibeInZeile wird das StringGrid übergeben (der Proz. ist es egal welches) und schreibt einfach an die gewünschte Stelle was rein.

Somit gibt es den Code nicht vierfach, oder ich verstehe nicht, was du meinst.
Da du in 4 Grids was schreiben willst, muss der Code dafür auch viermal ausgeführt werden.
Da das in einer Schleife passiert muss das aber nur einmal hingeschrieben werden.
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:55 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