AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit Setmethode einer Property

Ein Thema von malo · begonnen am 12. Jun 2005 · letzter Beitrag vom 12. Jun 2005
Antwort Antwort
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#1

Problem mit Setmethode einer Property

  Alt 12. Jun 2005, 16:12
Anschließend an das gestrige Problem, kommt nun wieder eines mit der Property.

Ich habe eine Property, die so aussieht:

property OperatorChars: TCharArray read fOperatorChars write SetOperatorChars; fOperators ist vom Typ TCharArray, was ein array of char ist.

Die Prozedur SetOperatorChars sieht folgendermaßen aus:

Delphi-Quellcode:
procedure TTokens.SetOperatorChars(Index: integer; Value: char);
begin
  if (Index > -1) and (Index <= high(fOperatorChars)) then
    fOperatorChars[Index] := Value
  else if Index = high(fOperatorChars) + 1 then
    AddOperatorChar(value);
end;
AddOperatorChar macht übrigens nichts anderes, als Speicher für das Array zu reservieren und dann einen neuen Array-Index zu beschreiben.

Ich bekomme jetzt bei der Property den Fehler "Inkompatible Typen". Wenn ich die SetOperatorChars-Methode durch die Feldvariable fOperatorChars ersetze, funktioniert es. Allerdings möchte ich das in einer Methode haben, damit ich den Speicher vernünftig reservieren kann, ohne jedes mal erneut SetLength aufzurufen
  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 Setmethode einer Property

  Alt 12. Jun 2005, 16:16
ist ja klar, schließlich schreibst du in deinem property das es sich um den Typ "TCharArray" handelt aber deine setMethode erwartet kein "TCharArray" sondern ein "Integer" und ein "char". Wenn du unbedingt eine Setmethode brauchst dann wirst du die andere Variante von gestern nehmen müssen.
property OperatorChars[Index: Integer]: Char read GetMethode write SetMethode; wobei die GetMethode eine Funktion sein muss welche einen Integer erwartet und einen Char zurück gibt. Und die SetMethode muss eine Procedure sein welche als ersten Parameter einen Integer erwartet und als zweiten einen Char.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#3

Re: Problem mit Setmethode einer Property

  Alt 12. Jun 2005, 16:40
Folgende Probleme:

1. Wenn ich statt der Getmethode nur die Feldvariable in der Property angebe, bekomme ich den Fehler "inkompatible Typen: Char und Procedure". Aber mit der Getmethode hab ich auch ein paar Probleme...

Der Funktionskopf:

function GetOperatorChars(Index: Integer; Value: char): char; Wie muss der richtig sein?


2. Ich brauche in meinem Programm hin und wieder die Größe des Arrays. Vorher konnte ich mit high() auf die Feldvariable zugreifen. Aber bei der Property erwartet Delphi unbedingt einen Index, welcher jedoch imho bei High() nicht nur überflüssig, sondern auch falsch wäre.

Bei SetLength gibt es ähnliche Probleme
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

Re: Problem mit Setmethode einer Property

  Alt 12. Jun 2005, 16:49
Für den Getter schau mal hier:
http://www.delphipraxis.net/internal...ct.php?t=34754
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#5

Re: Problem mit Setmethode einer Property

  Alt 12. Jun 2005, 16:59
Zitat von jfheins:
Sowas wollte ich nicht machen, weil ich gedacht hab, das wär dann ein 2-dimensionales Array (wie man es mir gestern gesagt hat). Aber grade fällt mir auf, dass ja der Typ, den die Property zurückgibt, kein Array ist, und das damit gemeint war

Aber mit den Parametern hast du recht, danke
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Problem mit Setmethode einer Property

  Alt 12. Jun 2005, 17:17
Zitat von malo:
Der Funktionskopf:
function GetOperatorChars(Index: Integer; Value: char): char; Wie muss der richtig sein?
ein Post weiter oben hab ich es doch geschrieben gehabt
Zitat von SirThornberry:
...wobei die GetMethode eine Funktion sein muss welche einen Integer erwartet und einen Char zurück gibt...
aber du übergibst ja einen integer + einen char und gibst einen char zurück
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 23:35 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