AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit StringList als Property

Ein Thema von Helmi · begonnen am 26. Apr 2008 · letzter Beitrag vom 26. Apr 2008
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

Problem mit StringList als Property

  Alt 26. Apr 2008, 10:22
Hallo,

ich steh gerade so richtig auf dem Schlauch.

Ich versuche vergebens eine StringList als Property zu übergeben.

folgendes hab ich schon:

Unit in der die Property ist:
Delphi-Quellcode:
  private
    { Private-Deklarationen }
    //Ein-/Ausgabe
    FEinAusgabe_StringList_Tasten: TStringList;

    function GetEinAusgabe_StringList_Tasten: TStringList;
    procedure SetEinAusgabe_StringList_Tasten(Value: TStringList);
  public
    { Public-Deklarationen }
  published
    { Published-Deklarationen }
    //Ein-/Ausgabe
    property EinAusgabe_StringList_Tasten : TStringList
      read GetEinAusgabe_StringList_Tasten write SetEinAusgabe_StringList_Tasten;

//----------------------------------PRIVATE-----------------------------------//

function TSymboleForm.GetEinAusgabe_StringList_Tasten: TStringList;
begin
  Result := (FEinAusgabe_StringList_Tasten);
end;

procedure TSymboleForm.SetEinAusgabe_StringList_Tasten(Value: TStringList);
begin
  FEinAusgabe_StringList_Tasten.Assign(Value);
end;

//-----------------------------------PUBLIC-----------------------------------//
Und der Aufruf aus der anderen Unit:
Delphi-Quellcode:
  with SymboleForm do
    begin
      //Eingabe-Paramter beschreiben
      EinAusgabe_StringList_Tasten := StringList_Tasten;

      //Symbole anzeigen
      If Execute then //hier wird die andere Form mit ShowModal aufgerufen
        begin
          StringList_Tasten.Assign(EinAusgabe_StringList_Tasten);
        end;
    end;
Wenn ich aber nun mir den Inhalt der StringList_Tasten anschau ist der leer obwohl
in der anderen Form die StringList FEinAusgabe_StringList_Tasten etwas beinhaltet.

Ach ja - ich möchte die StringList FEinAusgabe_StringList_Tasten von der anderen Form
beschreiben als auch auslesen.

Irgendwas mach ich falsch - nur was?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Problem mit StringList als Property

  Alt 26. Apr 2008, 10:46
wie prüfst du denn ob was drin ist? Und woher weißt du das du wirklich was rein stopfst?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Problem mit StringList als Property

  Alt 26. Apr 2008, 10:49
Also ich kann sicher sein, dass was drin ist.

Aber ich hab jetzt den Fehler gefunden.

Die function war das übel:
Delphi-Quellcode:
function TSymboleForm.GetEinAusgabe_StringList_Tasten: TStringList;
begin
  Result := (FEinAusgabe_StringList_Tasten);
end;
So muss es sein:
Delphi-Quellcode:
function TSymboleForm.GetEinAusgabe_StringList_Tasten: TStringList;
begin
  Result := TStringList.Create;

  Result.Assign(FEinAusgabe_StringList_Tasten);
end;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: Problem mit StringList als Property

  Alt 26. Apr 2008, 10:53
Zitat von Helmi:
So muss es sein:
Ein "Getter" sollte nie das zurückgebende Objekt erzeugen, da dies für den Benutzer des Properties nicht ersichtlich ist. Und nur weil du der einzige bist, der dieses Property benutzt, heißt das noch lange nicht, dass du die Hintergrundinformation auch noch ein Jahr später hast und somit eine Fülle an Speicherlecks produzierst.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Problem mit StringList als Property

  Alt 26. Apr 2008, 10:58
We würdest du es dann machen?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Problem mit StringList als Property

  Alt 26. Apr 2008, 11:07
Delphi-Quellcode:
property EinAusgabe_StringList_Tasten : TStringList
  read FEinAusgabe_StringList_Tasten write FEinAusgabe_StringList_Tasten;
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Problem mit StringList als Property

  Alt 26. Apr 2008, 11:46
wenn das Create bei dir die Lösung ist deutet es darauf hinn das du im Constructor deiner Componente dies versäumt hast. Das Create gehört einmalig in den Constructor und eintsprechend ein Free/Destroy in den Destructor.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Problem mit StringList als Property

  Alt 26. Apr 2008, 12:53
Zitat von SirThornberry:
wenn das Create bei dir die Lösung ist deutet es darauf hinn das du im Constructor deiner Componente dies versäumt hast. Das Create gehört einmalig in den Constructor und eintsprechend ein Free/Destroy in den Destructor.
Es handelt sich nicht um eine Komponente (scheint aber so) - das ist nur eine Einstellungsunit die eine StringList von der MainUnit erhält.
(mit anderen Worten: alles was von einer Unit zur anderen Unit übergeben werden muss wird über properties gemacht
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:32 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