Property index

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
ThomasZ
Beiträge: 2
Registriert: Mo 18. Jan 2010, 06:45

Property index

Beitrag von ThomasZ »

Hallo,

beim lesen von \fcl-web\src\httpdefs.pp fielen mir Zeilen wie
Property HttpVersion : String Index 0 Read GetFieldValue Write SetFieldValue;
auf. Was bedeutet Index 0?

Gruß
Thomas

lrlr
Beiträge: 127
Registriert: Di 3. Nov 2009, 09:48

Re: Property index

Beitrag von lrlr »

das beim lesen dieses properties GetFieldValue (0) aufgerufen wird..

bei schreiben SetFieldValue(0, ...)

verwendet man hauptsächlich bei published properties, ...

man kann so mehrere properties mit index 1, index 2 usw erstellen

es wird dann jeweiles GetFieldValue (1), GetFieldValue (2) usw. aufgerufen..

ThomasZ
Beiträge: 2
Registriert: Mo 18. Jan 2010, 06:45

Re: Property index

Beitrag von ThomasZ »

Ah,

hab mir die Datei jetzt genauer angesehen und folgen Abschnitt gefunden:

Code: Alles auswählen

While (Result<Strings.Count) and (Strings[Result]<>'') do
      begin
      S:=Strings[Result];
      P:=Pos(':',S);
      if (P<>0) then
        begin
        VN:=Copy(S,1,P-1);
        Delete(S,1,P);
        P:=GetFieldNameIndex(VN);
        If (P<>-1) then
          [b]SetFieldValue(P,S);[/b]
        end;
      Inc(Result);
      end;
    end;
Da kommen die Daten anscheinend in der Reihenfolge des Index herein. Spart dem Programmierer jedes Property einzeln anzusprechen.
Danke für die Erklärung.

Gruß
Thomas

Benutzeravatar
theo
Beiträge: 10949
Registriert: Mo 11. Sep 2006, 19:01

Re: Property index

Beitrag von theo »

Hier ist ein Beispiel:
http://www.delphibasics.co.uk/RTL.asp?Name=Index" onclick="window.open(this.href);return false;

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Property index

Beitrag von pluto »

Sie sind eigentlich ganz vorteilhaft, sie verkürzen den Code um einige / wenige zeilen
MFG
Michael Springwald

Antworten