AGB  ·  Datenschutz  ·  Impressum  







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

Berechnung im Stringgrid

Ein Thema von Bruce86 · begonnen am 20. Mär 2007 · letzter Beitrag vom 20. Mär 2007
Antwort Antwort
Seite 2 von 2     12   
Bruce86

Registriert seit: 14. Apr 2006
Ort: Magdeburg
51 Beiträge
 
#11

Re: Berechnung im Stringgrid

  Alt 20. Mär 2007, 15:00
hi auf dem screenshot seht ihr dass dieses problem auch besteht wenn in den strings etwas steht zumal es ja bereits mit der if anweisung herausgenommen wurden dass wenn dort die zahl o oder '' steht er dann trotzdem rechnen soll
Miniaturansicht angehängter Grafiken
fehler_auch_dann_vorhanden_194.jpg  
  Mit Zitat antworten Zitat
Bruce86

Registriert seit: 14. Apr 2006
Ort: Magdeburg
51 Beiträge
 
#12

Re: Berechnung im Stringgrid

  Alt 20. Mär 2007, 15:10
TryStrToInt ist doch für boolean was will nützt an dieser stelle mit ner wahr oder falsch aussage?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#13

Re: Berechnung im Stringgrid

  Alt 20. Mär 2007, 15:22
Ich muss hier doch mal einen harten Kommentar geben:
"der Sourcecode ist Schrott, denn es wird völlig planlos auf irgendwelche Zellen zugegriffen"

Du hast ein Stringgrid und möchtest aus verschiedenen Zellen eine Zahl entnehmen
um damit zu rechnen.
Die Zellen können aber auch leer sein oder die Zellenposition ist ungültig.
Also braucht man eine saubere Funktion, die alle Fehler abfängt:
Delphi-Quellcode:
function GetFloatFromStringGrid(sg: TStringGrid; x,y:integer):extended;
begin
   Assert(Assigned(sg));
   // Bereichsgrenzen prüfen
   if (x<sg.FixedCols) or (y<sg.FixedRows) or (x >= sg.ColCount) or (y>=sg.RowCount) then
      raise Exception.CreateFmt('GetFloatFromStringGrid(%s,%d, %d) - Position ungültig', [sg.name, x, y]);

   try
      // Umwandlung
      result := StrToFloat(sg.cells[x,y]);
   except
      on E:Exception do
      begin
         E.Message := Format('Fehler in %s.Cells[%d, %d]'#13#10 ,[sg.name, x,y])+E.Message;
         Raise;
      end;
   end;
end;
Mit der obigen Funktion bekommt die Sache Hand und Fuss.
Du bekommst sofort eine saubere Fehlermeldung, die zeigt, wo's klemmt.
Andreas
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#14

Re: Berechnung im Stringgrid

  Alt 20. Mär 2007, 15:27
Vielleicht die Schleife nur bis
Delphi-Quellcode:
for z := 1 to Stringgrid1.rowcount - 1 do
  begin
laufen lassen.

String Grids fangen bei Zeile 0 an, wobei bei Dir Zeile 0 die Überschrift ist.

[edit] das muß ich shmia recht geben

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Hobby-Programmierer

Registriert seit: 19. Jan 2006
Ort: München
392 Beiträge
 
Delphi XE Starter
 
#15

Re: Berechnung im Stringgrid

  Alt 20. Mär 2007, 15:32
Hallo ...,
Zitat von Bruce86:
TryStrToInt ist doch für boolean was will nützt an dieser stelle mit ner wahr oder falsch aussage?
Schmarrn - nicht nur die Hälfte der Hilfe lesen
Zitat:
Konvertiert einen String, der ein Integer repräsentiert (in dezimaler oder hexadezimaler Form), in eine Zahl mit einem booleschen Erfolgscode.
...
TryStrToInt konvertiert den String S, der ein Integer repräsentiert (in dezimaler oder hexadezimaler Form), in eine Zahl und weist diese Value zu. Wenn S keine gültige Zahl enthält, gibt TryStrToInt false zurück; ansonsten true.
LG Mario
Mario
'Lesen Sie schnell, denn nichts ist beständiger als der Wandel im Internet!'
  Mit Zitat antworten Zitat
Bruce86

Registriert seit: 14. Apr 2006
Ort: Magdeburg
51 Beiträge
 
#16

Re: Berechnung im Stringgrid

  Alt 20. Mär 2007, 15:45
bei trystrtoint sag er mir aber "nicht genügend wirkliche parameter"!

Und sorry nur mal so ne frage wenn der code so schrott ist warum geht es dann für die erste zeile und nur nicht wenn ich mehrere fächer habe also wie du selber sagst shmia
Zitat:
Du hast ein Stringgrid und möchtest aus verschiedenen Zellen eine Zahl entnehmen
um damit zu rechnen.
genau da lag das problem und das hatte sich ja auch mit dem code von klaus01 gelegt nur eben dass er diese fehlermeldung ausgab!!!!

ich meine was kann ich dafür wenn wir dieses projekt bekommen! dachte nur in foren will man helfen! dafür sind sie ja eigentlich gedacht!!!!!!! um denen zu helfen die nicht so viel wissen haben! und sorry das meine stärken nicht im programmieren liegen das wir mit delphi arbeiten sollen und nicht mit vbs und dass wir nur codes neben dürfen die unser lehrer kennt und somit sind schon mal datenbanken xml etc pp verboten super den ganzen scheiß mit zeigern zu machen wisst irh wie toll das ist?! ich glaube schonihr wisst das und ich möchte doch nur um eure hilfe bitten! und ihr habt mir ja auch schon geholfen das will ich ja dmit gar nciht bestreiten nur was ich dann nicht verstehe ist das ihr dann irgendwie so kommt es grad rüber die hilfe für euch einschränkt! das ist etwas was ich nicht verstehe!!! udn ich weiß nicht ob ihr im informatik unterricht unterfordert gewesen seit udn ega was ihr gemacht habt 15 pkt hat ich meine ich habe auch 13 in info und bin damit zu frieden und ich kann eben auch nicht alles!!!
  Mit Zitat antworten Zitat
Hobby-Programmierer

Registriert seit: 19. Jan 2006
Ort: München
392 Beiträge
 
Delphi XE Starter
 
#17

Re: Berechnung im Stringgrid

  Alt 20. Mär 2007, 16:14
Hallo ...,
[OT]
meckern hilft aber auch nix! Ich hatte nie Informatik, über Sinn oder Unsinn von Hausaufgaben wurde hier schon oft debattiert, deswegen kann ich mir kein Urteil erlauben.
[/OT]

Zitat:
Unit
SysUtils

Syntax
function TryStrToInt(const S: string; out Value: Integer): Boolean;

TryStrToInt konvertiert den String S, der ein Integer repräsentiert (in dezimaler oder hexadezimaler Form), in eine Zahl und weist diese Value zu. Wenn S keine gültige Zahl enthält, gibt TryStrToInt false zurück; ansonsten true.
Wenn Du die Parameter einer Prozedur/Function nicht kennst einfach F1 oder den Prozedur/Funktionsnamen( eingeben und die IDE zeigt die geforderten Parameter in einem Hint-Fenster an!

LG Mario
Mario
'Lesen Sie schnell, denn nichts ist beständiger als der Wandel im Internet!'
  Mit Zitat antworten Zitat
Bruce86

Registriert seit: 14. Apr 2006
Ort: Magdeburg
51 Beiträge
 
#18

Re: Berechnung im Stringgrid

  Alt 20. Mär 2007, 16:21
ja ist doch auch nicht böse gemeint von mir! aber ich denke jeder kann sich vorstellen das wenn solche dinge die dann auch noch hilfreich sind damit meine ich jetzt wie datenbanken etc wenn das nicht erlaubt ist weil de rlehrer das net kann dann nervt das! ich will ja auch gar nicht meckern es ist einfach nur so dass ich dann solche aussagen nicht verstehen kann!!!

Ich meine ihr habt mir schon so oft geholfen und das find eich auch echt super aber ich kann doch nichts dafür das meine prozeduren manchmal nicht vollständig sind und fehler schleichen sich sicherlich auch bei den besten programmieren ein! sehen wir uns nur microsoft an oder????
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 11:57 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