AGB  ·  Datenschutz  ·  Impressum  







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

Eine StringList in einer Klasse erstellen

Ein Thema von AnyKey · begonnen am 17. Sep 2009 · letzter Beitrag vom 17. Sep 2009
Antwort Antwort
Seite 1 von 2  1 2      
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#1

Eine StringList in einer Klasse erstellen

  Alt 17. Sep 2009, 09:42
Hi,

ich habe eine Klasse geschrieben, in der ich unter anderem eine StringList erzeuge. Die StringList ist dafür gedacht, Text aus einem RichEdit aufzunehmen um ihn bearbeiten zu können (Suche nach bestimmten wörtern, SyntaxHighlighting). Ich habe dafür in der Klasse verschiedene Funktionen geschrieben, eine zum Erstellen der StringList, eine um sie zu bearbeiten und eine um sie wieder frei zu geben. Mein Problem ist nun allerdings, dass der Text aus dem RichEdit zwar wohl in die Stringlist geladen wird, allerdings nicht mehr ausgelesen werden kann, da der Text wieder verworfen wird. (Die StringList ist global initialisiert worden)

Hier noch die Funktionen:

Delphi-Quellcode:
class procedure TStringManipulation.ScrollListCreate(Dateiname: String);
begin
  ScrollList := TStringList.Create;
  ScrollList.LoadFromFile(Dateiname);
end;


class procedure TStringManipulation.ScrollListDestroy;
begin
  FreeAndNil(ScrollList);
end;
Wäre super wenn ihr mir helfen könntet!

-> Edit: Ok, bei der Create Funktion ist es im moment noch so dass ich den Inhalt aus einer Datei bekomme...

Gruß
AnyKey
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Eine StringList in einer Klasse erstellen

  Alt 17. Sep 2009, 09:49
Wo ist die Stringliste deklariert? Als Member?
Warum Klassenmethode?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#3

Re: Eine StringList in einer Klasse erstellen

  Alt 17. Sep 2009, 09:50
Kannst du mal die Deklaration der Klasse bereitstellen?

Mir leuchtet das nicht ganz ein, dass du die StringList global deklarierst aber mit einer class function erzeugst...
"Hey Süße,
hol mir mal was zu trinken! Du wirst schon wieder hässlich!"

Zitat eines Betrunkenen
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Eine StringList in einer Klasse erstellen

  Alt 17. Sep 2009, 09:51
Guten Morgen,

was spricht dagegen eine weitere Methode zu erstellen
wo du die StringList wieder dem Richedit übergibst?

Ewta so in der Art
Delphi-Quellcode:
TStringManipulation.putContent(lines: TStrings);
begin
  lines.assign(srollist);
end;
(ungetestet)

Aufruf in etwas so:

putContent(DeinRichedit.lines); Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#5

Re: Eine StringList in einer Klasse erstellen

  Alt 17. Sep 2009, 10:22
Hi,

danke für eure Antworten!

Also, die Stringlist ist in der Klasse selbst Deklariert. Ich benutze deswegen eine Klasse, um die Funktionen gegebenenfalls später einmal wieder zu verwenden. Mein Problem ist, trotz dass ich die StringList meinem RichEdit wieder übergebe (hab die Funktion vergessen mit anzugeben) bekomme ich nur ein leeres RichEdit angezeigt. Ich benutze außerdem in der Anwendung MDI-Childs.

Vielleicht fällt ja einem von euch was dazu ein.

Gruß
AnyKey
  Mit Zitat antworten Zitat
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#6

Re: Eine StringList in einer Klasse erstellen

  Alt 17. Sep 2009, 10:24
Ist von TStringManipulation ein Objekt instanziert? Also zu dem Zeitpunkt zu dem die Stringlist instanziert werden soll?
"Hey Süße,
hol mir mal was zu trinken! Du wirst schon wieder hässlich!"

Zitat eines Betrunkenen
  Mit Zitat antworten Zitat
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#7

Re: Eine StringList in einer Klasse erstellen

  Alt 17. Sep 2009, 10:28
TStringManipulationen ist eine Klasse:

Delphi-Quellcode:
type
  TStringManipulation = Class
  public
    class procedure SelectLine(Edit: TRichEdit; Line: Integer; BgrColor: TColor);
    class procedure UnselectLine(Edit: TRichEdit; Line: Integer);
    class procedure SyntaxHighlighting(Edit: TRichEdit; Checked: Bool);
    class procedure Suchen(Edit: TRichEdit; SuchText: String);
    class procedure ScrollListCreate(Dateiname: String);
    class procedure ScrollListDestroy;
    class procedure GetScrollList(Edit: TRichEdit; Datensatz: Integer);
    class procedure SetScrollList(Dateiname: String);
  end;

var
  ScrollList : TStringList;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#8

Re: Eine StringList in einer Klasse erstellen

  Alt 17. Sep 2009, 10:36
Erstmal, wenn die Variable zur Klasse gehört, dann gehört sie doch eigentlich auch da mit rein

Und wie oft bzw. wann erstellst du diese StringListe?
Ich würde sie nur beim Programmstart erstellen und am Ende freigeben, da es eh nur EINE geben kann und man so keine Speicherlecks oder Schlimmeres erst entstehen lassen kann
Delphi-Quellcode:
type
  TStringManipulation = Class
    class var FScrollList : TStringList;
    class procedure Initialize;
    class procedure Finalize;
  public
    class procedure SelectLine(Edit: TRichEdit; Line: Integer; BgrColor: TColor);
    class procedure UnselectLine(Edit: TRichEdit; Line: Integer);
    class procedure SyntaxHighlighting(Edit: TRichEdit; Checked: Bool);
    class procedure Suchen(Edit: TRichEdit; SuchText: String);
    class procedure ScrollListLoad(Dateiname: String);
    class procedure ScrollListClear;
    class procedure GetScrollList(Edit: TRichEdit; Datensatz: Integer);
    class procedure SetScrollList(Dateiname: String);
  end;

class procedure TStringManipulation.Initialize;
begin
  FScrollList := TStringList.Create;
end;

class procedure TStringManipulation.Finalize;
begin
  FScrollList.Free;
end;

class procedure TStringManipulation.ScrollListLoad(Dateiname: String);
begin
  FScrollList.LoadFromFile(Dateiname);
end;

class procedure TStringManipulation.ScrollListClear;
begin
  FScrollList.Clear;
end;

Initialization
  TStringManipulation.Initialize;

Finalization
  TStringManipulation.Finalize;

End.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#9

Re: Eine StringList in einer Klasse erstellen

  Alt 17. Sep 2009, 10:40
Nicht schön, aber selten
"Hey Süße,
hol mir mal was zu trinken! Du wirst schon wieder hässlich!"

Zitat eines Betrunkenen
  Mit Zitat antworten Zitat
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#10

Re: Eine StringList in einer Klasse erstellen

  Alt 17. Sep 2009, 10:51
@ spaxxn: meins is nich schön??

also in meiner Anwendung erstelle ich die StringList ja über meine Funktion, erst dann wenn ich sie Brauche und rufe wenn ich sie nicht mehr brauche die Funktion zum Freigeben auf. Naja aber wenn ihr alle meint das es so nicht die tollste Lösung ist, mach ichs vielleicht doch anders. Meine eigentliche frage is ja auch nur warum ich im RichEdit nichts angezeigt bekomme.

Gruß
AnyKey
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:27 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