AGB  ·  Datenschutz  ·  Impressum  







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

Delphie anfang

Ein Thema von Tuxi · begonnen am 30. Aug 2007 · letzter Beitrag vom 6. Sep 2007
Antwort Antwort
Tuxi

Registriert seit: 30. Aug 2007
Ort: Hamburg
9 Beiträge
 
#1

Delphie anfang

  Alt 30. Aug 2007, 21:54
Guten Tag alle miteinander


als absoluter neuling in delphie habe ich ein paar Fragen. Wir müssen diese Sprache im Informatik leistungskurs ( erstes Semester) lernen und ich möchte gut abschneiden. alles was er heute von sich gegeben hat verstehe ich nicht ganz. Ich werde erstmal mein wissen runterschreiben und hoffe dann dann auf anmerkungen und ergänzungen von euch. falls es das falsche forum ist, bitte ich ums verschieben



Objekt= Etwas abstraktes was aber aus der Umwelt genommen wurde. Objekte können alles sein. Ein mensch, ein tisch, alles was so in der umwelt vorhanden ist.


Objekte werden mit Klassen erstellt. Sie sind "Baupläne" für Objekte. Sie müssen initalisiert werden mit einer Instanz. die erstelle ich mit Konstrukt. wie genau weiß ich noch nicht. Irgendwie hat das zeichen := damit was zu tun.

TObjekt ist die Standartklasse von der alle weiteren Vererbt werden.


Unser Projekt mit dem wir anfangen:

Wir möchten eine oberfläche erstellen mir der man Dreiecke zeichen kann. man gibt einen bezugspunkt ein und die punkte relativ zueinander und dann wird das ding gezeichnet. außerdem soll man die farbe ändern können und es nach oben unten rechts und links bewegen können mittels kleinen buttons ( sicherlich nicht sehr schön für die usabillity, aber wir fangen ja erst an)

Was muss ich dafür alles wissen oder so könnte es probleme geben ? Wir benutzen Delphie 6 Standart.
Bis jetzt hab ich die oberfläche fertig ohne funktionen.



Nun, auf erfolgreiche "zusammenarbeit"
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Delphie anfang

  Alt 30. Aug 2007, 21:57
Hier mal der wahrscheinlich am meisten zitierte Link für Neulinge

Tutorial bei DSDT

... keine Panik, wir waren alle mal blutige Anfänger

SCRaT

// EDIT: Insbesondere das müsste für Dich interessant sein: link

Ach so, herzlich willkommen im Forum!!!
Michael Kübler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Delphie anfang

  Alt 30. Aug 2007, 21:57
:= ist eine Zuweisung in Delphi. Eine Instanz erzeugt man, indem man den Konstruktor der Klasse aufruft:
Zitat:
Objekt := TKlasse.Create(<Params>);
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

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

Re: Delphie anfang

  Alt 30. Aug 2007, 22:23
Erstmal herzlich Willkommen in der DP.

Dann heisst es Delphi, ohne e hinten. (Sorry für das Klugscheissen, das ist mir aber sofort ins Auge gesprungen ).

Was Euer Lehrer versucht hat Euch klarzumachen sind die Grundlagen der Objektorientierten Programmierung. Das kann man flott rüberbringen.

Mal ein konkretes Beispiel:
Ich will ein kleines Überweisungsprogramm schreiben.

Dazu brauche ich Objekte, die mir das ganze ermöglichen.
Einmal zum Beispiel ein Konto. Das hat als Eigenschaften eine Kontonummer und einen Saldo. Und dann hat das noch eine Methode, um Geld auf ein anderes Konto zu überweisen. Um ein Konto zu erstellen müssen wir Kontonummer und Anfangs-Saldo angeben. Das machen wir mit dem Konstruktor, der aus der Klasse dann das konkrete Objekt konstruiert.

Man kann nun aus einer Klasse (ganz richtig: Dem Bauplan, der eben diese Kontonummer, den Saldo, und die Überweisen-Methode beschreibt) ganz viele Konten instanzieren. Eine erstellte Instanz könnte z.B. so aussehen:

TMeinKonto := TKonto.Create(12345, 3.50);
TDeinKonto := TKonto.Create(54321, 10.30);

Damit habe ich ein Konto mit der Kontonummer 123456 und dem Bestand von 3,50 € und Du ein Konto mit der Nummer 54321 und 10,30 € drauf.

So können aus einer Klasse beliebig viele Konten erstellt werden. Und um das Überweisen zu beschreiben hab ich grad keinen nerv, das mach ich entweder morgen oder jemand anderes greift das Beispiel auf.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Delphie anfang

  Alt 30. Aug 2007, 22:35
Mal eine Frage: Fangt Ihr denn mit der OOP an oder habt ihr schon grundlegende Dinge wie Variablen, IF-Anweisungen und Schleifen durchgenommen? Wenn nein, dann hätte ich persönlich an Deiner Stelle auch große Probleme mit der OOP. IMHO ist OOP für einen Anfänger (der im wahrsten Sinne des Wortes Delphie nicht richtig schreiben kann - nicht böse gemeint!) nicht so "flott rüberzubringen" - wenn ich mich an meine OOP-Anfänge erinnere, die auch nur wenige Jahre her sind!!

Ein Tip: Schau Dir wirklich mal ein Grundlagen-Tutorial an, dann wirst Du Dir bei der OOP auch viel einfacher tun!!! Weiterhin aber viel Glück und Spaß dabei!!

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
Tuxi

Registriert seit: 30. Aug 2007
Ort: Hamburg
9 Beiträge
 
#6

Re: Delphie anfang

  Alt 31. Aug 2007, 15:35
Puh ich bin ja verblüft über so viel Resonanz. ich sollte es immer mit einem e am ende schreiben damit ich viele antworten bekomme

Die links werde ich mir am Wochenende zu gemüte führen, besten dank, scheint beim überfleigen genau das zu sein, was ich brauche.


Zitat von mkinzler:
:= ist eine Zuweisung in Delphi. Eine Instanz erzeugt man, indem man den Konstruktor der Klasse aufruft:
Zitat:
Objekt := TKlasse.Create(<Params>);
aha

Nunja das mit dem überweisen würde mich schon ncoh interesieren
Zitat von scrat1979:
Mal eine Frage: Fangt Ihr denn mit der OOP an oder habt ihr schon grundlegende Dinge wie Variablen, IF-Anweisungen und Schleifen durchgenommen? Wenn nein, dann hätte ich persönlich an Deiner Stelle auch große Probleme mit der OOP. IMHO ist OOP für einen Anfänger (der im wahrsten Sinne des Wortes Delphie nicht richtig schreiben kann - nicht böse gemeint!) nicht so "flott rüberzubringen" - wenn ich mich an meine OOP-Anfänge erinnere, die auch nur wenige Jahre her sind!!

SCRaT
Mla davon abgesehen das du es jetzt auch falsch geschrieben hast ( ich kann grade nicht interpretieren ob es gewollt ist oder eher zufall *g*) habe ich schon gut 1 jahr mich mit php beschäftigt. sicherlich gibt es in php keinen OOP "Zwang", drum habe ich es auch nicht benutzt und konnte damit eigentlich ganz gut leben. als ich dann erfahren habe das Java in S3 wohl thema sein wird, hab ich natürlich volle hosen gekriegt und mich versucht einzulesen. aber ich konnte mit diesen fachwörtern die dort alle waren überhaupt nichts anfangen, sicherlich mag ich auch aus diesem Grund JavaSkript nicht *g*. nun aber leuchtet es mir doch ein (langsam..). Ich denke es hätte für mich schlimmer kommen können. Ich bin dabei eine ganze seite mit php zu schreiben, ist auch schon ziemlich weit forgeschritten, so das ich vlt nicht professionell programmiere, aber da ich es alleine mache alles - reicht es. es soll funktionieren und gut is.

Ein schönes, unverregnetes wochenende wünsche ich euch. Tuxi
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Delphie anfang

  Alt 31. Aug 2007, 17:24
Zitat von Tuxi:

Zitat von scrat1979:
Mal eine Frage: Fangt Ihr denn mit der OOP an oder habt ihr schon grundlegende Dinge wie Variablen, IF-Anweisungen und Schleifen durchgenommen? Wenn nein, dann hätte ich persönlich an Deiner Stelle auch große Probleme mit der OOP. IMHO ist OOP für einen Anfänger (der im wahrsten Sinne des Wortes Delphie nicht richtig schreiben kann - nicht böse gemeint!) nicht so "flott rüberzubringen" - wenn ich mich an meine OOP-Anfänge erinnere, die auch nur wenige Jahre her sind!!

SCRaT
Mla davon abgesehen das du es jetzt auch falsch geschrieben hast ( ich kann grade nicht interpretieren ob es gewollt ist oder eher zufall *g*) habe ich schon gut 1 jahr mich mit php beschäftigt. sicherlich gibt es in php keinen OOP "Zwang", drum habe ich es auch nicht benutzt und konnte damit eigentlich ganz gut leben. als ich dann erfahren habe das Java in S3 wohl thema sein wird, hab ich natürlich volle hosen gekriegt und mich versucht einzulesen. aber ich konnte mit diesen fachwörtern die dort alle waren überhaupt nichts anfangen, sicherlich mag ich auch aus diesem Grund JavaSkript nicht *g*. nun aber leuchtet es mir doch ein (langsam..). Ich denke es hätte für mich schlimmer kommen können. Ich bin dabei eine ganze seite mit php zu schreiben, ist auch schon ziemlich weit forgeschritten, so das ich vlt nicht professionell programmiere, aber da ich es alleine mache alles - reicht es. es soll funktionieren und gut is.
Irgendwie habe ich das Gefühl, daß Du Dich angegriffen fühlst Ich wollte Dir nicht vorwerfen oder unterstellen, daß Du vom Programmieren überhaupt keine Ahnung hast (Selbst wenn es so WÄRE, dann wäre das auch kein Beinbruch), ABER: Da es sich ja offensichtlich um ein Schulfach handelt, finde ich es VON DEINEM LEHRER sehr mutig, mit OOP ohne Grundlagen der Delphi Language anzufangen - Sollte es tatsächlich so sein. Denn es gibt ja sicherlich auch einige in der Klasse, welche bislang noch gar nicht mit Delphi / Pascal programmiert haben. Mit "Delphie" nicht richtig schreiben können wollte ich auf den Unterrichtsentwurf Deiner Lehrer hinweisen, weiter nichts.

Das wollte ich in meinem Post nur allgemein anmerken

Wünsch Dir auch ein schönes Wochenende,

SCRaT

P.S.: BTW, es regnet schon
Michael Kübler
  Mit Zitat antworten Zitat
Tuxi

Registriert seit: 30. Aug 2007
Ort: Hamburg
9 Beiträge
 
#8

Re: Delphie anfang

  Alt 5. Sep 2007, 18:01
So, fangen wir dann mal an. Bis jetzt hab ich das hier:
Delphi-Quellcode:
type
  TDreieck=class
  BezugspunktX,
  BezugspunktY,
  Punkt1X,
  Punkt1Y,
  Punkt2X,
  Punkt2Y,
  Punkt3X,
  Punkt3Y:longint;
  Farbe:TColor;
  public

  end;
selbst geschrieben, funktioniert auch soweit (Nunja Delphi beschwert sich nicht ). Nun möchte ich von dieser Klasse eine Instanz erzeugen, dazu brauche ich irgendwie constrctor oder ?, aber ich hab keine ahung wo und wie ich das reinfriemeln muss.

irgendwo muss oben ein constructor rein, und nach dem implementation teil. aber wie gesagt, keine ahung. Dann möchte ich wie gesagt eine Instanz erzeigen und ihr Werte übergeben die ich als parameter anhängen möchte. in php würde ich es so machen:

function ichbineinefunktion($para1,$para2...)


und zum aufrufen halt:
ichbineinefunktion("2",false);

wie geht sowas?

Anscheind mit := ( für die instanz), aber ich kann damit noch nichts direkt anfangen. und aus der hilfe werde ich auch nicht schlauer

Wofür brauche ich den kram überhaupt ? kann ich nicht einfach die werte aus den editfeldern auslesen und so n ding malen ? ich finde mein lehrer fängt etwas zu heftig an... achja, und ich nehme es nicht als vorwurf auf, egal was ihr sagt
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

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

Re: Delphie anfang

  Alt 5. Sep 2007, 18:08
Delphi-Quellcode:
type
  TDreieck=class
    BezugspunktX,
    BezugspunktY,
    Punkt1X,
    Punkt1Y,
    Punkt2X,
    Punkt2Y,
    Punkt3X,
    Punkt3Y:longint;
    Farbe:TColor;
  public
    constructor Create(Bp1, Bp2, P1x, P1y, P2x, P2y, P3x, P3y: Longint; Farbe: TColor);
  end;

implementation

constructor TDreieck.Create(Bp1, Bp2, P1x, P1y, P2x, P2y, P3x, P3y: Longint; Farbe: TColor);
begin
  BezugspunktX := Bp1;
  BezugspunktY := Bp2;
  Punkt1X := P1x;
  //... so weitermachen und alles zuweisen
end;

procedure Beispielfunktion_um_Instanz_zu_erzeugen;
var MeinDreieck: TDreieck;
begin
  MeinDreieck := TDreieck.Create(1,2,3,4,5,6,7,8, clBlack);
end;
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#10

Re: Delphie anfang

  Alt 6. Sep 2007, 07:37
Dann könntest du deiner Klasse auch noch eine Methode spendieren, die sie auch "malt", z.B.

Delphi-Quellcode:
type
  TDreieck=class
    BezugspunktX,
    BezugspunktY,
    Punkt1X,
    Punkt1Y,
    Punkt2X,
    Punkt2Y,
    Punkt3X,
    Punkt3Y:longint;
    Farbe:TColor;
  public
    constructor Create(Bp1, Bp2, P1x, P1y, P2x, P2y, P3x, P3y: Longint; Farbe: TColor);
    procedure Paint;
  end;

implementation

constructor TDreieck.Create(Bp1, Bp2, P1x, P1y, P2x, P2y, P3x, P3y: Longint; Farbe: TColor);
begin
  BezugspunktX := Bp1;
  BezugspunktY := Bp2;
  Punkt1X := P1x;
  //... so weitermachen und alles zuweisen
end;

procedure TDreieck.Paint;
begin
  //Hier kommt der Code, der das Dreieck mit den zugewiesenen Variablen auf die Zeichenfläche malt
end;

procedure Beispiel_um_Instanz_zu_erzeugen;
var MeinDreieck: TDreieck;
begin
  MeinDreieck := TDreieck.Create(1,2,3,4,5,6,7,8, clBlack);

  //und so rufst du sie später auf
  MeinDreieck.Paint;
 
end;
Was ist der Vorteil?

Naja, du kannst aus deiner Klasse jetzt einfach mehrere Instanzen erzeugen und so später in deinem Programm auf einfache Weise viele Dreiecke malen.

Delphi-Quellcode:
procedure Mehr_Dreiecke;
var D1, D2, D3, D4: TDreieck;
begin
  D1:=TDreieck.Create(1,2,3,4,5,6,7,8, clBlack);
  D2:=TDreieck.Create(9,10,11,12,13,14,15,16, clRed);
  D3:=TDreieck.Create(11,21,31,41,51,61,71,81, clBlack);
  D4:=TDreieck.Create(12,22,32,42,52,62,72,82, clRed);
  D1.Paint;
  D2.Paint;
  D3.Paint;
  D4.Paint;
end;
Grundsätzlich ist der Vorteil von Klassen, dass sie mehrfach verwendbar sind und ihre eignen Methoden mitbringen, um ihre Aufgabe erfüllen zu können. Zudem kannst du Klassen schreiben, die dies alles von ihrer Vorgängerklasse erben können und dir damit einiges an Arbeit ersparen.
  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 22:31 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