AGB  ·  Datenschutz  ·  Impressum  







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

Zahlen hochzählen

Ein Thema von Overclocker · begonnen am 26. Feb 2007 · letzter Beitrag vom 27. Feb 2007
Antwort Antwort
Seite 1 von 2  1 2      
Overclocker

Registriert seit: 10. Jan 2007
215 Beiträge
 
#1

Zahlen hochzählen

  Alt 26. Feb 2007, 19:04
Hallo,
versuch schon vergeblich, folgenden quellcode perfekt zu machen:

Delphi-Quellcode:
procedure TForm1.Timer3Timer(Sender: TObject);
var Wert:string;
i:integer;
x:integer;
begin
Wert := FloattoStr (4);
i:=3;
x:=i+1;
if stringgrid1.cells[x,3]=Wert then
if stringgrid1.cells[x,3]=Wert
then stringgrid1.cells[3,3]:='0';
end;

Der Code soll folgendes machen: Er soll in Zelle 4,3 anfangen und dann die anweisung ausführen,also wenn 4,3=Wert(also 4)ist, dann soll er schauen ob 5,3 auch gleich Wert(also 4)ist und dann soll in der zelle 3,3 der Wert 0 reingeschrieben werden.

aber irgendwie find ich nichts wie ich das automatisch weiterzählen lassen kann, dachte mit i+1 geht das, aber bin noch delpehi einsteiger

thx für die hilfe
  Mit Zitat antworten Zitat
Klaus01

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

Re: Zahlen hochzählen

  Alt 26. Feb 2007, 19:09
Hallo,

hat es eine bestimmten Sinn oder Zweck, warum Du das mit einem Timer
realisierst? Eine Schleife While/Repeat wäre hier wohl schneller.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Overclocker

Registriert seit: 10. Jan 2007
215 Beiträge
 
#3

Re: Zahlen hochzählen

  Alt 26. Feb 2007, 19:12
ich will/wollte das mit einem timer lösen, da ich damit schon einmal gearbeitet habe und ich mir dachte dass dies einfacher wäre

hättest denn vllt schnell nen code für die schleife??
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Zahlen hochzählen

  Alt 26. Feb 2007, 19:21
Ein Timer ist für Dinge gedacht, die sich periodisch wiederholen sollen. Der ist absolut fehl am Platz in deinem Fall.

Für eine Schleife, schau doch einfach mal in die Delphi Hilfe unter Delphi-Referenz durchsuchenfor, Delphi-Referenz durchsuchenwhile, Delphi-Referenz durchsuchenrepeat und schau dir das Anfänger-Tutorial auf http://dsdt.info an.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Klaus01

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

Re: Zahlen hochzählen

  Alt 26. Feb 2007, 19:25
Delphi-Quellcode:
for i:=4 to StringGrid1.RowCount -1 do
  begin
    if (i+1) <= StringGrid1.RowCount -1 then
      if StringGrid1[i,3] = StringGrid1[i+1,3] then
        StringGrid1[i-1,3] :='0';
  end;
So wird die ganze Tabelle durchsucht , in der Zeile i wird die Spalte 3 mit der aus Zeile i+1 verglichen.
Sind die Werte gleich wird i-1 mit 0 besetzt.

Wenn Du jedoch nur die Zeile 4 mit der Zeile 5 vergleichen willst, kannst Du dir die Schleife sparen.
So ganz habe ich es noch nicht erfasst was Du vorhast.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Overclocker

Registriert seit: 10. Jan 2007
215 Beiträge
 
#6

Re: Zahlen hochzählen

  Alt 26. Feb 2007, 19:29
in zeile 3 steht ein wert

sagen wir mal in der zelle D3 steht der wert 4 und in der zelle E3 steht auch der wert 4, erst dann soll das programm in zelle C3 den wert rauslöschen,also einfach eine 0 reinschreiben.

das soll das programm machen.also immer wenn 2x4er aufeinander folgen, soll der wert vor dem 1. 4er gelöscht werden
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Zahlen hochzählen

  Alt 26. Feb 2007, 19:50
Hi overclocker,

hier mal ein Bsp: wie man es machen könnte

Delphi-Quellcode:
procedure StringGridDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
      if ((StringGrid1.Cells[3,ARow] = '4')
      and (StringGrid1.Cells[4,ARow] = '4'))
      then StringGrid1.Cells[2,ARow] := '0';
end;
Uwe
Uwe
  Mit Zitat antworten Zitat
wurst_hunter

Registriert seit: 30. Dez 2006
21 Beiträge
 
Delphi 7 Professional
 
#8

Re: Zahlen hochzählen

  Alt 26. Feb 2007, 19:53
Probier das mal:

Delphi-Quellcode:
if stringgrid1.cells[x-1,3]=Wert then //für x-1 könntest du auch theoretisch auch i schreiben!!!
if stringgrid1.cells[x,3]=Wert
then stringgrid1.cells[3,3]:='0';
Ich hoffe das half!
Wurst! Was sonst?
  Mit Zitat antworten Zitat
Klaus01

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

Re: Zahlen hochzählen

  Alt 26. Feb 2007, 19:58
Das sollte der Code so ungefähr machen.

Delphi-Quellcode:
i:=4;
// wer setzen
While (i <= StringGrid1.RowCount -1) do // Start bei Zeile 4 gehe bis zum Ende der Zeilen
  begin
    if (i+1) <= StringGrid1.RowCount -1 then // i+1 kleiner als max Zeilen
      if (StringGrid1.cells[i,3] = Wert) and (StringGrid1.cells[i+1,3] = Wert) then
        begin
          i:=i+2;
          StringGrid1.cells[i-1,3] :='0';
        end
      else
       i:=i+1;
  end;
[edit] code korrigiert
Klaus
  Mit Zitat antworten Zitat
Overclocker

Registriert seit: 10. Jan 2007
215 Beiträge
 
#10

Re: Zahlen hochzählen

  Alt 26. Feb 2007, 20:15
hi,
also bis jetzt hat noch keine von den vorgeschlagenen codes funktioniert

bei klaus01 kommt:
Fehler] K8055.pas(501): Klasse besitzt keine Standardeigenschaft
[Warnung] K8055.pas(501): Vorzeichenbehaftete und -lose Typen werden verglichen - beide Operanden werden erweitert


wurst_hunters codes zeigt zwar keinen fehler an, löscht aber nicht den gegebenen wert :/


bei uwewo:
[Fehler] K8055.pas(515): Undefinierter Bezeichner: 'StringGrid1'
[Fehler] K8055.pas(515): ')' erwartet, aber Bezeichner 'Cells' gefunden
[Fehler] K8055.pas(521): Anweisung erwartet, aber Dateiende gefunden


ka wieso es bei ihm undef. bezeichner anzeigt, vllt liegts an den klammern?
  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 03:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz