AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Method not found in base class

Ein Thema von fkerber · begonnen am 11. Dez 2004 · letzter Beitrag vom 11. Dez 2004
Antwort Antwort
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#1

Method not found in base class

  Alt 11. Dez 2004, 18:46
Hi!

Ich versuche ein OpenSource-Projekt, das mit Delphi geschrieben wurde bei mir zum Laufen zu bekommen, damit ich die ein oder andere Veränderung vornehmen kann. Dieses Projekt verwendet Synedit und der Autor hat eigene Komponenten abgeleitet und mit weiteren Eigenschaft versehen. Dummerweise kommt jetzt beim Installieren dieser Fehler:

Zitat:
Method 'SetSelTextExternal' not found in base class
OBWOHL es die Method gibt. Ich poste hier mal die Auszüge:

Delphi-Quellcode:
// Synedit.pas - also original Synedit
  TCustomSynEdit = class(TCustomControl)
  private
{$IFDEF SYN_CLX}
{$ELSE}
    procedure WMCaptureChanged(var Msg: TMessage); message WM_CAPTURECHANGED; //jr 2001-01-06
    [...]
    procedure WMVScroll(var Msg: TWMScroll); message WM_VSCROLL;
{$ENDIF}
  private
    fBlockBegin: TPoint;
    fBlockEnd: TPoint;
    [...]
    fChainUndoAdded: TNotifyEvent;
    fChainRedoAdded: TNotifyEvent;

    procedure BookMarkOptionsChanged(Sender: TObject);
    procedure ComputeCaret(X, Y: Integer);
    procedure ComputeScroll(X, Y: Integer);
    [...]
    procedure SetBorderStyle(Value: TSynBorderStyle);
    procedure SetCaretX(Value: Integer);
    procedure SetCaretY(Value: Integer);
    procedure SetActiveLineColor(Value: TColor); //GBN 05-11-2002, for CurremtLineColor property
    procedure SetExtraLineSpacing(const Value: integer);
    procedure SetFont(const Value: TFont);
    procedure SetGutter(const Value: TSynGutter);
    procedure SetGutterWidth(Value: Integer);
    procedure SetHideSelection(const Value: boolean);
    procedure SetHighlighter(const Value: TSynCustomHighlighter);
    procedure SetInsertCaret(const Value: TSynEditCaretType);
    procedure SetInsertMode(const Value: boolean);
    procedure SetKeystrokes(const Value: TSynEditKeyStrokes);
    procedure SetOnKeyDown(const Value : TKeyEvent);
    function GetOnKeyDown : TKeyEvent;
    procedure SetOnKeyPress(const Value : TKeyPressEvent);
    function GetOnKeyPress : TKeyPressEvent;
    procedure SetLeftChar(Value: Integer);
    procedure SetLines(Value: TStrings);
    procedure SetLineText(Value: string);
    procedure SetMaxLeftChar(Value: integer);
    procedure SetMaxUndo(const Value: Integer);
    procedure SetModified(Value: boolean);
    procedure SetOptions(Value: TSynEditorOptions);
    procedure SetOverwriteCaret(const Value: TSynEditCaretType);
    procedure SetRightEdge(Value: Integer);
    procedure SetRightEdgeColor(Value: TColor);
    procedure SetScrollBars(const Value: TScrollStyle);
    procedure SetSearchEngine(Value: TSynEditSearchCustom);
    procedure SetSelectionMode(const Value: TSynSelectionMode);
    procedure SetSelText(const Value: string);
--> procedure SetSelTextExternal(const Value: string); <----------------------------------
    procedure SetTabWidth(Value: integer);
Die Sachen in Privat sind doch für die abegleiteten sichtbar, oder?

Delphi-Quellcode:
//abgeleitete Klasse.
TSynTerm = class(TCustomSynEdit)
  private
    fDriver : TUSBPortDriver;
    [...]
    procedure SetBaudRate(const Value: TBaudRate);
    procedure SetCkLineStatus(const Value: boolean);
    [...]
    procedure SetWriteTimeout(const Value: Word);
  private
    procedure WMPaste(var Message: TMessage); message WM_PASTE;
  protected
--> procedure SetSelTextExternal(const Value: string); override; <--------------------------
    procedure KeyDown(var Key: Word; Shift: TShiftState); override;
Bitte helft mir. Habe keine Ahnung, wo der Fehler sein könnte.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: Method not found in base class

  Alt 11. Dez 2004, 18:52
private ist nur die eigene Klasse und die gleiche Unit sichtbar. protected ist in abgeleiteten Klassen sichtbar. Zudem kannst du die Methode nicht überschreiben, da sie nicht als virtual deklariert ist.

Aber wenn du das Programm so runtergeladen hast, dann muss irgendwas faul sein. So funktioniert das definitiv nicht. Es könnte höchstens sein, dass der das progamm erstellt hat, die SynEdit.pas geändert hat oder auf eine andere Version aufbaut.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#3

Re: Method not found in base class

  Alt 11. Dez 2004, 19:57
Hi!

Danke für deine Erklärung.
Es hat funktioniert.
Keine Ahnung, wie der Typ das hinbekommen hat.

Ciao Frederic
Frederic Kerber
  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 21:09 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