AGB  ·  Datenschutz  ·  Impressum  







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

Grafik Programmierung

Ein Thema von Contace · begonnen am 23. Okt 2018 · letzter Beitrag vom 1. Nov 2018
Antwort Antwort
Seite 1 von 2  1 2      
mkinzler
(Moderator)

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

AW: Grafik Programmierung

  Alt 24. Okt 2018, 12:17
Irgendwie irren wir langsam weit im Dickicht... (OffTopic)
Markus Kinzler
  Mit Zitat antworten Zitat
Contace

Registriert seit: 22. Okt 2018
44 Beiträge
 
#2

AW: Grafik Programmierung

  Alt 24. Okt 2018, 12:23
Neutral General: Das mit der Spieleentwicklung hab ich schon lange aufgegeben da es nicht realistisch für mich ist.

Das mit den Apps könnte ich mir zutrauen und darum versuche ich einen neuen Weg.


Moderator: Entschuldige meinen Gemüsegarten.

Ich würde dann gerne weiter bei der Kreis App bleiben und fortfahren.

Grüße
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Grafik Programmierung

  Alt 24. Okt 2018, 14:14
Ich würde dann gerne weiter bei der Kreis App bleiben und fortfahren.
Lasse bitte von Delphi ab!

Wenn du wirklich lernen willst, Apps für Android zu erstellen (iOS lasse an der Stelle bewusst außen vor), wäre die Sprache (Java) und die Werkzeuge (Android Studio) des Android-Herstellers (Google) das Mittel der Wahl.

Besorge dir bitte ein Buch zum Thema und arbeite dich selbstständig ein:

https://www.amazon.de/Android-Apps-e...CMPCCFNYH1BJH8
  Mit Zitat antworten Zitat
Contace

Registriert seit: 22. Okt 2018
44 Beiträge
 
#4

AW: Grafik Programmierung

  Alt 24. Okt 2018, 14:42
TiGü: Warum soll ich jetzt deiner Meinung nach auf Java umsteigen ?

Delphi kann auch apps entwickeln.



Grüße
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Grafik Programmierung

  Alt 24. Okt 2018, 14:59
TiGü: Warum soll ich jetzt deiner Meinung nach auf Java umsteigen ?

Delphi kann auch apps entwickeln.
Man kann es, man hat aber mit noch höheren Hürden zu kämpfen.
Man gerät oft in Schwierigkeiten, die man nur mit hohem Aufwand lösen kann.
Gerade wenn du null Erfahrung mit dem ganzen Thema hast, würde dich das zusätzlich frustrieren.
Beispiel: https://www.delphipraxis.net/1416307-post5.html

Um mal wieder eines meiner griffigen Beispiele zu geben:
Du kannst die Strecke Berlin-München natürlich zu Fuss oder mit dem Fahrrad bewältigen.
Du kannst aber auch das Auto, den Zug oder das Flugzeug nehmen.
Ans Ziel kommst du auf jeden Weg...aber mit welcher Anstrengung und Dauer?

Gerade wenn du eh am Anfang deiner Programmiererfahrung stehst, solltest du dich für das richtige Mittel für deine Zwecke konzentrieren.
Du willst Apps für deine Kunden anbieten: Nutze Java mit Android Studio.

Dazu findest du auch unendlich mehr "Tutorials" als wenn du was zur App-Entwicklung mit Delphi suchst.
App-Entwicklung mit Delphi macht nur Sinn, wenn der Programmierer eh schon viel Erfahrung in Delphi hat und ggf. eine vorhandene Codebasis dafür verwenden möchte.
Das ist bei dir einfach nicht gegeben.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Grafik Programmierung

  Alt 24. Okt 2018, 15:05
Solche Anwendungen laufen dann halt nur auf Java. Dann doch eher gleich die nächste evolutionäre Stufe (aus Sicht von Google) und mit GO und Flutter entwickeln (läuft dann auch auf iOS).
Zitat:
App-Entwicklung mit Delphi macht nur Sinn, wenn der Programmierer eh schon viel Erfahrung in Delphi hat und ggf. eine vorhandene Codebasis dafür verwenden möchte.
Das ist bei dir einfach nicht gegeben.
Für Android ist Delphi vielleicht (noch) nicht das optimalste. Aber die Frage, ob Delphi Zukunft hat, würde ich mit Ja beantworten. (Hoffnung).
Markus Kinzler
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#7

AW: Grafik Programmierung

  Alt 24. Okt 2018, 15:13
Da kann ich TiGü nur beipflichten. Mobile-Entwicklung ist in der Delphi Welt ein (noch gar nicht so lange existierendes) Feature, was eigentlich konzeptionell nicht so ganz mit den Delphi-typischen Arbeitsweisen übereinstimmt. Und da es eben noch recht neu ist, findest du dazu noch viel weniger Infos und Hilfe im Netz, und es gibt noch so einige Baustellen, die gerade einen Einsteiger einfach nur verzweifeln lassen würden.

Insbesondere Android wurde mit Blick auf Java-Entwicklung erdacht, womit es quasi dessen "native" Sprache ist, und daher auch immens weiter verbreitet, und nahezu jede Literatur bezieht sich auf Java. (So lange man keine native-apps auf Basis von C schreiben will, aber das ist nur wirklich nötig, wenn man sehr systemnah oder extrem performant sein will - aufwendige 3D Spiele z.B.)

Die gesamte Infrastruktur um Adroid Apps herum spricht durchweg Java. Wenn nur mobile apps dein Ziel sind, und du zudem noch recht frisch bzgl. Entwicklung, wäre jede andere Wahl gleichzusetzen mit einem 100m Läufer der sich selbst alle 5m mannshohe Betonklötze auf die Bahn stellt.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Contace

Registriert seit: 22. Okt 2018
44 Beiträge
 
#8

AW: Grafik Programmierung

  Alt 24. Okt 2018, 15:27
Hallo,

TiGü,Medium,mkinzler: Dann muss ich euch erstma für den Tipp danken, ich hätte weiter in Delphi entwickelt was apps betrifft
und wäre total auf den Holzweg gewesen, gerade als Anfänger. Danke euch !

stahli: Die Kreisapp ist erstmal ein Testprojekt. Ich wollte gerne auf den Kreis ein Quadrat und eine Dreeick plazieren.
Die Geometrien kann man dann nach belieben 360 Grad drehen.
Es müsste auf Windows und vielleicht wenn es möglich wäre auf Android laufen.



Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.560 Beiträge
 
Delphi 12 Athens
 
#9

AW: Grafik Programmierung

  Alt 24. Okt 2018, 17:11
Ich würde dann gerne weiter bei der Kreis App bleiben und fortfahren.

Grüße
Ich hatte Dir ja zugesagt, Dir die Beispieldatei zur Verfügung zu stellen, wenn gewünscht, das mache ich hier auch in der Anlage.

Ich habe mir die Statements hier im Thread durchgelesen und bin ein wenig unsicher, ob und wie ich Dir helfen kann, da ich nicht weiß, was ich an Vorkenntnissen voraussetzen kann (wie weit hast Du Dich schon mit Programmierung befasst, sind Dir die Unterschiede zwischen Prozedur und Funktion bekannt, weißt Du schon, was Variablen sind, Objekte, usw).

Wenn das alles "böhmische Dörfer" für Dich sind, dann würde ich auch empfehlen, erst mal ein grundlegendes Buch über Programmierung zu lesen, am besten welches sich dann mit Beispielen an Pascal orientiert, falls Delphi weiterhin Deine gewünschte Entwicklungsumgebung sein sollte.

Falls Dir diese Begriffe aber schon etwas sagen sollten, umso besser.

Hier mal der Source-Code, des Programms. Anliegend auch ein Screenshot, aus dem Du die Zuordnungen der ObjektNamen zu den tatsächlichen Objekten in der Form erkennen kannst. Zusätzlich noch ein paar Erläuterungen, was da abläuft.

Delphi-Quellcode:
procedure TFormCircles.FormCreate(Sender: TObject);
const
  Gap = 50;
var
  C, X: Integer; LA : TLayout; T: TText;
  aw: extended; NewCircle, PrevCircle: TCircle;

  procedure CreateCircleNumbers (StartNr: Integer; Circle: TCircle);
  var
    L: integer;
  begin
     for L := StartNr to 23 do begin
    // Eine Kopie des Layouts incl. Kindobjekte erstellen
      LA := TLayOut (circleTemplate.FindStyleResource('number', true));
      if LA <> NIL then begin
        LA.Parent := circle;
        LA.height := Circle.Height;
        LA.RotationAngle := L * 15;

        // Nur ein Child vorhanden, ist die TText-Komponente
        T := TText (LA.Children[0]);
        if T <> NIL then begin
          inc (c);
          T.Text := (c).ToString;
        end;
      end;
     end;
  end;

begin
  c := 1; aw := CircleTemplate.width;

  // create first inner circle
  CreateCircleNumbers (1, CircleTemplate);
  PrevCircle := CircleTemplate;

  // create next outer circles
  for X := 1 to 9 do begin
    NewCircle := TCircle (Layout1.FindStyleResource('circletemplate', true));
    NewCircle.parent := LayOut1;
    NewCircle.SendToBack;

    aw := aw + Gap;
    NewCircle.Width := aw;
    NewCircle.Height := aw;

    CreateCircleNumbers (0, NewCircle);
    PrevCircle := NewCircle;
  end;

  //Layout1.RotationAngle := -90;
end;
Wie es funktioniert: Auf der Form habe ich zunächst folgende Objekte eingefügt:

1. "Layout1", es dient einfach nur als - auf der Form zentrierter - Behälter für weitere Objekte.
2. "CircleInner (ein TCircle-Object), der einfach nur den innersten Kreis (den Rand) darstellen soll.
3. "CircleTemplate" (auch TCircle), der als Vorlage (für weitere Kopien von Kreisen) dient, um dann am Rand die Zahlen darzustellen
4. "LayoutZiffer" (noch ein TLayout), welches als Behälter dient für
5. "Text1" (ein TText-Object) und die gewünschten Zahlen wiedergibt.

Das LayoutZiffer-Objekt kann man per "Rotationangle" um die gewünschte Gradanzahl drehen.

Der oben dargestellte Source-Code macht nun folgendes:

1. Er erzeugt mit Aufruf der Procedure "CreateCircleNumbers" die Zahlen für den ersten Kreis
2. Mit der Schleife "for x := 1 to 9 do begin" werden 9 mal Kopien von diesem ersten Kreis erzeugt. Dabei wird er immer etwas vergrößert (mit dem durch "GAP" festgelegten konstanten Wert) und die Zahlen natürlich fortlaufend erhöht.

Eigentlich eine ganz einfache Geschichte. Man könnte das Programm nun erweitern, indem man z.B. die Erzeugung des Kreises nicht direkt mit Erzeugung der Form selber macht, sondern in eine eigene Prozedur auslagert. Am oberen Rand der Form könnte man ein weiteres TLayout (oder besser ein TPanel) einfügen, in dem Du ein TEdit einfügst und ein TButton. Wenn Du dann im TEdit-Feld eine maximale Anzahl der Nummer eingegeben hast, klickst Du auf den Schalter, rufst die Prozedur auf und der Kreis wird erzeugt.

Du müsstest die Prozedur natürlich auch noch abändern, etwa so, dass Du statt der For-Schleife eine While-Schleife benutzt und als Abbruchbedingungen für die Erzeugung von weiteren Zahlen das erreichen der gewünschten Zahl nimmst. Wenn der Aufruf zur Laufzeit mehrfach möglich sein soll, müsstet Du ganz am Anfang eine Kopie von Layout1 erzeugen und mit dieser Kopie den Nummernkreis erzeugen. Beim nächsten mal löscht Du dann die erzeugte Kopie, erstellst wieder eine neue Kopie und erzeugst einen anderen Nummernkreis, usw.

Ich habe es extra mal ein wenig ausführlicher beschrieben, so dass es für Dich ein Test für Dein Verständnis von Programmierung sein kann. Wenn Du hier gar nichts verstehst, würde ich den Empfehlungen einiger anderer folgen und vorschlagen, dass Du Dich erst mal mit den Grundlagen der Programmierung beschäftigst.

Wenn Du es (oder das meiste) verstanden haben solltest, könntest Du weiter mit Delphi arbeiten und Dir Schritt für Schritt weitere Kenntnisse zulegen.

Ich würde Dir aber empfehlen, NICHT mit der VCL anzufangen, sondern direkt mit FMX. Ich habe hier mal ein paar wenige Argumente aufgeführt, warum das generell mehr Sinn macht: http://www.devpage.de/blog/firemonkey.htm (siehe dort Bitte Punkt "12 FireMonkey vs. VCL "). Da Du ja auch auf Android willst, ist FMX dann unter Delphi sowieso alternativlos, weil es eben mit VCL nicht geht.

Wenn Du der englischen Sprache mächtig bist, kann ich Dir ein Buch von Pawel Glowacki ans Herz legen, es führt in die Programmierung mit Delphi und FMX und auch für die mobilen Plattformen ein: https://www.amazon.de/Expert-Delphi-...gloacki+expert (leider gibt es nichts vergleichbares auf Deutsch).

Wenn Du es Dir holst, solltest Du Dir dort - neben der Einleitung - unbedingt das Kapitel "The Power of Parenting" durchlesen, da es das so nützliche Container-Konzept von FireMonkey erläutert. Das Buch zeigt Dir auch, wie Du Dein Delphi für die Benutzung mit Android einrichtest.
Angehängte Grafiken
Dateityp: jpg CircelsFrom.jpg (93,3 KB, 40x aufgerufen)
Angehängte Dateien
Dateityp: zip Circles.zip (55,0 KB, 8x aufgerufen)

Geändert von Harry Stahl (24. Okt 2018 um 17:26 Uhr)
  Mit Zitat antworten Zitat
Contace

Registriert seit: 22. Okt 2018
44 Beiträge
 
#10

AW: Grafik Programmierung

  Alt 24. Okt 2018, 17:25
Hallo Harry Stahl,


erstmal vielen Dank für den Support sowie den Links sowie der Erklärung.

Ich finde es super das Du mir alle schritte mal erklärt hast, somit kann ich das ganze nachvollziehen und auch selber
ausprobieren und nachschreiben bzw. entwickeln.

Das mit Vcl hab ich befürchtet !

Was genau meintest Du das FMX mit Delphi alternativlos ist ? Soll ich direkt in Delphi mit FMX arbeiten ?

Eines der besten Erklärung für Anfänger, Danke !

Ich habe bisher nur ein Textadventure und ein Hello World Programm geschrieben, ich wollte mich
jetzt weiter intensiver damit beschäftigen komplexere Programme zu entwickeln.

Die Lösungsansätze sind genau das was ich suche.

Auch danke für den Blog in der Du super interessante Artikel schreibst.

Ich würde gerne mit FMX arbeiten aber das Problem, ich finde dazu viel zu wenig Informationen im Netz
zu Graphik/Programmierung mit FMX.


Grüße

Geändert von Contace (24. Okt 2018 um 17:49 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz