Delphi zahl auf gerade überprüfen

AMD_Rulez

Lieutenant
Registriert
Feb. 2010
Beiträge
582
Hallo.

ich möchte in delphie in ein edit feld etwas eingeben. dies soll dann in einem Stringgrid in der spalte a ausgegeben werden. die nächste eingabe im edit feld soll in der spalte b ausgegeben werden. bei weiterer eingabe folgt wieder spalte a danach wieder b usw..

ich habe mir überlegt eine countervariable anzulegen die sich nach jeder eingabe um 1 erhöht.
wenn der wert von counter gerade ist also mit mod 2=0 dann soll in spalte a also [0,1] geschrieben werden. wenn der wert von counter ungerade ist soll in spalte [1,0] geschrieben werden. die nachfolgenden eingaben sollen logischerweise immer eine zeile später ausgegeben werden.


wie stelle ich das an?
danke:)
 
Wieso immer eins hochzählen? Du kannst genau so gut beim Schreiben ins erste Feld die Variable erhöhen und beim Schreiben ins zweite die Variable um eins erniedrigen und dann jeweils überprüfen, ob die Variable 0 oder 1 ist. Alternativ könnte man einen Boolean verwenden, falls es sowas in Delphi gibt.
 
Wo ist jetzt das Problem? Du weißt doch was du willst und wie du es machen willst, also mach es doch. Wie der Modulo-Operator in Delphi funktioniert, kannst du einfach googlen.
 
nein ich glaube du hast es falsch verstanden. ich habe nur 1 edit feld und 2 spalten im stringgrid in die ich jeweils abwechseln meine eingaben vom edit feld ausgeben möchte.
Ergänzung ()

momentan sieht mein code so aus:

counter:=counter+1;
if counter mod 2=0 then

StringGrid1.Cells[1,counter]:=(edt_eingabe.Text)
else
StringGrid1.Cells[counter,1]:=edt_eingabe.Text)
 
ich habe nur 1 edit feld und 2 spalten im stringgrid in die ich jeweils abwechseln meine eingaben vom edit feld ausgeben möchte.
Und wo ist da das problem, etwas in dieser Struktur anzufertigen? (Delphi kann ich nicht, deshalb nur die Struktur)

Variable a = 0

Bei Eingabe:
wenn a 0 ist: ausgabe in das erste Feld, a = 1
wenn a 1 ist: ausgabe in das zweite Feld, a = 0
 
AMD_Rulez schrieb:
Hallo.

ich möchte in delphie in ein edit feld etwas eingeben. dies soll dann in einem Stringgrid in der spalte a ausgegeben werden. die nächste eingabe im edit feld soll in der spalte b ausgegeben werden. bei weiterer eingabe folgt wieder spalte a danach wieder b usw..

Alternativ zu deiner Counter-Variablen:
Schreib dir eine Methode OnEdit1KeyPressA und OnEdit1KeyPressB (Mit Parametern wie in der Vorlage für OnEditKeyPressed).
In der ersten Version nimmst du den Inhalt von TEdit(Sender) und schreibst ihn in Spalte A des Grids und setzt TEdit(Sender).OnKeyPressed := OnEdit1KeyPressedB. In der zweiten Version schreibst du den Inhalt nach Spalte B und setzt TEdit(Sender).OnKeyPressed := OnEdit1KeyPressedB.

Dadurch sparst du dir die Counter-Variable und deren Auswertung und hast gleichzeitig die Gültigkeitsprüfungen und sonstige Unterschiede zwischen "schreibe in Spalte A" und "schreibe in Spalte B" in verschiedene Funktionen ausgelagert, was zu mehr Übersichtlichkeit im Code führt.
 
Zurück
Oben