AGB  ·  Datenschutz  ·  Impressum  







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

neue Zeile im Stringgrid

Ein Thema von Hansa · begonnen am 4. Dez 2004 · letzter Beitrag vom 5. Dez 2004
Antwort Antwort
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

neue Zeile im Stringgrid

  Alt 4. Dez 2004, 20:45
Hi,

vielleicht kann sich das mal jemand ansehen :

Delphi-Quellcode:
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;
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.

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:
xxxx                xxxx
xxxx                xxxx
leere Zeile
xxxx                xxxx
xxxx                xxxx
leere Zeile
usw.

Mit obigem Code sieht es so aus :

Code:
xxxx                xxxx
xxxx                xxxx
xxxx                xxxx
leere Zeile
xxxx                xxxx
xxxx                xxxx
xxxx                xxxx
leere Zeile
usw.

Wo ist da jetzt der Fehler, daß eine Zeile zuviel angezeigt wird, bzw. die Leerzeile zu spät ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#2

Re: neue Zeile im Stringgrid

  Alt 4. Dez 2004, 20:50
wie ebend schon erwähnt:

Delphi-Quellcode:
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
raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: neue Zeile im Stringgrid

  Alt 4. Dez 2004, 22:32
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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#4

Re: neue Zeile im Stringgrid

  Alt 4. Dez 2004, 23:08
hallo hansa,

kann dein ergebnis nicht nachvollziehen, vllt ist es wirklich schon zu spät

folgender code:
Delphi-Quellcode:
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;
brachte bei mir folgendes ergebnis
Code:
xxx --- --- xxx
xxx --- --- xxx
--- --- --- ---
--- --- --- ---
xxx --- --- xxx
xxx --- --- xxx
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: neue Zeile im Stringgrid

  Alt 5. Dez 2004, 00:00
Moin Hansa,

Zitat von Hansa:
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.
Also mir fällt da jemand ein.

Da Du eine Pro Version hast, kannst Du nämlich selber nachsehen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#6

Re: neue Zeile im Stringgrid

  Alt 5. Dez 2004, 00:47
hallo chris,

so einfach ist das aber nicht nachzuvollziehen, ich habe auch kurz nachgeschaut, aber richtig schlau bin ich da auch nicht geworden


raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:50 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