AGB  ·  Datenschutz  ·  Impressum  







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

Eigenes TMemo

Ein Thema von Amateurprofi · begonnen am 24. Okt 2007 · letzter Beitrag vom 24. Okt 2007
Antwort Antwort
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.077 Beiträge
 
Delphi XE2 Professional
 
#1

Eigenes TMemo

  Alt 24. Okt 2007, 12:50
Ich möchte ein Memo und eine Listbox nebeneinander anzeigen.
In der Listbox will ich Daten zeigen, die auf dem Inhalt der Memo-Zeilen basieren.
Zusätzlich möchte ich, für die Listbox und das Memo unterschiedliche Schriftgrößen haben können.
Um sicherzustellen, daß die Listbox-Zeilen in der gleiche Höhe liegen, wie die der Memo-Zeilen, müssen die Zeilen des Memos die gleiche Höhe haben wie die der Listbox.
In der Listbox ist das mit ItemHeigth zu regeln.
Im Memo wird (wenn ich das richtig sehe) die Zeilenhöhe in der Prozedur AdjustHeight (von TCustomEdit) eingestellt.

Ich möchte nun so vorgehen :

Ein eigenes TCustomEdit von TCustomEdit ableiten und von diesem wiederum ein eigenes TCustomMemo ableiten, das im Prinzip identisch mit dem TCustomMemo aus StdCtrls sein soll.

Bis jetzt hab ich folgendes

Delphi-Quellcode:
unit Unit1;

interface

uses Classes, StdCtrls;

Type
   TxCustomEdit=Class(TCustomEdit)
   Private
      procedure AdjustHeight; override; // Zeile 10
   protected
   public
      constructor Create(AOwner: TComponent); override;
   end;

implementation

constructor TxCustomEdit.Create(AOwner: TComponent);
begin
   inherited
end;

PROCEDURE TxCustomEdit.AdjustHeight;
begin
   inherited;
   Heigth:=Height+3;
end;

end.
Und gleich am Anfang laufe ich "auf den Schrubber"

[Fehler] Unit1.pas(10): E2137 Methode 'AdjustHeight' nicht in Basisklasse gefunden.

Jetzt frage ich mich warum AdjustHeight nicht in der Basisklasse (TCustomEdit) gefunden wird, obwohl sie darin enthalten ist.

Was mache ich falsch ? Und : Weiß jemand eine simplere Möglichkeit, die Zeilenhöhe eines TMemo einzustellen ?
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#2

Re: Eigenes TMemo

  Alt 24. Okt 2007, 12:57
Ist AdjustHeight in der Basisklasse implementiert oder nur eine abstrakte Funktion? Vielleicht ist AdjustHeight im protected deklariert? Versuchs mal ohne "override", aber mit "inherited" in der Implementierung.
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Eigenes TMemo

  Alt 24. Okt 2007, 13:02
Naja, dein Problem ist, dass Geerbte Klassen keine privaten Deklarationen erben können

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#4

Re: Eigenes TMemo

  Alt 24. Okt 2007, 13:04
Galt das nicht für protected?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Eigenes TMemo

  Alt 24. Okt 2007, 13:04
Dann lass das inherited weg, weil dies bewirkt das eine gleichnamige Methode der Superklasse aufgerufen wird, welche nicht existiert!
Markus Kinzler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Eigenes TMemo

  Alt 24. Okt 2007, 13:05
Zitat von Nuclear-Ping:
Galt das nicht für protected?
aws für protected gilt, gilt erst recht für private!
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Eigenes TMemo

  Alt 24. Okt 2007, 13:14
Zitat von mkinzler:
Zitat von Nuclear-Ping:
Galt das nicht für protected?
aws für protected gilt, gilt erst recht für private!
Jup:
private: Nur Unit & Klasse
protected: private + "Kinder"

Ich habe ein bisschen im Code geguckt: Adjust wird durch UpdatHeight aufgerufen, aber das wird auch nicht so direkt aufgerufen
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  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:13 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