Delphi-PRAXiS
Seite 5 von 7   « Erste     345 67      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Interface-Unterstützung (https://www.delphipraxis.net/193733-interface-unterstuetzung.html)

stahli 8. Nov 2017 11:35

AW: Interface-Unterstützung
 
@Uwe

Was ist denn an meinen Anforderungen speziell?

Ich hätte gedacht, dass jeder, der intensiver Interfaces benutzt, über das gleiche Problem stolpert.

Wenn eine Klasse mehrere Interfaces unterstützt, kann man das nicht mehr einfach über Vererbung abfrühstücken und müsste somit mindestens einige (oder sogar alle) Member neu implementieren.

Das ist besonders bei Gettern und Settern nervig, weil dort ja i.d.R. eh nur in ein privates Feld geschrieben oder daraus gelesen wird. Und dann sollte das als Standardweg halt automatisch voreingestellt werden. Bei Bedarf kann man es dann ja immer noch ändern.


Als Fazit würde ich mal ziehen, dass keiner zu doof ist ;-) und das Tool mal weiter basteln.

TiGü 8. Nov 2017 12:00

AW: Interface-Unterstützung
 
Zitat:

Zitat von Stevie (Beitrag 1385618)
Zitat:

Zitat von TiGü (Beitrag 1385572)
Meiner Meinung nach wäre es viel sinnvoller, wenn es ein Tool geben würde, dass automatisch vergessende Semikolons hinter die Zeilen tackert.
Das regt mich immer maßlos auf! Schnell was hingeschrieben, Strg + F9 und Bumm:
"Nak nak nak, Sie haben ein Semikolon vergessen...ich als Compiler finde das voll doof...ich könnte zwar selber eins hinbasteln, aber ich will Sie als Programmierer noch ein bissel gängeln!".

Es soll Programmiersprachen geben, wo man gar keine Semikolons machen muss, weil der Compiler schlau genug ist, zu erkennen, wo Anweisungen enden.

Ketzerei! :evil:

Wosi 8. Nov 2017 12:15

AW: Interface-Unterstützung
 
Zitat:

Zitat von stahli (Beitrag 1385627)
Ich hätte gedacht, dass jeder, der intensiver Interfaces benutzt, über das gleiche Problem stolpert.

Bisher bin ich nicht über das Problem gestolpert, obwohl 99% meiner Klassen Interfaces implementieren. Allerdings unterscheidet sich mein Code-Design in mindestens zwei Punkten von deinem:

- Nur ein kleiner Bruchteil der Klassen implementiert mehr als ein Interface
- Es gib kaum Setter. Kurzer Überblick über eines meiner Projekte: In 171 Interfaces gibt es 239 Properties. Davon haben 18 einen Setter. Die beschreibbaren Properties verteilen sich auf 8 Interfaces, von denen es jeweils nur eine Implementierung gibt.

Eventuell liegt das Problem auch in einem unglücklich gewähltem Klassen-Design, das dich zu immer wiederkehrenden Anpassungen zwingt. Hast du ein praktisches Beispiel für die mehrfache Implementierung von Interfaces mit Settern?

stahli 8. Nov 2017 12:50

AW: Interface-Unterstützung
 
Meinen aktuellen Quelltext will ich hier nicht veröffentlichen.

Aber ich erstelle ein früheres Projekt noch einmal neu und überarbeite dabei gleich komplett das Klassendesign (schreibe Interfaces wie am Fließband ;-) ).

Ausgehen tue ich dabei immer von Interfaces (Funktionalitäten).

Die tatsächlichen Klassen sind hinter einer Factory versteckt, so dass die Businesslogik nur noch die Interfaces kennt und benutzt.

Da es viele Überschneidungen der Funktionalitäten gibt, müssen mehrere Klassen auch mehrere Interfaces unterstützen.


Ok, mag sein, dass mein Klassendesign schon etwas ausgefallen ist und mir diese IDE-Schwäche deshalb besonders auffällt. Aber stören würde mich das tatsächlich auch bei weniger Mehrfach-Interfaces.

MichaelT 8. Nov 2017 14:29

AW: Interface-Unterstützung
 
Danke für den Tip mit dem Interface. Ich habe bisher den MMX nur zur Anzeige der Methoden genommen.

Etwas off-topic aber ich bekomme das Bookmark 7 beim MMX nicht weg. Egal was ich in den Optionen einstelle. Angeblich stammt das aus 'Drop Bookmark on Start Search Position' ... Aber immer wenn ich rumpfrimmle kommt das Bookmark 7 obwohl es auf none steht in den Optionen.

Kommt das bei dir auch?

Zitat:

Zitat von Uwe Raabe (Beitrag 1380211)
Zitat:

Zitat von stahli (Beitrag 1380206)
MMX bietet aber nicht die Möglichkeit, die Klasse durch fehlende Interface-Members zu ergänzen - oder?

Das Interface per Drag-Drop oder Copy-Paste auf die implementierende Klasse ziehen.


Uwe Raabe 8. Nov 2017 15:53

AW: Interface-Unterstützung
 
Zitat:

Zitat von MichaelT (Beitrag 1385678)
Etwas off-topic aber ich bekomme das Bookmark 7 beim MMX nicht weg. Egal was ich in den Optionen einstelle. Angeblich stammt das aus 'Drop Bookmark on Start Search Position' ... Aber immer wenn ich rumpfrimmle kommt das Bookmark 7 obwohl es auf none steht in den Optionen.

Schick mir mal 'ne PM mit den einzelnen Schritten, die das Problem zeigen.

MichaelT 8. Nov 2017 17:22

AW: Interface-Unterstützung
 
Danke. Uwe.

Plag dich nicht. Beizeiten. Es erscheint einfach ein Bookmark 7 und wenn ich MMX deinstalliere kommt es nicht mehr. Seit XE ist das so, egal mit welchem MMX.

Es erscheint auch zufällig. Es erscheint dann auf jeden Fall wenn der MMX im Code rumpfrimmelt an der Stelle wo das passiert. Die Idee ist an sich ja nicht falsch. Ich muss noch rausfinden wenn es passiert.

Es ist bspw. passiert wie in der Strukuranzeige des MMX oben das Interface über die Klasse gezogen hat. Dann hat der MMX ganz korrekt die Deklarationen durchgezogen und eine Bookmark platziert nämlich Bookmark 7 (default Einstellung für Search - an der ersten Fundstelle Positionieren). Ich schaue noch zuvor ob sich das Bookmark 7 ändert wenn dieses spezifische Bookmark auf bspw. 8 umstelle. Dann melde ich mich gerne mal. Bitte keinen Aufwand treiben.

Danke nochmal für den Tip.:thumb: (* Ich bin schon sehr froh, dass überhaupt die Methoden usw... der Unit sauber strukturiert sehe*).

Allein verwende ich eher sehr übersichtliche Anzahl von Codezeilen in Units, aber nicht so exzessiv sodass ich während des Debuggens zuviel in Einzeilern herumhüpfe und ich halt die aktuellen Prozeduren eher oben und nicht unten ala FIFO Queue, denn ich arbeite eher Bottom Up.

Lieben Gruß

Zitat:

Zitat von Uwe Raabe (Beitrag 1385693)
Zitat:

Zitat von MichaelT (Beitrag 1385678)
Etwas off-topic aber ich bekomme das Bookmark 7 beim MMX nicht weg. Egal was ich in den Optionen einstelle. Angeblich stammt das aus 'Drop Bookmark on Start Search Position' ... Aber immer wenn ich rumpfrimmle kommt das Bookmark 7 obwohl es auf none steht in den Optionen.

Schick mir mal 'ne PM mit den einzelnen Schritten, die das Problem zeigen.


Uwe Raabe 9. Nov 2017 11:43

AW: Interface-Unterstützung
 
Vielleicht noch ergänzend zum MMX: Interface wizard

MichaelT 9. Nov 2017 12:10

AW: Interface-Unterstützung
 
Danke

Zitat:

Zitat von Uwe Raabe (Beitrag 1385787)
Vielleicht noch ergänzend zum MMX: Interface wizard


jaenicke 9. Nov 2017 12:20

AW: Interface-Unterstützung
 
Ja, genau diese Funktionen sind an MMX sehr interessant. :thumb:
Mehr habe ich bei Interfaces auch noch nie gebraucht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:38 Uhr.
Seite 5 von 7   « Erste     345 67      

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