Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TMemo selbst gemacht? (https://www.delphipraxis.net/89699-tmemo-selbst-gemacht.html)

Neutral General 4. Apr 2007 12:48


TMemo selbst gemacht?
 
Hi,

Ich suche grade eine Möglichkeit eine Komponente zu erstellen in die man Text eingeben kann. So wie ein TEdit oder ein TMemo. Hab gesehen das TCustomEdit von TWinControl abgeleitet ist also wollte ich damit auch anfangen. Nur was benötigt so eine Componente MINIMAL ? Ich hab auch schon von TCustomEdit abgeleitet, aber die Komponente (ohne Modifizierung) lies sich gar nicht auf das Formular setzen (Fehlermeldung (irgendwas mit OS)). Das gleiche gilt für TCustomMemo und selbst wenn ich MyClass = class(TCustomEdit) so geändert hab das es praktisch ein TEdit war, gabs en Fehler beim platzieren aufm Formular (Ungültiges Fensterhandel).

Die eigentliche Frage ist jedoch: Was braucht ein TWinControl MINDESTENS um Text so aufnehmen zu können wie ein Edit oder ein Memo?

Gruß
Neutral General

sirius 4. Apr 2007 13:33

Re: TMemo selbst gemacht?
 
Wo willst du denn hin?

Ein TCustomEdit ist dasselbe wie ein TEdit. Nur dass das TEdit durch die published properties für die IDE "aufbereitet" wird.

Und eine einfache Ableitung funktioniert bei mir problemlos. Ist halt ein normales Edit.

Neutral General 4. Apr 2007 14:04

Re: TMemo selbst gemacht?
 
Hi,

wo ich hin will? naja sone Art Memo mit Rand und Zeilenangaben und mit besserem Design, das auch Objecte beinhalten kann.

Gruß
Neutral General

Nuclear-Ping 4. Apr 2007 14:22

Re: TMemo selbst gemacht?
 
Hast du dir schonmal TSynEdit angeschaut? Keine Ahnung, ob das mit Objekten umgehen kann, aber Rand mit Zeilennummern, Syntaxhervorhebung etc. kann es.

Flocke 4. Apr 2007 14:38

Re: TMemo selbst gemacht?
 
Zitat:

Zitat von Neutral General
naja sone Art Memo mit Rand und Zeilenangaben und mit besserem Design, das auch Objecte beinhalten kann.

TCustomEdit ist zwar von TWinControl abgeleitet, benutzt aber die Fensterprozedur eines Windows-Standardcontrols (EDIT) - die komplette Editierfunktionalität ist nicht in Delphi implementiert, sondern bereits in dieser Fensterklasse. Die VCL setzt einfach nur einen Wrapper drauf, damit du z.B. die Auswahl nicht per SendMessage(Handle, EM_SETSEL, ...) setzen musst sondern einfach über eine Property darauf zugreifen kannst.

So etwas selbst zu schreiben ist schon für ein einfaches Memo bestimmt 'ne Menge Quelltext (=Arbeit), wenn du dann noch mit Zeilennummern und Objekten anfängst...

Bernhard Geyer 4. Apr 2007 14:42

Re: TMemo selbst gemacht?
 
Zitat:

Zitat von Flocke
So etwas selbst zu schreiben ist schon für ein einfaches Memo bestimmt 'ne Menge Quelltext (=Arbeit), wenn du dann noch mit Zeilennummern und Objekten anfängst...

Ca. 10.000 Quellcodezeilen. Jedenfalls wenn man das Edit-Control vom ElPack zugrunde liegt das sowas macht

Neutral General 4. Apr 2007 15:28

Re: TMemo selbst gemacht?
 
Zitat:

Zitat von Nuclear-Ping
Hast du dir schonmal TSynEdit angeschaut? Keine Ahnung, ob das mit Objekten umgehen kann, aber Rand mit Zeilennummern, Syntaxhervorhebung etc. kann es.

Ja ich kenn das SynEdit aber das ist nicht geeignet für mein Vorhaben.

Zitat:

Zitat von Flocke
Die VCL setzt einfach nur einen Wrapper drauf

Genau das will ich auch machen aber ich weiß obwohl ich mir das TCustomEdit angeguckt habe nicht genau wie ich das machen muss. Bzw welche Messages die wichtigen sind und welche genau was bewirken...

Gruß
Neutral General

Christian Seehase 4. Apr 2007 20:54

Re: TMemo selbst gemacht?
 
Moin Michael,

Zitat:

Zitat von Neutral General
Ja ich kenn das SynEdit aber das ist nicht geeignet für mein Vorhaben.

Du könntest aber Synedit als Basis nehmen, oder Dir Anregungen holen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 Uhr.

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