AGB  ·  Datenschutz  ·  Impressum  







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

Memo in einer Komponente verwenden

Ein Thema von Ookami · begonnen am 24. Mai 2013 · letzter Beitrag vom 24. Mai 2013
 
Benutzerbild von Ookami
Ookami

Registriert seit: 20. Nov 2009
Ort: Baden Württemberg
77 Beiträge
 
Delphi 2009 Architect
 
#1

Memo in einer Komponente verwenden

  Alt 24. Mai 2013, 18:33
Hallo Programmierer,

ich hätte gerade mal wieder ein Problem, wie folgt:

Ich stricke mir gerade eine Komponente zusammen, in der ich aus kosmetischen Gründen und der Einfachheit halber ein TMemo integrieren möchte.

Was mich schon mal gestört hat, ist das, dass ich von aussen keinen Zugriff auf die Lines erhalte.
Das könnte ich ja umgehen, wäre nicht so schlimm. Nicht doll, aber eben verschmerzbar.

Dass ich aber innerhalb der Komponente nicht auf die Memo zugreifen kann, stört mich dann schon.

ein bisschen Code zum Verständniss

Delphi-Quellcode:
      
           TMBMemo = class(TGraphicControl)
           private
              fErrorMessage : String;
              fLines : TStringList;
         fMemo : TMemo;
              Procedure AnalyseText;
            public
              constructor Create(AOwner: TComponent); override;
              destructor Destroy; override;
              procedure Paint; Override;
            published
              Procedure SetMessage (Const Value : TStringList);
              procedure Clear;
              Property Point : TPoint Write GetPoint;
              Property SearchWord : String Read fWort;
              Property Memo : TMemo write fMemo;
Das Memo aus dem Property-Teil habe ich wieder rausgenommen, da ich von aussen nicht auf die Lines zugreifen kann. Kennt hier jemand ne Möglichkeit?

Jetzt aber zum 2. und auch dem Haupt-Problem


Deklaration im Constructor
Delphi-Quellcode:
constructor TMBWebMemo.Create(AOwner: TComponent);
begin
     inherited;
     Try
        MyHandle := WndHandle;
        WndHandle := FindWindow('TLoader',NIL);
        fLines := TStringList.Create;
   fMemo := TMemo.Create(self);
        fMemo.ScrollBars := ssHorizontal;
        fMemo.Parent := Self.Parent; // hab ich versucht, wegen des fehlenden Parent!
                                        // kein Erfolg damit
        Width := 300;
        Height:= 400;
        fErrorMessage := 'TMBMemo: Create succesful';
        SendMessage(WndHandle, WM_CompError, 0, lParam(PChar(fErrorMessage)));
     Except
       fErrorMessage := 'TMBMemo: Create failed';
       SendMessage(WndHandle, WM_CompError, 0, lParam(PChar(fErrorMessage)));
     End;
     WndHandle := MyHandle;
     fErrorMessage := '';
end;

in einer anderen Prozedur knallt es dann aber an der Stelle
Delphi-Quellcode:
        for i := 0 to Self.fBlocks.Count - 1 do
        Begin
             fBlock := fBlocks[i];
             fMemo.Lines.Add (fBlock.Eintrag); <<<== und hier knallt es mit der Meldung
                                                        "Control has no parent window"
             for j := 0 to fMemo.Lines.Count - 1 do
             Begin
                  Self.fBlock.EintragList.Add(fMemo.Lines[j]);
             End;
             j := Self.fBlock.EintragList.Count;
        End;
Beim Thema Font kannte ich das schon und hab es auch lösen können. Dummerweise weiss ich mir an dieser Stelle nicht zu helfen.

Ich danke allen schon mal im Voraus.
Wolfgang
Grüße und Danke
Wolfgang

Geändert von Ookami (24. Mai 2013 um 18:52 Uhr)
  Mit Zitat antworten Zitat
 


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 14:33 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