AGB  ·  Datenschutz  ·  Impressum  







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

Eigenschaft von cells in Stringgrid

Ein Thema von Trygve08 · begonnen am 2. Jun 2006 · letzter Beitrag vom 3. Jun 2006
Antwort Antwort
Trygve08

Registriert seit: 2. Jun 2006
Ort: Otterberg
2 Beiträge
 
#1

Eigenschaft von cells in Stringgrid

  Alt 2. Jun 2006, 15:35
Hallo, habe dieses Forum jetzt erst entdeckt, genau das richtige.
Wir nehmen gerade das Sieb des Eratosthenes durch, bei dem man Primzahlen herausfindet, indem man vielfache wegstreicht. Die untenstehende Lösung liefert das nicht, aber ich bin auf ein Problem gestoßen, zu demn ich eure Hilfe brauche.
Bei der Zuweisung eines Cells-Wertes über StrToInt wird ein EConvert-Fehler angegeben,
d.h. der Zelleninhalt hat nicht den String-Inhalt, der dem Integerwert entspricht.
Hier ist der Quellcode:
unit TobiasDaniel;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;

type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i,j,k: integer;
begin
k:=0;
with StringGrid1 do
for j:=0 to colcount-1 do
for i:=0 to RowCount-1 do
begin
k:=k+1;
Cells[i,j]:=inttostr(k);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
i,k:integer;
begin
with stringgrid1 do
for i:=0 to colcount-1 do
for k:=0 to rowcount-1 do
begin
begin
if (strtoint(cells[i,k])mod 2 =0) or (strtoint(cells[i,k])mod 3 =0) or (
strtoint(cells[i,k])mod 5 =0) or (strtoint(cells[i,k])mod 7 =0)then cells[i,k]:='';
cells[2,1]:='2';
cells[3,1]:='3';
cells[5,1]:='5';
cells[7,1]:='7';
cells[1,1]:='';
end;
end;
end;
end.

Dass i und k zweimal vorkommen, ist nicht entscheidend.
Bereits eine Zuordnung Zahl := StrToInt(Cells[i,k]) löst die gleiche Fehlermeldung aus,
Zahl hat den Typ Integer.

Weiß jemand Hilfe?
Angehängte Dateien
Dateityp: exe project1_162.exe (250,0 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#2

Re: Eigenschaft von cells in Stringgrid

  Alt 3. Jun 2006, 14:51
in Button2Klick musst du i und k vertauschen, dann sollte es klappen (cells[zeile, spalte])
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Eigenschaft von cells in Stringgrid

  Alt 3. Jun 2006, 17:10
Herzlich willkommen in der Delphi-PRAXiS.

Du hast wahrscheinlich ein StringGrid mit RowCount = ColCount, so dass dir nicht auffällt, dass du die Zellen im event handler für Button1 falsch adressierst. Auch die Vergabe besserer Namen schützt vor solchen Fehlern:

Delphi-Quellcode:
procedure TMainForm.InitButtonClick(Sender: TObject);
var
  iCol, iRow: Integer;
begin
  with StringGrid do
    for iRow := 0 to Pred(RowCount) do
      for iCol :=0 to Pred(ColCount) do
        Cells[iCol, iRow] := IntToStr(Succ(iRow * ColCount + iCol));
end;
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Trygve08

Registriert seit: 2. Jun 2006
Ort: Otterberg
2 Beiträge
 
#4

Re: Eigenschaft von cells in Stringgrid

  Alt 3. Jun 2006, 23:39
Vielen Dank für die Tipps, ich bin dann selbst drauf gekommen, als ich die angehängte exe-Datei ablaufen ließ. Er akzeptierte '' nicht als Integerwert. Anders als bei Strings, bei denen der leere String als null interpretiert wird, kann die Funktion StrToInt mit dem leeren String nichts anfangen, erkennt ihn nicht als Integerwert. Durch Setzen einer '0' ist das Problem zu beheben.
  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 20:45 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