Delphi-PRAXiS
Seite 3 von 3     123   

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 .Lines in einer geerbten TRichEdit ändern (https://www.delphipraxis.net/71245-lines-einer-geerbten-trichedit-aendern.html)

mkinzler 16. Jun 2006 21:49

Re: .Lines in einer geerbten TRichEdit ändern
 
Wie es scheint, bist du da auf einen Bug von D2005 gestoßen, denn in D2006 funktioniert es tadellos.Komsich ist aber das du bisher eigentlich so gut wie nichts geändert hast, außer einer weiteren privaten Eigenschaft und eine Property für diese.

Green 16. Jun 2006 21:57

Re: .Lines in einer geerbten TRichEdit ändern
 
aber was mich wundert wo genau dieser bug denn nun liegt...

mkinzler 16. Jun 2006 22:00

Re: .Lines in einer geerbten TRichEdit ändern
 
Vielliecht mag D2005 das Überladen von Properties nicht. Benenne mal die Property um.

Hawkeye219 16. Jun 2006 22:09

Re: .Lines in einer geerbten TRichEdit ändern
 
Hallo,

hier ein paar Anmerkungen zur aktuelle Version eures Quelltextes:

1.) Als Vorgängerklasse für TColoredStrings solltet ihr wieder TStringList nehmen. Ich vermute, daß dann die abstrakten Fehler beim Speichern verschwinden.

2.) Der Destruktor von TPRichEdit sollte mit der Direktive override gekennzeichnet werden, sonst wird er nicht aufgerufen.

3.) Im Destruktor von TPRichEdit muß es "FMyLines.Free" heißen. Die Methode Destroy sollte laut Online-Hilfe niemals direkt aufgerufen werden.

@Green
Was hast du eigentlich mit deiner Komponente vor? TRichEdit stellt immer die Strings aus dem Lines-Array dar. Wie möchtest du sie davon überzeugen, deine Strings anzuzeigen?

Gruß Hawkeye

Green 16. Jun 2006 22:09

Re: .Lines in einer geerbten TRichEdit ändern
 
jetzt kommt stadessen ein abstrakter fehler, also nicht mehr das ding mit der dfm

€:geschrieben nachdem hawkeye geantwortet hat

Green 16. Jun 2006 22:11

Re: .Lines in einer geerbten TRichEdit ändern
 
ich will die .add funktion so überladen das sie auf bestimmte steuerzeichen 'hört' und will dazu die add funvtion nehmen und in selbiger dann den ankommenden String S 'parsen' und mit Lines[x] den geänderten dann adden

Green 16. Jun 2006 22:22

Re: .Lines in einer geerbten TRichEdit ändern
 
@hawkeye: also so klappts jetzt, das problem is jetzt wie du schon geschrieben hast, wie verklicker ich meinm PRichEdit die Lines dann auch anzuzeigen??? sie sind drin, also es funktioniert, wenn ich sie manuel ausles, aber er zeigt sie im PRichEdit nit an...
was tun?

Sharky 17. Jun 2006 05:31

Re: .Lines in einer geerbten TRichEdit ändern
 
Hai Green,

wenn Du dein jeweils letztes Posting ergänzen möchtest benutzte dafür bitte die Edit-Funktion und schreibe nicht jedes mal einen neuen Beitrag. Danke.

Green 17. Jun 2006 08:26

Re: .Lines in einer geerbten TRichEdit ändern
 
jo sorry, werd mirs merken, aber hat den jemand ne idee? also kann mir jemand sagen was ich machen soll?

mkinzler 17. Jun 2006 19:59

Re: .Lines in einer geerbten TRichEdit ändern
 
Zitat:

1.) Als Vorgängerklasse für TColoredStrings solltet ihr wieder TStringList nehmen. Ich vermute, daß dann die abstrakten Fehler beim Speichern verschwinden.
Warum wir ich habe von Anfang an ne Strimgliste genommen, aber irgend wie scheint Grenn mein Vorschlag dahingehend zu ignorieren, obwohl ich im Beitrag #17 + #19 im versucht hab ihm zu erklären warum.

Zitat:

3.) Im Destruktor von TPRichEdit muß es "FMyLines.Free" heißen. Die Methode Destroy sollte laut Online-Hilfe niemals direkt aufgerufen werden.
Mein Fehler.
Zitat:

aber hat den jemand ne idee? also kann mir jemand sagen was ich machen soll?
Hin Hinsicht auf was?

Hawkeye219 17. Jun 2006 20:20

Re: .Lines in einer geerbten TRichEdit ändern
 
Sorry Markus, bei der Vielzahl der Beiträge in diesem Thread habe ich wohl auch die Übersicht verloren.

Green hat ja inzwischen (in Beitrag #86) erklärt, was er eigentlich bezweckt. Ich glaube allerdings nicht, daß er auf dem eingeschlagenen Weg einen Erfolg erzielen wird - zumindest dann nicht, wenn er auch die Editorfunktion des RichEdit-Controls nutzen möchte. Das Synchronisieren der eigenen Stringliste mit der internen Stringliste von TRichEdit dürfte zu aufwendig sein.

Gruß Hawkeye

Green 18. Jun 2006 18:17

Re: .Lines in einer geerbten TRichEdit ändern
 
also ist es unmöglich lediglich die .add funktion von Lines in einem TRichEdit zu überschreiben, oder seh ich das was falsch?
es wäre jetzt nit so schlimm aber das wäre dann schon ne sache die finde ich änder bar sein könnte...
kann man da nich was machen mit inherited oder so?

DGL-luke 18. Jun 2006 18:21

Re: .Lines in einer geerbten TRichEdit ändern
 
Dazu müsstest du von TStringlist ableiten, da das add überschrieben, und in einem abgeleiteten richedit die stringlist ersetzen... das würde in arbeit ausarbeiten, sag ich dir.

mkinzler 18. Jun 2006 18:26

Re: .Lines in einer geerbten TRichEdit ändern
 
Zitat:

Zitat von DGL-luke
Dazu müsstest du von TStringlist ableiten, da das add überschrieben, und in einem abgeleiteten richedit die stringlist ersetzen... das würde in arbeit ausarbeiten, sag ich dir.

Macht das programm das nicht?

DGL-luke 18. Jun 2006 18:31

Re: .Lines in einer geerbten TRichEdit ändern
 
ähm... ja. :gruebel:

also die möglichkeit, einzig und allein .Add zu überschrieben und alles andere intakt zu lasen, gibt es jedenfalls nicht. Nicht ohne nach der Kompilierung in der PE rumzupfuschen...

Green 19. Jun 2006 12:26

Re: .Lines in einer geerbten TRichEdit ändern
 
ääää hä? also geht des jetzt oder nit?

also es sollte schon in delphi möglich sein, es kann doch nit sein das man bei einer so objekt orientierten sprache so etwas nicht machen kann...

DGL-luke 19. Jun 2006 12:32

Re: .Lines in einer geerbten TRichEdit ändern
 
wie bereits gesagt, gehen tuts, aber da muss man eben sehr weit unten bzw oben in der klassenhierarchie ansetzen...

Oder das ganze wrappen:

Delphi-Quellcode:
type
  TMyRichedit = class(TRichedit);
    public
      procedure CustomAddLine(s: string);
  end;

procedure TMyRichedit.CustomAddLine(s: string);
begin
  Showmessage(s);
  self.Lines.Add(s);
end;
Dann muss da nix abgelitten werden, du musst nur im benutzenden Quelltext darauf achten, dass diese Funktion überall aufgerufen wird.

Green 19. Jun 2006 14:10

Re: .Lines in einer geerbten TRichEdit ändern
 
ja so hab ich mir das auch überlegt, und so werd ichs dann letzendelich wahrscheinlich auch machen. aber ich wollte das ganze halt möglichst benutzer freundlich und kompatibel gestalten, sodass man eben weiter lines.add ändern kann, aber so passt das schon...

auf jeden mal einen gan großen DANKE an dich und vor allem mkinzler, bist echt ziemlich kompetent


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:14 Uhr.
Seite 3 von 3     123   

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