![]() |
neue Zeile im Stringgrid
Hi,
vielleicht kann sich das mal jemand ansehen :
Delphi-Quellcode:
Es geht um ein Stringgrid, wobei die Spalten 1 und 4 zur Eingabe dienen. Mit Return soll von Spalte 1 in 4 gewechselt werden, sofern das in Spalte 1 gedrückt wird.
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin if key = #13 then begin if StringGrid1.Col = 1 then with StringGrid1 do begin if col = 1 then Col := 4 end else if StringGrid1.Col = 4 then with StringGrid1 do begin if ((StringGrid1.Row ) mod 2 <> 0) then begin StringGrid1.RowCount := StringGrid1.RowCount+1; StringGrid1.Row := StringGrid1.RowCount - 2; end else StringGrid1.Row := StringGrid1.RowCount - 1; StringGrid1.RowCount := StringGrid1.RowCount+1; Col := 1; end; end; end; Wird Return in Spalte 4 gedrückt, so soll folgendes passieren : abwechselnd soll man in die nächste Zeile gelangen oder aber zuerst wird eine Leerzeile erzeugt und dann noch eine Zeile in der der Cursor dann steht. Ungefähr in diesem Stil :
Code:
usw.
xxxx xxxx
xxxx xxxx leere Zeile xxxx xxxx xxxx xxxx leere Zeile Mit obigem Code sieht es so aus :
Code:
usw.
xxxx xxxx
xxxx xxxx xxxx xxxx leere Zeile xxxx xxxx xxxx xxxx xxxx xxxx leere Zeile Wo ist da jetzt der Fehler, daß eine Zeile zuviel angezeigt wird, bzw. die Leerzeile zu spät ? |
Re: neue Zeile im Stringgrid
wie ebend schon erwähnt:
Delphi-Quellcode:
raik
if ((StringGrid1.Row ) mod 2 <> 0) then begin
StringGrid1.RowCount := StringGrid1.RowCount+1; StringGrid1.Row := StringGrid1.RowCount - 2; end else begin StringGrid1.Row := StringGrid1.RowCount - 1; StringGrid1.RowCount := StringGrid1.RowCount+1; end |
Re: neue Zeile im Stringgrid
Geht nicht so einfach. Ich vermute, daß im RowCount intern irgendwas umgebogen wird, so daß es so nicht geht. Eine andere Frage ist, ob das MOD 2 so überhaupt stimmt. Die 3 ist von 2 nicht weit weg. Wenn dann also 2 nur an einer Stelle zu früh oder eben zu spät um 1 erhöht wird, dann geht es schon nicht wie gewünscht.
Ich vermute, einer muß helfen, der sich mit den Internas vom Stringgrid auskennt. Oder besser als die 2 Zeilen in der OH weiß, was durch Veränderung des RowCount-Wertes genau passiert. Wer das wohl weiß ? Mir fällt momentan niemand ein. :mrgreen: |
Re: neue Zeile im Stringgrid
hallo hansa,
kann dein ergebnis nicht nachvollziehen, vllt ist es wirklich schon zu spät :mrgreen: folgender code:
Delphi-Quellcode:
brachte bei mir folgendes ergebnis
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin if key = #13 then begin with StringGrid1 do begin if col = 1 then col:= 4 else begin if col = 4 then begin if rowcount mod 2 <> 0 then begin rowcount:=rowCount + 3 ; row:=rowcount-1; end else Begin rowcount:=rowcount + 1 ; row:=rowcount-1 end; end; col:=1; end; end; end; end;
Code:
xxx --- --- xxx
xxx --- --- xxx --- --- --- --- --- --- --- --- xxx --- --- xxx xxx --- --- xxx |
Re: neue Zeile im Stringgrid
Moin Hansa,
Zitat:
Da Du eine Pro Version hast, kannst Du nämlich selber nachsehen. ;-) |
Re: neue Zeile im Stringgrid
hallo chris,
so einfach ist das aber nicht nachzuvollziehen, ich habe auch kurz nachgeschaut, aber richtig schlau bin ich da auch nicht geworden :( raik |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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