Delphi-PRAXiS
Seite 2 von 3     12 3      

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 13. Jun 2006 20:20

Re: .Lines in einer geerbten TRichEdit ändern
 
Ich habe versucht das Programm zu debuggen, und habe bemerkt das der Constructor des RichEdits nicht ausgeführt wird. warum weiß ich nicht. Nach manuellen Instantiieren

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
   PRichEdit1.Create(self);
end;
funktioniert es jetzt.

Green 13. Jun 2006 20:23

Re: .Lines in einer geerbten TRichEdit ändern
 
häää aber ohne des Add() ging es doch auch mit dem constructor, ich hab doch an dem gar nix geändert ??????

Green 13. Jun 2006 20:27

Re: .Lines in einer geerbten TRichEdit ändern
 
die delphi antwort nach dem ausführen des TestProgramms:
Zitat:

Im Projekt Project1.exe ist eine Exception der Klasse EComponentError mit der Meldung 'Komponente mit der Bezeichnung PRichEdit1 existiert bereits' aufgetreten.
also lags doch nit am constructor ...
und es funzt immer noch nit

mkinzler 13. Jun 2006 20:27

Re: .Lines in einer geerbten TRichEdit ändern
 
Er ruft wohl den falschen auf:

Delphi-Quellcode:
constructor Create( AOWner: TComponent); override;
muß es heißen.

Green 13. Jun 2006 20:32

Re: .Lines in einer geerbten TRichEdit ändern
 
als mit override kein unterschied..

mkinzler 13. Jun 2006 20:39

Re: .Lines in einer geerbten TRichEdit ändern
 
Liste der Anhänge anzeigen (Anzahl: 2)
Mein Projekt

Green 13. Jun 2006 21:00

Re: .Lines in einer geerbten TRichEdit ändern
 
also jetzt versteh ich GAR NIX MEHR... mein scheiss verdammtes delphi will mich glaub ich verarschen...

also immer wenn ich dein testprojekt öffne und es per F9 testen will kommt GAR NIX. NULL KOMA NULL es passiert einfch NIX.

--> neues projekt: geht
--> PRichEdit aufs Formular gesetzt, F9, NIX NIX VERDAMMT

Green 13. Jun 2006 21:03

Re: .Lines in einer geerbten TRichEdit ändern
 
und immer wenn ich Speichern will kommt ein 'Abstrakter Fehler' so ein scheiss man, ich versteh einfach gar nix mehr

mkinzler 13. Jun 2006 21:05

Re: .Lines in einer geerbten TRichEdit ändern
 
Meine Exe geht?

Green 13. Jun 2006 21:12

Re: .Lines in einer geerbten TRichEdit ändern
 
deine geht

mkinzler 13. Jun 2006 21:18

Re: .Lines in einer geerbten TRichEdit ändern
 
Welche Delphiversion?

Green 13. Jun 2006 22:04

Re: .Lines in einer geerbten TRichEdit ändern
 
d 2005 arch

mkinzler 13. Jun 2006 22:09

Re: .Lines in einer geerbten TRichEdit ändern
 
Sehr komisch, zwischen D2005 und D2006 dütfte sich ja nicht so viel getan haben. Besonders weil der Code eigentlich auch auf viel älteren Versionen funktionieren sollte.

Green 13. Jun 2006 22:16

Re: .Lines in einer geerbten TRichEdit ändern
 
ich schick dir nochnal die unit:

Delphi-Quellcode:
unit PRichEdit;

interface

uses
  SysUtils, Classes, Controls, StdCtrls, ComCtrls, Dialogs;

type
  TColoredStrings = class(TStrings)
  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    function Add(const S:string): integer; override;
    { Public-Deklarationen }
  published
    { Published-Deklarationen }
  end;


  TPRichEdit = class(TRichEdit)
  private
    { Private-Deklarationen }
    FMyLines: TColoredStrings;
  protected
    { Protected-Deklarationen }
  public
    constructor Create( AOWner: TComponent); override;
    destructor Destroy;
    { Public-Deklarationen }
  published
    { Published-Deklarationen }
    property Lines: TColoredStrings read FMyLines write FMyLines;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [TPRichEdit]);
end;

function TColoredStrings.Add(const S:string): integer;
begin
  showmessage(S);
end;

constructor TPRichEdit.Create(AOWner: TComponent);
begin
  inherited Create( AOwner);
  FMyLines := TColoredStrings.Create;
end;

destructor TPRichEdit.Destroy;
begin
  FMyLines.Destroy;
  inherited Destroy;
end;

end.

mkinzler 13. Jun 2006 22:28

Re: .Lines in einer geerbten TRichEdit ändern
 
Der Code ist min meinerer identisch. Lösche mal die dcus und Installiere das Package neu.
Hast du mal im Debugger geschaut, ob der überladene Konstruktor zur Anwendung kommt?

Green 14. Jun 2006 12:42

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

Zitat von mkinzler
{...}Lösche mal die dcus{...}

was meinste damit???

Zitat:

Zitat von mkinzler
Hast du mal im Debugger geschaut, ob der überladene Konstruktor zur Anwendung kommt?

wo kann ich des sehn?

mkinzler 14. Jun 2006 12:48

Re: .Lines in einer geerbten TRichEdit ändern
 
Setzte ein Breakpoint im Konstruktor und starte mal. Dann siehst du ob der Konstruktor aufgerufen wird.

Green 14. Jun 2006 22:26

Re: .Lines in einer geerbten TRichEdit ändern
 
das problem is das er sobald ich die kompo aufs form zoeh er den code gar nit erst ausführt...

Green 14. Jun 2006 22:39

Re: .Lines in einer geerbten TRichEdit ändern
 
ich bekomm beim ausführen immer folgenden fehler:

Zitat:

[Fehler] E2161 RLINK32: Error opening file "C:\Dokumente und Einstellungen\Jan\Eigene Dateien\Borland Studio-Projekte\Unit1.dfm"
hoffe du kanns mir helfen...
mfG Green

mkinzler 14. Jun 2006 23:00

Re: .Lines in einer geerbten TRichEdit ändern
 
Es scheint so, asl wäre deine Formular-Datei zerschossen. Versuche mal diese durch eine Backup zu ersetzten.

Green 14. Jun 2006 23:14

Re: .Lines in einer geerbten TRichEdit ändern
 
wie meinen?

mkinzler 14. Jun 2006 23:17

Re: .Lines in einer geerbten TRichEdit ändern
 
Deine .dfm scheint kaputt zu sein. Sichere eine Backup-Version ein oder versuche sie mit einem texteditor zu reparieren.

Green 14. Jun 2006 23:27

Re: .Lines in einer geerbten TRichEdit ändern
 
ääähm welche dfm? und was soll ich dadran reparieren? ich glaube nit das es an einer internen dfm liegt, weil das nur passiert sobald ich PRichEdit aufs form zieh...

aber wenn doch, hast dun bak?

mkinzler 14. Jun 2006 23:28

Re: .Lines in einer geerbten TRichEdit ändern
 
Delphi erzeugt auomatisch welche im __history-Ordner

Green 14. Jun 2006 23:31

Re: .Lines in einer geerbten TRichEdit ändern
 
ja, aber welche dfm soll den kaputt sein??

mkinzler 14. Jun 2006 23:33

Re: .Lines in einer geerbten TRichEdit ändern
 
Na diese "C:\Dokumente und Einstellungen\Jan\Eigene Dateien\Borland Studio-Projekte\Unit1.dfm".

Aber eigentlicjh kannst du ja auch eine neue Form erstellen.

Green 14. Jun 2006 23:35

Re: .Lines in einer geerbten TRichEdit ändern
 
naja wenn ich ne neue form erstelle, dann funktionierts, also dann kommt kein fehler, wenn ich dann eine PRichEdit aufs form bring gehts nimer

Green 14. Jun 2006 23:37

Re: .Lines in einer geerbten TRichEdit ändern
 
ääähm das komische is das an der stelle die mir der debugger angibt ('C:\Dokumente und Einstellungen\Jan\Eigene Dateien\Borland Studio-Projekte\Unit1.dfm') gar keine unit1.dfm existiert, nur eine unit1.dcu

mkinzler 14. Jun 2006 23:42

Re: .Lines in einer geerbten TRichEdit ändern
 
Also irgendwas stimmt mit deinem delphi nicht. In der dfm-Datei sind die persistenten Einstellungen gespeichert (die werte, die im OI angezeigt und verändert werden können)
Wie du gesehen hast, geht bei mir der selbe Source.

Green 15. Jun 2006 07:37

Re: .Lines in einer geerbten TRichEdit ändern
 
vllt. installier ichs mal neu

Green 16. Jun 2006 21:05

Re: .Lines in einer geerbten TRichEdit ändern
 
also ich hab jetzt delphi neuinstalliert und die kompo installiert und selbige in einem neuen projekt ausprobieren wollen, aber immer wenn ich die kompo aufs Feld zieh dann addet er in den uses die unit PRichEdit welche er nicht findet und mit einem fehler quitiert... is das normal??

Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, PRichEdit;

mkinzler 16. Jun 2006 21:10

Re: .Lines in einer geerbten TRichEdit ändern
 
Das er sie hinzufügt isr richtig. wenn er sie nicht findet nicht. Ist das Verzeichnis der kompo i, Bib-Pfad von Delphi?

Green 16. Jun 2006 21:11

Re: .Lines in einer geerbten TRichEdit ändern
 
ahja und wenn ich in Projekt optionen den pfad hinzufüg dann kommt zwar der fehler nicht maher aber ein anderer... den ich seeehr gut kenne... http://www.delphi-forum.de/images/smiles/icon_motz.gif

Zitat:

[Fehler] E2161 RLINK32: Error opening file "C:\Dokumente und Einstellungen\Jan\Eigene Dateien\Borland Studio-Projekte\Unit1.dfm"

Green 16. Jun 2006 21:12

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

Zitat von mkinzler
Das er sie hinzufügt isr richtig. wenn er sie nicht findet nicht. Ist das Verzeichnis der kompo i, Bib-Pfad von Delphi?

ich versteh nur bahnhof... was willst du mir sagen?

mkinzler 16. Jun 2006 21:14

Re: .Lines in einer geerbten TRichEdit ändern
 
Füge den Pfad lieber in den allgeimeine Option von Delphi himzu, dann gilt er für alle Projekte.

Hast du dein Projekt schon gespeichert?

Green 16. Jun 2006 21:15

Re: .Lines in einer geerbten TRichEdit ändern
 
gespeichert hab ichs noch nit

Green 16. Jun 2006 21:16

Re: .Lines in einer geerbten TRichEdit ändern
 
beim speichern kommt dann ein abstrakter fehler...

mkinzler 16. Jun 2006 21:18

Re: .Lines in einer geerbten TRichEdit ändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn du einer Form eine Komponente hinzufügst, fügt delphi automatisch den Unitnamen den uses hinzu, diese muß der Compiler aber finden können. Sie muß sich deshalb im Bibliotheks-/oder Suchpfad der IDE oder des Projektes befinden ( ersteres besser)

[Edit: dann speicher es mal]

Green 16. Jun 2006 21:30

Re: .Lines in einer geerbten TRichEdit ändern
 
wie oben geschrieben kommt beim speichern dann ein abstrakter fehler mit den details:

Zitat:

[4001659E]{rtl90.bpl } SysUtils.AbstractErrorHandler (Line 13663, "sysutils.pas" + 0) + $12
[40031C34]{rtl90.bpl } Classes.TStrings.DefineProperties (Line 4264, "classes.pas" + 1) + $13
[40038B86]{rtl90.bpl } Classes.TWriter.WriteProperties (Line 7756, "classes.pas" + 19) + $8
[40039979]{rtl90.bpl } Classes.WriteObjectProp (Line 8152, "classes.pas" + 28) + $9
[40039D42]{rtl90.bpl } Classes.TWriter.WriteProperty (Line 8236, "classes.pas" + 22) + $1
[40038B51]{rtl90.bpl } Classes.TWriter.WriteProperties (Line 7750, "classes.pas" + 13) + $8
[4003860E]{rtl90.bpl } Classes.TWriter.WriteData (Line 7589, "classes.pas" + 30) + $6
[4003D953]{rtl90.bpl } Classes.TComponent.WriteState (Line 10482, "classes.pas" + 0) + $3
[0053FE37]{vcl90.bpl } Controls.TWinControl.GetChildren (Line 8455, "Controls.pas" + 4) + $D
[00557617]{vcl90.bpl } Forms.TCustomForm.GetChildren (Line 2969, "Forms.pas" + 1) + $A
[4003871F]{rtl90.bpl } Classes.TWriter.WriteData (Line 7611, "classes.pas" + 52) + $16
[4003D953]{rtl90.bpl } Classes.TComponent.WriteState (Line 10482, "classes.pas" + 0) + $3
[40038821]{rtl90.bpl } Classes.TWriter.WriteDescendent (Line 7635, "classes.pas" + 6) + $4
[00359A22]{designide90.bpl} ComponentDesigner.TComponentRoot.WriteRootStream (Line 3867, "ComponentDesigner.pas" + 5) + $D
[00356899]{designide90.bpl} ComponentDesigner.TComponentRoot.GetRootStream (Line 2720, "ComponentDesigner.pas" + 14) + $C
[0035C0AD]{designide90.bpl} ComponentDesigner.TComponentRoot.Save (Line 4659, "ComponentDesigner.pas" + 1) + $1E
[030763DF]{delphicoreide90.bpl} DelphiModule.TPascalCodeMgrModHandler.SaveFile (Line 1104, "DelphiModule.pas" + 1) + $5
[006B5B0C]{coreide90.bpl} SourceModule.TSourceModule.SaveFile (Line 609, "SourceModule.pas" + 4) + $5
[00773782]{coreide90.bpl} DocModul.TDocModule.Save (Line 1317, "DocModul.pas" + 61) + $5
[006B6A7B]{coreide90.bpl} SourceModule.TSourceModule.Save (Line 910, "SourceModule.pas" + 17) + $B
[0070851A]{coreide90.bpl} EditorControl.TEditEventHandler.EditSaveFile (Line 7125, "EditorControl.pas" + 2) + $10
[0053CF02]{vcl90.bpl } Controls.TWinControl.WndProc (Line 6673, "Controls.pas" + 51) + $4
[4003EEC0]{rtl90.bpl } Classes.StdWndProc (Line 11456, "classes.pas" + 8) + $0
[77D18651]{user32.dll } IsCharAlphaNumericA + $6495
[77D1871E]{user32.dll } IsCharAlphaNumericA + $6562
[77D1914E]{user32.dll } PostMessageA + $A8
[77D19193]{user32.dll } PostMessageA + $ED
[77FA4DA3]{ntdll.dll } KiUserCallbackDispatcher + $10
[77D1AA72]{user32.dll } SendMessageA + $42
[0074E992]{coreide90.bpl} VClient.SendWindowMsg (Line 2605, "VClient.pas" + 2) + $10
[0069617E]{coreide90.bpl} IDEKbd.@interpret_bmi_macro$qqrp5BMI_tpcp11CmdMapT ableppc (Line 39, "bmi.cpp" + 14) + $5
[00694D92]{coreide90.bpl} IDEKbd. (Line 132, "kbpublic.cpp" + 88) + $10
[0074C27C]{coreide90.bpl} VClient.CmdStringProc (Line 502, "VClient.pas" + 5) + $17
[0073E94C]{coreide90.bpl} KbClient.TIDEKBDFrameAPI.MapAndEvalInternal (Line 832, "KbClient.pas" + 10) + $11
[0073E3E1]{coreide90.bpl} KbClient.HandleKey (Line 562, "KbClient.pas" + 6) + $12
[0073E8CF]{coreide90.bpl} KbClient.TIDEKBDFrameAPI.ProcessKeyStroke (Line 810, "KbClient.pas" + 238) + $1
[0073F414]{coreide90.bpl} KbClient.TIDEKBDChildAPI.ProcessKeyStroke (Line 1357, "KbClient.pas" + 14) + $16
[0070712C]{coreide90.bpl} EditorControl.TCustomEditControl.DoKeyDown (Line 6632, "EditorControl.pas" + 6) + $18
[0053CF02]{vcl90.bpl } Controls.TWinControl.WndProc (Line 6673, "Controls.pas" + 51) + $4
[4003EEC0]{rtl90.bpl } Classes.StdWndProc (Line 11456, "classes.pas" + 8) + $0
[77D18651]{user32.dll } IsCharAlphaNumericA + $6495
[77D1871E]{user32.dll } IsCharAlphaNumericA + $6562
[77D1914E]{user32.dll } PostMessageA + $A8
[77D19193]{user32.dll } PostMessageA + $ED
[77FA4DA3]{ntdll.dll } KiUserCallbackDispatcher + $10
[77D1AA72]{user32.dll } SendMessageA + $42

Green 16. Jun 2006 21:46

Re: .Lines in einer geerbten TRichEdit ändern
 
ich habs noch ma ausprobiert, also es passiert wirklich nur mit der kompo, andere selbstgemachte kompos laufen tadellos...

irgendwas kann da doch nit stimmen


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:23 Uhr.
Seite 2 von 3     12 3      

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