![]() |
Kompon. StringGrid, Zellen für verschied. Typen mit overload
Hallo,
wer hat sich nicht schon mal darüber geärgert, daß sein Quellcode durch Typenwandlung für I/O in ein StringGrid oder TEdit unnötig lang wird? Ich will mir aus TEdit und TStringGrid neue Komponenten erzeugen, die ihren Daten I/O (TEdit.Text, TStringGrid.Cells[i,j]..) nicht nur über den Typ "String" ausüben sondern auch mit "Integer" oder "Single" mit verschiedenen Rundungen machen. Dieses will ich mittels Methoden Overload machen. Bei TEdit glaube ich das auch zu verstehen. Wie ist es aber mit TStringGrid, der Daten I/O ist ja zellselektiv und soll es auch bleiben. Ich müßte ja eine Methode "2. Ordnung" überladen? Weiß jemand wie das geht? Danke, E. B. PS: Will schnell noch ergänzen: ich will den Datenaustausch über TEdit.Text --> String, Single, Integer.. und über TStringGrid.Cells[i,j] --> String, Single, Integer.. also über die schon bekannten Methoden. Danke nochmals |
Re: Kompon. StringGrid, Zellen für verschied. Typen mit over
Zitat:
Ich würde die Controls so lassen wie sie sind und stattdessen eine Brücke bauen. so als Anregung:
Delphi-Quellcode:
Um dieser Adapter zu benützen ist später etwas mehr Aufwand nötig, als wenn du TStringGrid direkt ableiten würdest.
TStringGridAdapter = class(TComponent)
.... property StringGrid:TStringGrid; property CellsAsInteger[x,y:integer]:integer; property CellsAsDatetime[x,y:integer]:TDatetime; ... end; Aber die Vorteile (funktioniert mit TStringGrid und allem was davon abgeleitet ist) wiegen diese kleine Unannehmlichkeit auf. |
Re: Kompon. StringGrid, Zellen für verschied. Typen mit over
Hallo und Danke,
ich bin ja für alles offen, Brücke.. das habe ich irgend wo schon mal gehört, und zwar bei Entwurfsmustern, was ist eigentlich unter solch einer Brücke zu verstehen ? Und warum geht das andere Überladen eigentlich nicht ? Danke und Grüße E. B. |
Re: Kompon. StringGrid, Zellen für verschied. Typen mit over
Zitat:
Überladen wäre nur dann möglich, wenn sich die Parameter in Anzahl und/oder Datentyp unterscheiden würden. Im folgenden Beispiel kann der Compiler nicht entscheiden, welche Variante zu verwenden ist.
Delphi-Quellcode:
property Cells[x,Y:integer]:string; overload;
property Cells[x,Y:integer]:Integer; overload; // nicht erlaubt property Cells[s:string]:integer; overload; // das wäre denkbar, aber wohl nicht sinnvoll |
Re: Kompon. StringGrid, Zellen für verschied. Typen mit over
Das habe ich mir beinahe gedacht,
Da finde ich die Brückenlösung schon besser. Aber nun noch die dumme Frage, was eigentlich das Brückenmuster ist und darstellt? Grüße E. B. |
Re: Kompon. StringGrid, Zellen für verschied. Typen mit over
Zitat:
Das skizzierte Hilfsobjekt ist wohl ein Adapter. Schau mal auf: ![]() vielleicht bringt das etwas Klarheit. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:43 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 by Thomas Breitkreuz