![]() |
Zahlen hochzählen
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 :roll: thx für die hilfe |
Re: Zahlen hochzählen
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 |
Re: Zahlen hochzählen
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 :roll:
hättest denn vllt schnell nen code für die schleife?? |
Re: Zahlen hochzählen
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 ![]() ![]() ![]() ![]() |
Re: Zahlen hochzählen
Delphi-Quellcode:
So wird die ganze Tabelle durchsucht , in der Zeile i wird die Spalte 3 mit der aus Zeile i+1 verglichen.
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; 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 |
Re: Zahlen hochzählen
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 |
Re: Zahlen hochzählen
Hi overclocker,
hier mal ein Bsp: wie man es machen könnte
Delphi-Quellcode:
Uwe
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; |
Re: Zahlen hochzählen
Probier das mal:
Delphi-Quellcode:
Ich hoffe das half!
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'; |
Re: Zahlen hochzählen
Das sollte der Code so ungefähr machen.
Delphi-Quellcode:
[edit] code korrigiert
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; |
Re: Zahlen hochzählen
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? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 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-2025 by Thomas Breitkreuz