AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Syntax - Eckige Klammern bei Klasseninstanzen
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi Syntax - Eckige Klammern bei Klasseninstanzen

Ein Thema von Aphton · begonnen am 9. Nov 2009 · letzter Beitrag vom 9. Nov 2009
Antwort Antwort
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#1

Delphi Syntax - Eckige Klammern bei Klasseninstanzen

  Alt 9. Nov 2009, 13:00
Hallo liebe Leute,
Ich habe heute in der Schule 'ne Aufgabe zu Datenbanken bekommen.
Die Aufgaben werden Anhand von Beispielen durchprogrammiert.
In einem dieser Beispiele hab ich diesen Codefetzen gefunden und wunder mich über die Syntax:

  Table2['Datum'] := Date; - was haben die "[]" bei einer Instanz zu suchen?
- wie funktionieren sie?
- wie kann ich soetwas selber programmieren (hab mir die Klasse genauer angesehen, aber nichts gefunden bzw. ich bin nicht alle Mutterklassen durchgegangen)

Bai de wey - ich habe mich schon um die Suche bemüht, jedoch nichts brauchbares gefunden.

Bedanke mich schonmal im voraus

MfG,
Euer Aphi ^^
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
9. Nov 2009, 13:02
Dieses Thema wurde von "Phoenix" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Da isses besser aufgehoben.
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Delphi Syntax - Eckige Klammern bei Klasseninstanzen

  Alt 9. Nov 2009, 13:05
Dies ist dann mögich enn die Klassen ein Array-Property als Default-Wert hat. Dann kann diese abgekürzte Schreibweise verwendet werden. Ist auch bei TStrings der Fall da hier das Items-Property default ist. myStrings.Itemes[i] = myStrings[i];
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#4

Re: Delphi Syntax - Eckige Klammern bei Klasseninstanzen

  Alt 9. Nov 2009, 13:06
Hallo, dass ist ein sogenanntes Index-Property.
Delphi-Quellcode:
Property Wrdlbrmpft[Index: String] : Type read getWrdlbrmpft write setWrdlbrmpft;

function TMyTYpe.getWrdlbrmpft(Index: String): Type;
begin
  // hole item mit Namen in 'Index' und gebe es zurück
end;


procedure TMyType.setWrdlbrmpft(Index: String, Value: Type);
begin
  // schreibe wert in Value in Item mit Namen in 'Index';
end
Ein anderes Beispiel findest Du hier: http://www.delphibasics.co.uk/RTL.asp?Name=Property
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Delphi Syntax - Eckige Klammern bei Klasseninstanzen

  Alt 9. Nov 2009, 13:07
Hi,

Delphi-Quellcode:
// Imaginäres Beispiel
TBeispiel = class
private
  FFields: TFieldList;
  procedure SetField(Index: String, const Value: TField);
  function GetField(Index: String): TField;
public
  property Fields[Index: String]: TField read GetField write SetField; default;
end;

implementation

procedure TBeispiel.SetField(Index: String, const Value: TField);
begin
  FFields.GetFieldByName(Index) := Value;
end;

function TBeispiel.GetField(Index: String): TField;
begin
  Result := FFields.GetFieldByName(Index);
end;
Delphi-Quellcode:
var test: TBeispiel;
begin
  test.Fields['Hallo'] := blubb;
  // Abkürzende schreibweise für die Zeile
  // obendrüber:
  test['Hallo'] := blubb; // Kann man so schreiben wegen dem "default" keyword von der Fields Property
end;
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Delphi Syntax - Eckige Klammern bei Klasseninstanzen

  Alt 9. Nov 2009, 13:23
Verstehe...
Nun stellt sich mir die Frage, was passiert, wenn ich nun zwei Property Felder mit gleichem Index-Typ habe? Wird dann willkürlich eine Property ausgewählt, bzw. funktioniert das dann noch?

Edit: Ich probiers mal aus

MfG
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Delphi Syntax - Eckige Klammern bei Klasseninstanzen

  Alt 9. Nov 2009, 13:25
Nein, denn man kann ja immer nur eine Property als Default markieren.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

Re: Delphi Syntax - Eckige Klammern bei Klasseninstanzen

  Alt 9. Nov 2009, 13:26
Du kannst ja nur eine davon als Standard definieren (bzw. es wird nur eine akzeptiert). Die andere kann aber immer noch über die lange Schreibweise angesprochen werden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Delphi Syntax - Eckige Klammern bei Klasseninstanzen

  Alt 9. Nov 2009, 13:28
Zitat von mleyen:
Nein, denn man kann ja immer nur eine Property als Default markieren.
Ok, alles klar.

Vielen dank

MfG
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Delphi Syntax - Eckige Klammern bei Klasseninstanzen

  Alt 9. Nov 2009, 13:36
Man kann auch 2 Array-Property als Default festlegen,
wenn diese via Overload markiert sind.

Dann wird es, wie bei Prozeduren/Funktionen, anhand der Parameter entschieden.

Aber sowas ist erst seit D2007 oder D2009 nutzbar.


PS: das DEFAULT bei Array-Propertyies ist nicht zu verwechseln mit dem DEFAULT der "normalen" ordinalen Property!


Wird in himXML erfolgreich so genutzt
$2B or not $2B
  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 18:13 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