AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Ableitung von TCustomSynEdit -> private Methoden weg
Thema durchsuchen
Ansicht
Themen-Optionen

Ableitung von TCustomSynEdit -> private Methoden weg

Ein Thema von Delphi-Freak · begonnen am 30. Aug 2005 · letzter Beitrag vom 31. Aug 2005
Antwort Antwort
Benutzerbild von Delphi-Freak
Delphi-Freak

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

Ableitung von TCustomSynEdit -> private Methoden weg

  Alt 30. Aug 2005, 21:33
Hi!

Ich ärgere mich da schon eine Zeit lang grün und blau, weil ich eine Komponente von TCustomSynEdit ableiten will. Dabei will ich dann eine private Methode aufrufen, aber er sagt, dass er die nicht kennt . Zusätzlich sagt er noch, wenn ich den Destructor überschreiben will, dass er den in der Basisklasse nicht findet, obwohl er dort definiert ist.

Bin fast schon verzweifelt und über jede Hilfe dankbar!
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
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Ableitung von TCustomSynEdit -> private Methoden weg

  Alt 30. Aug 2005, 21:58
Moin Gerhard,

zum Thema private-Methoden aufrufen solltest Du Dir mal in der Hilfe unter dem Stichwort Sichtbarkeit/Visiblity nachschauen.
Ein Auszug:

Zitat:
A private member is invisible outside of the unit or program where its class is declared.
Was den Destructor angeht:

Delphi-Quellcode:
type
  TMySynEdit = class(TCustomSynEdit)
  public
    destructor Destroy; override;
  end;
klappt bei mir problemlos
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  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
 
#3

Re: Ableitung von TCustomSynEdit -> private Methoden weg

  Alt 30. Aug 2005, 22:14
Zitat:
A private member is invisible outside of the unit or program where its class is declared.
Gilt das also auch bei Ableitungen? Immerhin ist es ja innerhalb des Programms (wie da^^ steht)

Delphi-Quellcode:
type
  TMySynEdit = class(TCustomSynEdit)
  public
    destructor Destroy; override;
  end;
Genau das funktioniert bei mir eben nicht; da sagt er, dass er diese Methode in der Basisklasse nicht findet
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
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Ableitung von TCustomSynEdit -> private Methoden weg

  Alt 30. Aug 2005, 22:54
Moin Gerhard,

Program meint hier aber wohl eher die Projektdatei, die ja nicht direkt als Unit anzusehen ist.

Für das Beispiel habe ich mir ein SynEditMemo auf das Formular gezogen gehabt, damit alle erforderlichen Units unter uses eingetragen werden.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Ableitung von TCustomSynEdit -> private Methoden weg

  Alt 30. Aug 2005, 23:11
Zitat von Delphi-Freak:
Zitat:
A private member is invisible outside of the unit or program where its class is declared.
Gilt das also auch bei Ableitungen? Immerhin ist es ja innerhalb des Programms (wie da^^ steht)
private = sichtbar innerhalb der Unit
protected = sichtbar innerhalb von Member-Funktionen der Klasse und abgeleiteten Klassen
public = überall sichtbar

Mit program meinen die, dass du überhaupt keine Unit deklariert hast sondern alles direkt in der dpr-Datei machst. (war doppelt, wurde abgezogen)

Über private-Members habe ich mich schon oft geärgert, besonders wenn die ohne viel Gedanken deklariert wurden (also eigentlich protected sein sollten).

Da ich SynEdit nicht installiert habe kann ich dazu aber nichts sagen. Ebenso wenig wie zu deinem Problem mit dem Destruktor.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  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
 
#6

Re: Ableitung von TCustomSynEdit -> private Methoden weg

  Alt 31. Aug 2005, 10:33
Das mit dem Destructor kann man ja mal sein lassen, ob da override steht oder nicht, soll mich nicht stören. Nur mich hats irgendwie gewundert, weil ich den Verdacht gehegt habe, dass er eine falsche Kompo nimmt; deshalb habe ich es erwähnt.

Nochmal zu der Ableitung: Ist also die einzige Möglichkeit, die abgeleitete Kompo in der Unit SynEdit zu definieren, oder gibts vielleicht noch andere Möglichkeiten. Ich möchte nämlich die SynEdit Source-Dateien möglichst unberührt lassen.
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 Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Ableitung von TCustomSynEdit -> private Methoden weg

  Alt 31. Aug 2005, 10:42
Zitat von Delphi-Freak:
Das mit dem Destructor kann man ja mal sein lassen, ob da override steht oder nicht, soll mich nicht stören.
Nun ja, egal ist das nicht. Wenn du .Free oder FreeAndNil aufrufst, dann wird der virtuelle Destruktor von TObject aufgerufen, und das ist nicht deiner, wenn du ihn nicht mit override deklariert hast (oder das override irgendwo in der Kette fehlt).

Zitat von Delphi-Freak:
Nochmal zu der Ableitung: Ist also die einzige Möglichkeit, die abgeleitete Kompo in der Unit SynEdit zu definieren, oder gibts vielleicht noch andere Möglichkeiten. Ich möchte nämlich die SynEdit Source-Dateien möglichst unberührt lassen.
An die private-Deklarationen kommst du definitiv nicht dran. Du solltest dir den Code ansehen und dir überlegen, ob es einen Grund hat, dass die Funktion private und nicht protected ist (Nebeneffekte). Ansonsten ist die einfachste Lösung, die Deklaration in den SynEdit-Sources vom private- in den protected-Bereich zu verschieben (ist nur eine Zeile Änderung).
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  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
 
#8

Re: Ableitung von TCustomSynEdit -> private Methoden weg

  Alt 31. Aug 2005, 11:15
Ich bin mir schon darüber klar, dass es durchaus sinnvoll ist, dass ich auf private Deklarationen nicht zugreifen kann. Andererseits habe ich mir eine Funktion aus dem SynEdit-Source rauskopiert und möchte sie etwas abändern (PaintTextLines), um die Glyphs für Tabs und Leerzeichen selber einfärben möchte. Dann muss ich wohl meine Kompo in die SynEdit-Unit hineingeben...

Aber euch sage ich herzlichen Dank für eure Hilfen!!!


Edit: Und ein Beweisfoto noch von mir (vom ersten Beitrag) im Anhang
Miniaturansicht angehängter Grafiken
gruen_und_blau_705.png  
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
Antwort Antwort


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 14:40 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