AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Womit sollte ein Delphi-Anfänger beginnen? VCL oder nonVCL?
Thema durchsuchen
Ansicht
Themen-Optionen

Womit sollte ein Delphi-Anfänger beginnen? VCL oder nonVCL?

Ein Thema von malo · begonnen am 24. Apr 2005 · letzter Beitrag vom 25. Apr 2005
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#21

Re: Womit sollte ein Delphi-Anfänger beginnen? VCL oder nonV

  Alt 25. Apr 2005, 14:45
Die Frage war:
Zitat:
Womit sollte ein Delphi-Anfänger beginnen? VCL oder nonVCL?
Wenn nonVCL verwendet wird (Beispiel Taschenrechner), verkaspert der Anfänger sich doch hoffnungslos in der Darstellung der Objekte in einem Fenster. Ich bezweifle ganz stark, dass OOP gemacht werden soll, bevor nicht mal die Basis da ist (Variablen, Bedingungen, Schleifen,...). Habe kuürzlich ein Buch gelesen (C#), das genauso arbeitet. Furchtbar! Listings, die sich erstmal damit beschäftigen müssen, wie man die Oberflächen generiert. Nein Danke.

Entweder Konsole oder VCL. Was ich bevorzuge, habe ich schon geschrieben. nonVCL aber auf gar keinen Fall.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#22

Re: Womit sollte ein Delphi-Anfänger beginnen? VCL oder nonV

  Alt 25. Apr 2005, 14:47
Zitat von Jasocul:
Die Frage war:
Zitat:
Womit sollte ein Delphi-Anfänger beginnen? VCL oder nonVCL?
Wenn nonVCL verwendet wird (Beispiel Taschenrechner), verkaspert der Anfänger sich doch hoffnungslos in der Darstellung der Objekte in einem Fenster. Ich bezweifle ganz stark, dass OOP gemacht werden soll, bevor nicht mal die Basis da ist (Variablen, Bedingungen, Schleifen,...).

Entweder Konsole oder VCL. Was ich bevorzuge, habe ich schon geschrieben. nonVCL aber auf gar keinen Fall.
Consolenanwendungen gehören zu nonVCL( Man kann natürlich auch VCL mit Console machen ), aber ich meinte Eigentlich den Taschenrechner als Consolenanwendung!
Felix K.
Zitat:
Siehst du diesen Park da unten?
Jeden Tag lernen sich leute kennen und verlassen einander, und du hast dein ganzes Leben Zeit darin zu gehen!
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#23

Re: Womit sollte ein Delphi-Anfänger beginnen? VCL oder nonV

  Alt 25. Apr 2005, 14:49
Zitat von Jasocul:
Stimmt schon. Aber als Fahrlehrer muss ich auch keinen Motor auseinandernehmen.

nonVCL ist sicher nicht der richtige Weg! Denn dafür muss man den Motor (WinAPI) kennen.

Meine Empfehlung bleibt VCL. Entscheiden darf malo das aber alleine.
Woher habt ihr denn die WinAPI?
Malo meinte mit nonVCL eine simple Console App OHNE Fenster und OHNE VCL.
Die WinAPI habt ihr rausgelesene, denn malo hat explizit darauf hingewiesen, dass er KEIN nonVCL tutorial machen will.
Einem Anfänger die grausigen Abgründe der WinAPI zu stoßen wäre entweder dumm geplant oder hundsgemein.

Ich habe auch mit KEINEM Wörtlein WinAPI basiertes Fenstergefriemel erwähnt!

Ich bin halt nur der Meinung, dass man schneller lernen kann, wenn man das zu Lernende absolut überschauen kann.

Will Mr NewBie eine Klasse mit 2 Properties instanzieren die ene Eigenschaft besetzen und die andere in die ausgeben -> In einer Konsolen App hat er nur seinen Code, plus WriteLn und ReadLn.
Da passiert nix großartiges, dass abstrakt für ihn wäre.
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#24

Re: Womit sollte ein Delphi-Anfänger beginnen? VCL oder nonV

  Alt 25. Apr 2005, 14:51
Zitat von Jasocul:
nonVCL ist sicher nicht der richtige Weg! Denn dafür muss man den Motor (WinAPI) kennen.
Zitat von Jasocul:
Wenn nonVCL verwendet wird (Beispiel Taschenrechner), verkaspert der Anfänger sich doch hoffnungslos in der Darstellung der Objekte in einem Fenster.
Du hast immer noch nicht verstanden, daß malo mit nonVCL nicht das meinte, was ich und andere (offensichtlich auch du) unter nonVCL-Programmierung verstehen, sondern Konsolenanwendungen einbezieht, oder?

Um wenigstens ein bisschen Programmierkomfort zu haben und als Einstieg in die Objektorientierung bleibt ja immer noch die CLX, die kann man schließlich auch in Konsolenanwendungen benutzen.
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#25

Re: Womit sollte ein Delphi-Anfänger beginnen? VCL oder nonV

  Alt 25. Apr 2005, 14:54
Grundsätzlich habt ihr Recht (Console ist auch nonVCL).
Die WinAPI kam durch diesen Satz von malo in die Diskussion:
Zitat:
Außerdem müsste man für nonVCL auch in die WinAPI-Materie eingehen, über dessen Vorzüge man seit dem Erscheinen von D8 mehr denn je streiten kann.
Sorry für das Missverständnis. Hätte mir eigentlich klar sein sollen.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#26

Re: Womit sollte ein Delphi-Anfänger beginnen? VCL oder nonV

  Alt 25. Apr 2005, 14:55
Ich hatte mal was für einen Kollegen geschrieben das sah so aus:

dpr Datei:
Delphi-Quellcode:
program MeineExe;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  MeineUnit in 'MeineUnit.pas';

var
  MeineKlasse: TMeineKlasse;
  // Gibt Klassentyp an
  Finished: Boolean;
  // Deklariert Variable(Muss nicht erzeugt werden)
  Userinp: String;
  // Usereingabe
  Zahlen: record // Eine zusammenfassung von 2 Variablen
    Zahl1: Integer;
    Zahl2: Integer;
  end;

begin
  WriteLN('***********************************');
  WriteLN('* Hallo zu meinem ersten Programm *');
  WriteLN('* Mathematik pur *');
  WriteLN('***********************************');
  // Textausgabe
  Sleep(2000); // 2sec warten

  MeineKlasse := TMeineKlasse.create;
  // Erzeugt die Klasse
  MeineKlasse.ProduktProc(5,7);
  // Ruft eine Procedure(Aufgabe) auf
  WriteLn('Ergebniss aus 5 * 7: ' + MeineKlasse.MeinString);
  // Textausgabe
  Sleep(1000);
  // 1sec Warten
  WriteLn('Ergebniss aus 7 * 9: ' + MeineKlasse.Produktfunc(7,9));
  (* Anmerkung: Hier wurde eine Funktion aufgerufen die einen Rückhabetyp besitzt
     --> Textausgabe *)

  Sleep(1000);
  // Warten


  while Finished = False do begin
    WriteLn('-----------------------------------');
    // Solange Finished nicht True ist mache immer dasselbe
    write('Zahl 1 angeben: ');
    // User Zahl eingeben lassen
    ReadLn(Zahlen.Zahl1);
    // Zahl auslesen
    write('Zahl 2 angeben: ');
    // Zweite Zahl eingeben
    ReadLn(Zahlen.Zahl2);
    // Zweite Zahl auslesen
    WriteLn('Ergebniss aus ' + Zahlen.Zahl1.ToString + ' * '
                + Zahlen.Zahl2.ToString + ': '
                + MeineKlasse.Produktfunc(Zahlen.Zahl1,Zahlen.Zahl2));
    // Ergebniss ausgeben, dabei kann Quelltext auch über mehrere Zeilen gehen
    // für die Übersichtlichkeit
    Sleep(500);
    // Warten
    WriteLn('-----------------------------------');
    Write('Programm beenden(Y/N)?');
    // Fragen on Programm beendet werden soll
    ReadLn(Userinp);
    // Eingabe einlesen
    if Userinp = 'Ythen
      Finished := True
    else
      if Userinp = 'Nthen
        Finished := False;
    // Verarbeitung
  end;

  { TODO -oUser -cConsole Main : Hier Code einfügen }
end.
MeineUnit.pas
Delphi-Quellcode:
interface

uses
  SysUtils;

type
  TMeineKlasse = class // Deklariert eine Klasse mit dem Namen TMeineKlasse
    private

    protected

    public
      MeinString: String;
      // Deklariert die Variable MeinString vom Typ String
      MeineZahl: integer;
      // Deklariert die Variable MeineZahl vom Typ Integer
      procedure ProduktProc(ErsteZahl, ZweiteZahl: integer);
      // Deklariert eine Procedure mit dem Namen ProduktProc und 2 Parametern
      function Produktfunc(ErsteZahl, ZweiteZahl: integer): String;
      // Deklariert eine Funktion mit dem Namen ProduktProc und 2 Parametern und
      // dem Rückgabewert vom Typ String
    published

    end;


implementation

procedure TMeineKlasse.ProduktProc(ErsteZahl, ZweiteZahl: integer);
var
  Produkt: integer; // Deklariert eine Variable mit dem Namen Produkt
begin
  Produkt := (ErsteZahl * ZweiteZahl);
  // Weisst der Variable Produkt das Produkt der Variablen ErsteZahl und ZweiteZahl zu
  self.MeinString := Produkt.ToString;
  // Weisst der Variablen MeinString den String der Zahl der Variable Produkt zu
end;

function TMeineKlasse.Produktfunc(ErsteZahl, ZweiteZahl: integer): String;
var
  Produkt: integer; // Deklariert eine Variable mit dem Namen Produkt
begin
  Produkt := (ErsteZahl * ZweiteZahl);
  // Weisst der Variable Produkt das Produkt der Variablen ErsteZahl und ZweiteZahl zu
  Result := Produkt.ToString;
  // Gibt den String der Zahl der Variable Produkt zurück

  // Result ist ein Reserviertes Wort für jede Funktion und ist die Rückgabe
end;

end.
Würde es jetzt anderst schreiben, ist aber durchaus gut zu lernen!

Ach ja: Man kann in jeder Anwendung eine Console benutzen( Ich mache das z.b. zu Debugzwecken )!
Felix K.
Zitat:
Siehst du diesen Park da unten?
Jeden Tag lernen sich leute kennen und verlassen einander, und du hast dein ganzes Leben Zeit darin zu gehen!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 11:50 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