Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Komponentenentwicklung - Änder des SelectCell-Ereignisses

  Alt 14. Okt 2012, 22:40
So funktioniert das nicht.
Du kannst nicht einfach ein Event einer Komponente mal eben so abändern.
Man sollte sich Komponenten wie Legosteine vorstellen - allgemeine Bausteine um daraus Anwendungen aufzubauen.
Wenn Komponenten aber verändert werden und damit direkt mit Code in deiner Anwendung in Verbindung stehen (Klasse TKunde) dann muss man die Komponente als "vermurkst" betrachten.

Also: Komponenten sind allgemeine Bausteine die so bleiben sollten wie sie sind,
während das Formular den Klebstoff zu der Anwendunglogik darstellt.

Man muss bei Komponenten auch zwischen der Klasse und den Objekten unterscheiden:
Es ist ziemlich aufwändig neue Komponenten-Klassen zu entwickeln.
Die Komponenten-Objekte können dagegen sehr leicht über Properties auf ihre jeweilige Aufgabe eingestellt werden.
Je weiter der Programmierer einer Komponenten-Klasse vorrausgedacht hat um so flexibler sind die Komponenten-Objekte einsetzbar.


Glücklicherweise kann jede Zelle eines Stringsgrids neben dem Text zusätzlich ein Objekt enthalten:
Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
var
  sg : TStringGrid;
  kunde : TKunde;
begin
  sg := Sender as TStringGrid;

  kunde := sg.Objects[ACol, ARow] as TKunde;

  if Assigned(kunde) then
    ShowMessage(kunde.Strasse + ','+kunde.PLZ+' '+kunde.Ort);
end;
  Mit Zitat antworten Zitat