Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Verborgene Methoden
Peter18 - So 05.07.15 11:06
Titel: Verborgene Methoden
Ein freundliches Hallo an alle
ich möchte bei TStringGrid eine Methode wieder einführen, die bei TCustomGrid noch enthalten ist. "DeleteColumn" und "DeleteRow". Irgend wann habe ich schon mal den Tipp gekriegt, wie so was geht, aber finde es nicht wieder. Vielleicht hilft ja jemand meinem Gedächnis auf die Sprünge.
Grüße von der nicht mehr ganz so heißen (25° statt 31° bei 85%) Nordsee (tropf)
Peter
jaenicke - So 05.07.15 14:14
Es kommt darauf an. Wenn die Methode protected ist, kannst du eine eigene Klasse von TStringGrid ableiten und diese dort zur Verfügung stellen.
In aktuelleren Delphiversionen (2006+ glaube ich) kann man dafür auch einfach class Helfer verwenden.
Peter18 - So 05.07.15 15:04
Hallo Sebastian,
Dank Dir für Deine Antwort. Die Ableitung habe ich schon, aber syntaktisch hapert es noch. Ich habe in Erinnerung, dass nur eine neue Deklaration unter "public" ausreicht, wird aber angemeckert. Da fehlt wohl noch was oder muß anders aufgeschrieben werden.
Grüße von der Wolkigen Nordsee bei 27°
Peter
jaenicke - Mo 06.07.15 05:59
// EDIT begin
Ich habe mal nachgeschaut. Hier reicht letzteres:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| type TStringGrid = class(Grids.TStringGrid) end;
StringGrid1.DeleteColumn(1); |
// EDIT end
Das funktioniert nur bei einer Property. Bei Methoden musst du diese neu unter public anlegen, wenn möglich mit override (wenn die Methode virtuell ist), und dann darin die geerbten Version mit inherited aufrufen.
Delphi-Quelltext
1: 2: 3: 4:
| procedure TNewStringGrid.Paint; begin inherited; end; |
Oder wenn überschreiben nicht geht:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TNewStringGrid.Paint; begin inherited Paint; end; |
Du kannst auch versuchen nur ein neues TStringGrid zu deklarieren (ohne weiteren Inhalt) und darauf zu casten um die Methoden aufzurufen.
Delphi-Quelltext
1:
| TNewStringGrid(StringGrid).DeleteColumn; |
Peter18 - Mo 06.07.15 13:56
Hallo Sebastian,
Dank Dir! Nun weiß ich warum es nicht funktioniert hat! Was ich damals verfügbar gemacht habe war eine Eigenschaft, nun war es eine Methode. Und jetzt funktioniert es!
Nochmals Dank!
Grüße von der Nosdsee mit erträglichen 22° mit ein paar Wolken
Peter
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!