AGB  ·  Datenschutz  ·  Impressum  







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

Schleifen imStringGrid

Ein Thema von Peti · begonnen am 16. Feb 2005 · letzter Beitrag vom 19. Feb 2005
Antwort Antwort
Seite 1 von 2  1 2      
Peti

Registriert seit: 16. Feb 2005
9 Beiträge
 
#1

Schleifen imStringGrid

  Alt 16. Feb 2005, 19:58
HI!
Wie kann man in einem StringGrid, das man zu einer Wertetabelle programmierem soll, eine repeat-Schleife unterbringen, das in einer Zeile eingegebene Werte vom min Wert bis zum max Wert erscheinen, in einem Abstand der auch noch extra eingegeben wird ?
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Schleifen imStringGrid

  Alt 16. Feb 2005, 22:30
Meinst du sowas hier:
Delphi-Quellcode:
procedure Zahlen_in_StringGrid(MinWert, MaxWert: Integer; abstand: Cardinal);
var i,j: Integer;
begin
 if MaxWert<MinWert then begin
  i:= MaxWert;
  MaxWert:= MinWert;
  MinWert:= i;
 end;//if
 i:= minWert;
 while i<=MaxWert do begin
  j:= (i-MinWert) div abstand +1;
  StringGrid1.Cells[j, 3]:= IntToStr(i);
  i:= i+abstand;
 end;//while
end;
Das Beispiel füllt die Zeile 3 des StringGrid1 mit den Zahlen von MinWert bis MaxWert, wobei die vorherige Zahl immer um Abstand kleiner ist als ihn Nachfolger.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Peti

Registriert seit: 16. Feb 2005
9 Beiträge
 
#3

Re: Schleifen imStringGrid

  Alt 17. Feb 2005, 19:37
Nunja nicht ganz, naja eigentlich ist mein Geschick mit Delphi eher begrenzt

Code:
var
  Form1: TForm1;
   min, max, schritt,i:Integer ;

procedure TForm1.Button1Click(Sender: TObject);
begin
min:=0;
max:=0;
schr:=0;
min:=strtoint(E_min.text);
max:=strtoint(E_max.text);
schritt:=strtoint(E_Schrittweite.text);
repeat i:=min+scritt;
until i=max;
end;
Wie würde man das jetzt immer fortlaufend ausgerechnete in die obere Zeile übertragen können?
Und könnte man mit nur Grundwissen von Delphi die Anzahl der Spalten der Zeile so veränderlich gestalten, das immer nur so viele Spalten erscheinen, wie nur gebraucht wird um die Zahlen darzustellen?
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Schleifen imStringGrid

  Alt 17. Feb 2005, 20:03
Zitat von Peti:
Und könnte man mit nur Grundwissen von Delphi die Anzahl der Spalten der Zeile so veränderlich gestalten, das immer nur so viele Spalten erscheinen, wie nur gebraucht wird um die Zahlen darzustellen?
Ja, über die Eigenschaften Delphi-Referenz durchsuchenColCount und Delphi-Referenz durchsuchenRowCount des StringGrid kann man die Anzahl der Spalten bzw. Zeilen des StringGrid verändern.
Und was soll der Code von oben jetzt machen?
Der zählt doch nur eine Variable hoch, und macht nichts mit dem StringGrid.
Vielleicht solltest du den Code etwas ändern:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var min, max, schritt,i:Integer ;
begin
 min:=strtoint(E_min.text);
 max:=strtoint(E_max.text);
 schritt:=strtoint(E_Schrittweite.text);
 Zahlen_in_StringGrid(min, max, schritt);
end;
Dabei ist die Prozedur Zahlen_in_StringGrid die von oben aus meinem anderen Beitrag.
Evtl. musst du dort noch in der Zeile
StringGrid1.Cells[j, 3]:= IntToStr(i); die 3 durch irgendeine andere Zahl ersetzen, wenn die Zahlen in eine andere Zeile im StringGrid sollen.
Bin mir jetzt aber nicht so sicher, ob dies nun genau das ist, was du erreichen wolltest

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Peti

Registriert seit: 16. Feb 2005
9 Beiträge
 
#5

Re: Schleifen imStringGrid

  Alt 17. Feb 2005, 20:32
Kann man mit dem ColCount den StringGrid auch so verändern, das er erkennt das wenn nur fünf verschiedene Zahlen sind, es auch nur fünf Zellen anzeigt und wenn danach zehn Zahlen ausgegeben werden sollen er auch die zehn Zellen anzeigt?

Die Variable soll immer um die eingegebene Schrittweite weitergezählt werden,z.B wenn ich einen Zahlenraum von -4 bis 4 eingeben und eine Schrittweite von 2 soll in denn cells [1,0] -4; [2,0] -2;[3,0] 0 usw. bis zur 4 ausgegeben werden.
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Schleifen imStringGrid

  Alt 17. Feb 2005, 23:00
Da musst du dir erstmal anhand der Werte (Minimum, Maximum, Weite) ausrechenen, wieviele Zeilen oder Spalten du brauchst und dann ColCount und/oder RowCount auf die errechneten Werte setzen.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Peti

Registriert seit: 16. Feb 2005
9 Beiträge
 
#7

Re: Schleifen imStringGrid

  Alt 18. Feb 2005, 19:32
Ja, das ist mir klar. Mein größtes Problem ist eigentlich, wie ich die ausgerechneten Zahlen ins StringGrid bekomme.
Bsp.:
Die Variable soll immer um die eingegebene Schrittweite weitergezählt werden,z.B wenn ich einen Zahlenraum von -4 bis 4 eingeben und eine Schrittweite von 2 soll in denn cells [1,0] -4; [2,0] -2;[3,0] 0 usw. bis zur 4 ausgegeben werden.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: Schleifen imStringGrid

  Alt 18. Feb 2005, 20:02
Zitat von Peti:
Mein größtes Problem ist eigentlich, wie ich die ausgerechneten Zahlen ins StringGrid bekomme...
Und wo liegt dann das Problem ? Wenn der Wert errechnet iswt, dann schiebe ihn in die entsprechende StringGrid-Zelle. Zahlenwerte müssen in strings umgewandelt werden und sonst nichts. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
Peti

Registriert seit: 16. Feb 2005
9 Beiträge
 
#9

Re: Schleifen imStringGrid

  Alt 18. Feb 2005, 20:57
Das soll ja alles in einer repeat - Schleife passieren und wenn ich die repeat- Schleife habe, hab ich keine Ahnung wie ich das ins StringGrid krieg.
Das ich dsa mit der repeat -Schleife ausrechne und dann hinschreibe:
Code:
StringGrid.cells[i,0]:=floattostr(x);
das geht bei mir nicht, denn es passiert nichts.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: Schleifen imStringGrid

  Alt 18. Feb 2005, 21:05
wo schreibst du denn diese eine Code-Zeile hin ? Im FormCreate z.B. wirds wohl nichts nützen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:48 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