Einzelnen Beitrag anzeigen

Sturmrider

Registriert seit: 12. Mär 2006
30 Beiträge
 
#5

Re: StringGrid - Aktuelle Zeile löschen

  Alt 10. Mai 2006, 00:25
Okey, hier der Code (ich weiß, dass das mit dem doppelten type nicht so gedacht war, aber anders funktioniert es überhaupt nicht...d.h. kann ich noch nichteinmal das Prog. starten):
Delphi-Quellcode:
unit mspielplan;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Grids, Buttons, ExtCtrls, Printers, Menus; {Printers}

type
  TFSpielplan01 = class(TForm)
{[...]}
    StringGrid1: TStringGrid;
{[...]}
    BitBtnEintragLoeschen: TBitBtn;
    BitBtnSpeichern: TBitBtn;
    BitBtnLaden: TBitBtn;
    BitBtnDrucken: TBitBtn;
{[...]}
    procedure BitBtnEintragLoeschenClick(Sender: TObject);
    procedure BitBtnNeuerEintragClick(Sender: TObject);
    procedure BitBtnSpeichernClick(Sender: TObject);
    procedure BitBtnLadenClick(Sender: TObject);
    procedure BitBtnDruckenClick(Sender: TObject);
{[...]}
   private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  FSpielplan01: TFSpielplan01; spalte, zeile, a, b, c: Integer;

implementation

uses mformular, mspielfeld;

{$R *.DFM}

type
  TGridCracker = class(TCustomGrid);

procedure DeleteRow(sg: TStringGrid; index: Integer);
var
  iRow: Integer;
begin
  with TStringGrid(sg) do
  begin
    iRow := Row;
    DeleteRow(index);
    if iRow < RowCount
      then Row := iRow
      else Row := Pred(RowCount);
  end;
end;

procedure TFSpielplan01.BitBtnEintragLoeschenClick(Sender: TObject);
begin
   with FSpielfeld do
  DeleteRow(StringGrid1, StringGrid1.Row);
end;

{#########das hier hatte ich ganz am Anfang...aber das löscht immer nur den untersten Beitrag und ist wohl viel zu Kompliziert gemacht ^^° #############
procedure TFSpielplan01.BitBtnEintragLoeschenClick(Sender: TObject);
var i: Integer; test: String;
begin
  x:= StringGrid1.RowCount;
  if StringGrid1.Cells[3,x-1] = 'H' then begin
      x2:= FSpielfeld.StringGrid1.RowCount;
      if x2>0 then begin
      x2:=x2-1;
      for i:=0 to 4 do begin
        FSpielfeld.StringGrid1.Cells[i,x2] := '';
      end;
      FSpielfeld.StringGrid1.RowCount:=x2;
      FSpielfeld.StringGrid1.Height := x2*25+25;
      end;
  end;
  test:= StringGrid1.Cells[3,x-1];
  if x>0 then begin
      x:=x-1;
      for i:=0 to 10 do begin
        StringGrid1.Cells[i,x] := '';
      end;
      StringGrid1.RowCount:=x;
      StringGrid1.Height := x*25+25;
  end;
end;         }

{[...]}
end.
  Mit Zitat antworten Zitat