AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Nach InplaceEditor kein Löschen Form (TStringGrid)
Thema durchsuchen
Ansicht
Themen-Optionen

Nach InplaceEditor kein Löschen Form (TStringGrid)

Ein Thema von HPW · begonnen am 14. Dez 2005 · letzter Beitrag vom 14. Dez 2005
 
HPW

Registriert seit: 28. Feb 2003
160 Beiträge
 
Delphi 7 Professional
 
#1

Nach InplaceEditor kein Löschen Form (TStringGrid)

  Alt 14. Dez 2005, 07:44
Ich erzeuge folgende Form mit Stringgrid:

Delphi-Quellcode:
type
  TMyStringGrid = class(TStringGrid)
    procedure WMSetFocus(var msg: TWMSetFocus); message WM_SETFOCUS;
    procedure WMKillFocus(var Msg: TMessage); message WM_KillFocus;
    procedure SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);reintroduce;
    procedure SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String);reintroduce;
    procedure DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);reintroduce;
    procedure MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);reintroduce;
    procedure DblClick(Sender: TObject);reintroduce;
    procedure GetEditText(Sender: TObject; ACol, ARow: Integer; var Value: String);reintroduce;
    procedure MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);reintroduce;
    procedure KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);reintroduce;
  end;

  TMyForm = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private-Deklarationen }
    ......
  public
    { Public-Deklarationen }
       StringGrid1 : TMyStringGrid;
  end;

var
  MyForm: TMyForm;

implementation

{$R *.DFM}

procedure TMyStringGrid.WMSetFocus( VAR Msg : TWMSetFocus );
BEGIN
  INHERITED;
  showmessage('SetFocus');
END;

procedure TMyStringGrid.WMKillFocus( VAR Msg : TMessage );
BEGIN
  INHERITED;
  showmessage('KillFocus');
END;

procedure TMyForm.FormCreate(Sender: TObject);
begin
  inherited;
  StringGrid1 := TMyStringGrid.Create(self);
  with StringGrid1 do
   begin
     Parent := Self;
     Align := alClient;
     Visible := true;
     OnSelectCell := StringGrid1.SelectCell;
     OnSetEditText := StringGrid1.SetEditText;
     OnDrawCell := StringGrid1.DrawCell;
     OnMouseMove := StringGrid1.MouseMove;
     OnDblClick := StringGrid1.DblClick;
     OnGetEditText := StringGrid1.GetEditText;
     OnMouseUp := StringGrid1.MouseUp;
     OnKeyDown := StringGrid1.KeyDown;
   end;
end;

procedure TMyForm.FormDestroy(Sender: TObject);
begin
 StringGrid1.Free;
 inherited;
end;

.....
Das funktioniert soweit einwandfrei. Wenn ich aber einmal den InplaceEditor aktiviere
und anschliessend die Form löschen will, bekomme ich eine Access-Violation.
Hängt das InplaceEditor-Object nicht am Stringrid und wird damit gelöscht?

Wenn ich in einer Testapp das Stringgrid normal in eine Form einfüge und dasselbe tue, funktioniert das einwandfrei. Was mache ich da noch falsch?
Hans-Peter
  Mit Zitat antworten Zitat
 


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 17:39 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