AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Methoden einer Kompo überschreiben ohne eigene abzuleiten
Thema durchsuchen
Ansicht
Themen-Optionen

Methoden einer Kompo überschreiben ohne eigene abzuleiten

Ein Thema von Delphi-Freak · begonnen am 28. Aug 2005 · letzter Beitrag vom 29. Aug 2005
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Delphi-Freak
Delphi-Freak

Registriert seit: 26. Sep 2004
Ort: Wien Nähe (Österreich)
321 Beiträge
 
Delphi 2006 Architect
 
#11

Re: Methoden einer Kompo überschreiben ohne eigene abzuleite

  Alt 28. Aug 2005, 15:52
Das ist aber schade...
Trotzdem danke, sonst hätte ich gesucht und gesucht und wäre nicht draufgekommen

Edit: Oja, noch eine Frage:
Zitat von Flocke:
Wenn eine andere Unit dieses "TButton" benutzt, dann hängt von der Reihenfolge in der uses-Klausel ab, welcher TButton erzeugt wird.
Welche Unit ist dann höherrangig bzw. wird benutzt. Die früher oder die später definierte?
Gerhard Pfister
*
»To him who loves us and has freed us from our sins by his blood [...] be glory and power for ever and ever! Amen.« (Revelation*1,*5?6)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Methoden einer Kompo überschreiben ohne eigene abzuleite

  Alt 28. Aug 2005, 16:18
die später definierte (probieren hilf). Das sieht man unter anderem wenn man mit TBitmap arbeitet. TBitmap ist in der unit Windows und in der Unit Graphics definiert. Wenn du mal die unit Windows in den Uses nach der Unit Graphics aufführst wirst du sehen das rumgemeckert wird das es kein Object ist oder so weil die TBitmap-Definition in der Windows-Unit keine Klasse ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#13

Re: Methoden einer Kompo überschreiben ohne eigene abzuleite

  Alt 28. Aug 2005, 16:19
Zitat von Delphi-Freak:
Wie habe ich die Basisklasse umbenannt, eigentlich habe ich sie ja nur durch Neudefinition überschrieben, oder
Was Du gemacht hast ? Ungefähr das, was Robert_G vorgeschlagen hat. Von einer vorhandenen Basisklasse abgeleitet.

Edit : Ahhhh, noch was übersehen. Was ist denn das ?
Zitat von Flocke:
Delphi-Quellcode:
TButton = class(StdCtrls.TButton)
published
   procedure alert;
end;
Geht das so überhaupt ? Hier sieht man manchmal wirklich unglaubliche Codefetzen. Wenn schon dann aber so:

Delphi-Quellcode:
TMeinButton = class(TButton)
published
   procedure alert;
end;
Edit2 :

Zitat:
Welche Unit ist dann höherrangig bzw. wird benutzt. Die früher oder die später definierte?
Da fängts schon an. In einem Programm 2 unterschiedliche TButton. Geht irgendwann mit Sicherheit schief.
Gruß
Hansa
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#14

Re: Methoden einer Kompo überschreiben ohne eigene abzuleite

  Alt 28. Aug 2005, 16:37
Zitat von Hansa:
Edit : Ahhhh, noch was übersehen. Was ist denn das ?
Zitat von Flocke:
Delphi-Quellcode:
TButton = class(StdCtrls.TButton)
// ...
Geht das so überhaupt ?
Sowas nennt sich Fully Qualified Name und ist durchaus legitim, soland eine solche Definition nicht unten an den Interface-Abschnitt der Unit StdCtrls angehangen wird. Mach dich nicht über Dinge lustig, die du nicht begreifst.

Edit: Wenn ich einen schließenden bbCode entferne kann das ja nicht gut aussehen...
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Freak
Delphi-Freak

Registriert seit: 26. Sep 2004
Ort: Wien Nähe (Österreich)
321 Beiträge
 
Delphi 2006 Architect
 
#15

Re: Methoden einer Kompo überschreiben ohne eigene abzuleite

  Alt 28. Aug 2005, 16:57
Wie ist das also nochmal. Wenn ich TButton als Klasse von StdCtrls.TButton ableite, dann ist das nur in der aktuellen Unit gültig (bzw. in Units die diese Unit einbinden und TButton nicht überschreiben), oder?
Gerhard Pfister
*
»To him who loves us and has freed us from our sins by his blood [...] be glory and power for ever and ever! Amen.« (Revelation*1,*5?6)
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#16

Re: Methoden einer Kompo überschreiben ohne eigene abzuleite

  Alt 28. Aug 2005, 17:05
Wenn du nur Methoden hinzufügen willst, könntest du doch (dank D2005) Delphi-Referenz durchsuchenclass helpers benutzen. Du kannst auch Methoden der Klasse verdecken, wie du diese dann aber im Helper wieder aufrufen kannst, kann ich dir nicht sagen (mit inherited hat sich Delphi aufgehängt ).
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#17

Re: Methoden einer Kompo überschreiben ohne eigene abzuleite

  Alt 28. Aug 2005, 17:06
Zitat von Delphi-Freak:
Wenn ich TButton als Klasse von StdCtrls.TButton ableite, dann ist das nur in der aktuellen Unit gültig (bzw. in Units die diese Unit einbinden und TButton nicht überschreiben), oder?
Jupp, so isset.
Wenn dann eine Unit sowohl ExtCtrls, als auch deine Unit einbindet, gibt es einen Namenskonflikt, da ja TButton einmal in ExtCtrls und einmal in deiner Unit. Welche dann bevorzugt wird, kann ich nicht sagen, in so eine unangenehme Situation bin ich noch nicht gekommen, deswegen ist es dann auch besser, den Fully Qualified Name der Klasse zu benutzen, also entweder ExtCtrls.TButton, wenn ich einen Normalo-Button haben will, oder MeineUnit.TButton, wenn ich meinen Enhanced-Button haben will.
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Freak
Delphi-Freak

Registriert seit: 26. Sep 2004
Ort: Wien Nähe (Österreich)
321 Beiträge
 
Delphi 2006 Architect
 
#18

Re: Methoden einer Kompo überschreiben ohne eigene abzuleite

  Alt 28. Aug 2005, 17:59
Vielen, vielen Dank einmal!
Ihr seid eine große Hilfe!
Das mit class helpers muss ich mir noch anschauen, klingt aber viel versprechend.

LG, Gerhard

Edit:ad »class helpers«: irgendwie werde ich da aus der Hilfe nicht gescheit. Hat das irgendwas mit »IClassFactory« zu tun, bzw. wie kann ich das implementieren?
Gerhard Pfister
*
»To him who loves us and has freed us from our sins by his blood [...] be glory and power for ever and ever! Amen.« (Revelation*1,*5?6)
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#19

Re: Methoden einer Kompo überschreiben ohne eigene abzuleite

  Alt 28. Aug 2005, 18:25
Ich habe keine Delphi2005-Hilfe, aber nach dem, was hier geschrieben steht, sieht das alles ziemlich straightforward aus, ohne Interfaces.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#20

Re: Methoden einer Kompo überschreiben ohne eigene abzuleite

  Alt 28. Aug 2005, 19:02
Zitat von tommie-lie:
Ich habe keine Delphi2005-Hilfe, aber nach dem, was hier geschrieben steht, sieht das alles ziemlich straightforward aus, ohne Interfaces.
Ich weiß nicht wie es in Win32 gelöst wird. Die .Net Variante ist eher als krank zu bezeichnen. Zumindest wenn man seine "Vorteile" zu Herzen nehmen würde. Dann könnte jeder mit einem "sauberen" .Net compiler einpacken...

@delphiFreak
Ich verstehe immer noch nicht wo das Problem liegt...
Warum musst du für all die anderen Klassen auch Ableitungen erstellen?
Ich sehe in deinem Bleistift nur die eigentliche neue Klasse und das SynEdit, dass sie verwenden würde.
Dein SynEdit ist wäre aber weiter voll kompatibel zum Rest.
Wo ist das Problem dabei? Du machst dich doch total inkompatibel zu allem anderen wenn du in den Sourcen rumwurschtelst.
Ist das überhaupt erlaubt, ohne die Änderungen wieder als OSS zu veröffentlichen?
Und was hält man dann wohl von deinem Programm, wenn man dann sieht, dass du nicht die Lust hattest, es sauber zu lösen?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 06:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz