Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Record *FERTIG*


G-McKree - Fr 06.06.03 19:05
Titel: Record *FERTIG*
Ich brauch nen Record, der alle Eigenschaften von TImage und ein paar weitere hat. Hab aber null Ahnung, wie ich das anstellen soll.


G-McKree - Sa 07.06.03 15:44

oder gibt es ne möglichkeit nem TImage ein paar neue 'property's anzuhängen?


Christian S. - Sa 07.06.03 15:48

Du könntest Deine eigene Klasse von TImage ableiten, dann kannst Du da Eigenschaften hinzufügen, wie Du lustig bist.


G-McKree - Sa 07.06.03 15:49

Peter Lustig hat folgendes geschrieben:
Du könntest Deine eigene Klasse von TImage ableiten, dann kannst Du da Eigenschaften hinzufügen, wie Du lustig bist.

genau so was mein ich, hab aber keine ahnung, wie das geht


Motzi - Sa 07.06.03 15:52

Dann wirds Zeit sich mal mit OOP zu beschäftigen! :)
Schau dir vielleicht mal meine Ausarbeitung zu OOP in Delphi an: http://www.x-spy.net/personal


G-McKree - Sa 07.06.03 16:06

Motzi hat folgendes geschrieben:
Dann wirds Zeit sich mal mit OOP zu beschäftigen! :)
Schau dir vielleicht mal meine Ausarbeitung zu OOP in Delphi an: http://www.x-spy.net/personal


dein tutorail is zwar schön, aber könnte mehr source drin sein, ich weiss jez nämlich nich, wo ich das deklarieren soll

wie wärs mit etwas source?


G-McKree - Sa 07.06.03 16:08

P.S. was is diese ungarische notation?


Christian S. - Sa 07.06.03 16:09

Tja, eigentlich wollte ich jetzt wieder auf ein Delphi-Source-Tutorial verweisen, aber nachdem ich Motzis Abahndlung überflogen habe, denke ich, kann das Tutorial bei Delphi-Source nicht besser sein. Super Arbeit! Respekt!


Christian S. - Sa 07.06.03 16:12

@G-McKree Motzis Abhandlung anscheinend nicht zu schätzen weis, hier [http://www.tutorials.delphi-source.de/tswitch/index.shtml] noch ein Link nach Delphi-Source. Aber wie gesagt: bei Motzis Text bekommst das Wissen mit den bei OOP sehr wichtigen Grundlagen vermittelt.


G-McKree - Sa 07.06.03 16:15

ich hab jez ne class, aber delphi will deren eigenschaften nicht akzeptieren


Quelltext
1:
2:
3:
4:
5:
6:
7:
type
  TQuad = class(TImage)
   property Left: boolean;
   property Right: boolean;
   property Up: boolean;
   property Down: boolean;
   property Typ: integer;


Motzi - Sa 07.06.03 18:19

@Peter Lustig: danke für das Lob! *freu* :D 8)
Wie auch auf der Homepage steht war das ganze eine Ausarbeitung für meine Informatik-Abschlußprüfung (Matura) und daher eher theoretisch gehalten und mit weniger Source, aber dafür eben auch tiefergehender...

@G-McKree: die ungarische Notation ist eine "Standardisierung" für den Präfix bei der Namensgebung von Variablen o.ä.

Zu deiner Klasse: bein property muss man immer angeben wie diesen gelesen bzw gesetzt werden soll. Also entweder wird direkt auf das private Feld zugegriffen oder aber du verwendest Lese- oder Schreib-Methoden.


Delete - Sa 07.06.03 19:47

Auf meiner Seite: http://www.luckie-online.de findest du bei den Tutorials auch einen kleinen Text über OOPP und Klassen mit Delphi.

@Motzi: Kann ich dich da zu den weiterführenden Links hinzufügen?


Motzi - Sa 07.06.03 20:04

Luckie hat folgendes geschrieben:
@Motzi: Kann ich dich da zu den weiterführenden Links hinzufügen?

Natürlich kannst du! Und du darfst auch, soll heißen ich erlaubs dir! ;)


G-McKree - Mo 09.06.03 20:42

also wie ich jez meine proertys zum laufen kriege, ham ich net geschnallt


Christian S. - Mo 09.06.03 20:46

Du darfst uns Deine Probleme auch ausführlicher beschreiben! Sprich Dich aus, wir sind alle Deine Freunde!


Delete - Mo 09.06.03 20:52

Das ist wie bei der Beichte oder beim Arzt hier: Wir unterliegen alle hier der Schweigeflicht.

Und bitte verwende nur Wörter, die man entweder im Duden, im Fremdwörterbuch oder wenn es Fachwörter sind im Englisch Wörterbuch findet. In keiner der angegebenen Quellen konnte ich das Wort "proertys" finden.


Tweafis - Mo 09.06.03 20:56

Wenn mich nicht alles täuscht meinte er propertys ;)


ErnestoChe - Mo 09.06.03 21:03

Tweafis hat folgendes geschrieben:
Wenn mich nicht alles täuscht meinte er propertys


Das heisst properties :wink: :wink:


Tweafis - Mo 09.06.03 21:08

English 6, setzen (@me)

Stimmt ja, aus y wird bei plural ie außer wenn vor dem y ein Vokal steht wie z.B. boys.

So, zählt das als wiedergutmachung? :mrgreen:


G-McKree - Mo 09.06.03 21:16


Quelltext
1:
2:
type
  TQuad = class(TImage)


das funzt

aber ich brauch noch ne ''property typ: integer'' und weiss nich wie ich die deklarieren soll


Delete - Mo 09.06.03 21:18

OK. Ich bin aus dem Spiel. Ich habe keine Lust ihm alles aus der Nase zu zihen und dann alles Häppchenweise zu bekommen.

Wenn er Hilfe will, dann soll er vernünftig Fragen und mal etwas deutlicher und ausführlicher werden.


ErnestoChe - Mo 09.06.03 21:31

Hi,


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
type 
  TQuad = class(TImage) 
  private 
    FTyp: Integer;
  public
    property Typ: Integer read FTyp write FTyp;
  end;


MFG

- Ernesto -


G-McKree - Mo 09.06.03 21:34

thx Ernesto


---Thread Ende--------


Christian S. - Mo 09.06.03 21:44

Also gut.

Lege Dich aufs Sofa, schließe die Augen und stelle Dir eine Property vor. Für eine Property brauchst Du einen Namen. Und nun atme tief ein und merke Dir, dass Du auch noch einen Lese- und einen Schreibzugriff brauchst.
Du schwebst in die Weiten der Delphprogrammierung davon und Du erkennst, dass der Lesezurgiff durch eine Variable oder eine Function erfolgen kann und der Schreibzugriff durch eine Prozedur oder eine Variable erfolgen kann.

Okay, hören wir mit dem Müll auf. So könnte eine Property aussehen, die nur mit einer Variable arbeitet:

Delphi-Quelltext
1:
2:
3:
4:
private
  fmyProp : Integer;
public
  property myProp : Integer read fmyProp write fmyProp;


Oder mit Prozedur und Funktion:

Delphi-Quelltext
1:
2:
3:
4:
5:
private
  procedure SetmyProp (const value : Integer);
  function GetmyProp : Integer;
public
  property myProp : Integer read GetmyProp write SetmyProp;


Wobei die Namen der verwendeten Variable, Prozedur und Funktion einem gewissen Konvention folgen. Variablenname = 'f'+Propertyname, Prozedurname = 'set'+Propertyname, Funktionenname = 'get'+Propertyname.

So, und wenn Du wieder aufwachst, weißt Du, wie man eine Property baut.

MfG,
Peter