Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Grafik Programmierung (https://www.delphipraxis.net/198304-grafik-programmierung.html)

mkinzler 24. Okt 2018 12:17

AW: Grafik Programmierung
 
Irgendwie irren wir langsam weit im Dickicht... (OffTopic)

Contace 24. Okt 2018 12:23

AW: Grafik Programmierung
 
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

TiGü 24. Okt 2018 14:14

AW: Grafik Programmierung
 
Zitat:

Zitat von Contace (Beitrag 1416529)
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

Contace 24. Okt 2018 14:42

AW: Grafik Programmierung
 
TiGü: Warum soll ich jetzt deiner Meinung nach auf Java umsteigen ?

Delphi kann auch apps entwickeln.



Grüße

TiGü 24. Okt 2018 14:59

AW: Grafik Programmierung
 
Zitat:

Zitat von Contace (Beitrag 1416544)
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.

stahli 24. Okt 2018 15:05

AW: Grafik Programmierung
 
Zitat:

Zitat von Contace (Beitrag 1416486)
Das Problem es würde nicht nur bei einem Kreis bleiben.
Der Kreis sollte dann unterteilt mit linien sein, ich möchte das Programm mit Geometrien erweitern die man
auf den Kreis legen kann wie zb. quader,dreieck usw. dazu sollte man diese drehen können.

Die Zahlenangabe mit einer Option von 1-10.000 oder 2000-10.000 usw..

Deine Beschreibung der Zielstellung ist auch etwas vage.

Delphi (und auch WinForms bei VS) sind ja eher auf Businessanwendungen (mit normalen Controls) ausgelegt.

Jetzt ist Die Frage, was Du da drehen willst. Soll ein Bild erzeugt werden, das sich dann als Ganzes drehen lässt? Oder schwebt Dir ein Control vor, mit dem der Anwender interagieren kann (hier oder da klicken, Infos in Hints anzeigen, wechseln zu anderen Sichten, Teile ausblenden o.ä.)?

Auf welchen Plattformen soll das nun wirklich laufen?

Es sind als viele Fragen offen. Wenn die o.g. Interaktion gewünscht sein sollte, dann wird das für einen Neuling sehr schwierig.
Dann musst Du Dich auch mit einer Komponentenentwicklung in der passenden Plattform befassen.


Deine Kino-App solltest Du unabhängig (und auch in einem anderen Thread) betrachten und diskutieren.
Das sind völlig verschiedene Anforderungen und Themen.

mkinzler 24. Okt 2018 15:05

AW: Grafik Programmierung
 
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).

Medium 24. Okt 2018 15:13

AW: Grafik Programmierung
 
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.

Contace 24. Okt 2018 15:27

AW: Grafik Programmierung
 
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 ! :thumb:

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

mkinzler 24. Okt 2018 15:30

AW: Grafik Programmierung
 
Dann scheinst Du mich missverstanden zu haben.
Der Tipp für Java ist auch hinfällig, wenn keine reinen Android-Apps erstellt werden sollen.

Rollo62 24. Okt 2018 15:47

AW: Grafik Programmierung
 
Zitat:

Zitat von mkinzler (Beitrag 1416454)
Da FMX ( wie auch WPF) auf Vektorgrafik basiert, würde es auf Android dann nicht funktionieren.

Die Aussage verstehe ich nicht ganz, bezieht sich das auf TPath mit Vektorgrafik ?

Das funktioniert bei relativ gut auch unter Android, auch mit dem Schreiben auf einen Canvas.
Und ist nah am ein Code für Alle Platformen.

Rollo

stahli 24. Okt 2018 15:58

AW: Grafik Programmierung
 
Zitat:

Zitat von Contace (Beitrag 1416560)
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.

Das ist immer noch ungenau.
Sollen der Kreis mit Beschriftung, Quadrat und Dreieck unabhängig voneinander zu drehen sein oder nur das fertige komplette Bild.
Das ist ein wichtiges Kriterium für weitere Überlegungen.
Wenn die unabhängigen Bewegungen möglich sein sollen, dann ist das eine sehr komplexe Sache. Das wird als Anfänger schwer zu bewerkstelligen sein.
Ob es auf Android möglich ist? Klar! Absolut!
Aber es kann sein, dass dann Delphi als Option eher rausfällt.
Du musst sagen, welche Plattformen NOTWENDIG sind.
"Windows und vielleicht Android" ist eine andere Anforderung als "Windows und Android".

Wenn nur Windows, könnte man mit meinem eingangs verlinkten Projekt (Regionen und Schatten) weiter kommen. Ist aber für Einsteiger auch schon sehr schwierig.
Wenn Auch für Android, dann könnte man mit FMX etwas machen. Dafür hatte Harry ja etwas vorgeschlagen.

Ob andere Entwicklungsplattformen besser geeignet wären, kann ich nicht sagen.

Für Deine Kino-App sieht das Ganze schon wieder ganz anders aus. Die wird man mit verschiedenen Werkzeugen nahezu gleich gut umsetzen können.

mkinzler 24. Okt 2018 15:58

AW: Grafik Programmierung
 
Zitat:

Zitat von Rollo62 (Beitrag 1416564)
Zitat:

Zitat von mkinzler (Beitrag 1416454)
Da FMX ( wie auch WPF) auf Vektorgrafik basiert, würde es auf Android dann nicht funktionieren.

Die Aussage verstehe ich nicht ganz, bezieht sich das auf TPath mit Vektorgrafik ?

Bezog sich auf

Zitat:

Und Android ist damit wieder außen vor...nach meinen letzten Kenntnisstand.
[QUOTE
Das funktioniert bei relativ gut auch unter Android, auch mit dem Schreiben auf einen Canvas.
Und ist nah am ein Code für Alle Platformen.

Rollo

Genau. Da FMX Vektorgrafik verwendet, würde es kein FMX geben, wenn dies unter Android nicht funktionieren würde.

Rollo62 24. Okt 2018 16:06

AW: Grafik Programmierung
 
Zitat:

Genau. Da FMX Vektorgrafik verwendet, würde es kein FMX geben, wenn dies unter Android nicht funktionieren würde.
Bei mir funktioniert Android im Moment (toi toi toi) :stupid:

Medium 24. Okt 2018 17:00

AW: Grafik Programmierung
 
Zitat:

Zitat von Contace (Beitrag 1416560)
Es müsste auf Windows und vielleicht wenn es möglich wäre auf Android laufen.

*HutrandKau* WAS denn nun!? Erst nur mobile, jetzt doch wieder Windows, morgen kommt Linux dazu? Entscheide dich!! Die Zielplattformen sind der erste und wichtigste Schritt bei der Auswahl des Werkzeugs!

Wenn du ein und dasselbe Programm für Windows und Android machen willst, ist Java schon wieder mehr oder minder hinfällig. (Da könnte man höchstens die Businesslogik für beide Systeme nutzen, aber das UI mit allem was daran hängt macht man da auch wieder doppelt. Und es setzt eine recht strikte Arbeitsweise voraus, die gerade als Anfänger oft unhandlich ist und nicht zu schnellen Ergebnissen führt.) Hier könnte Delphi (FMX) wieder ins Spiel kommen, aber auch Xamarin z.B.

Gerade Windows Desktop und Smartphones in eine Codebase zu bekommen ist nach wie vor so eine Sache, und in Punkto UI eigentlich konzeptionell schon zwangsweise immer doppelter Aufwand.

Werd dir darüber bitte erstmal im Klaren. Dann sehen wir weiter.

Contace 24. Okt 2018 17:08

AW: Grafik Programmierung
 
Hallo Stahli,

Zitat:

Das ist immer noch ungenau.
Sollen der Kreis mit Beschriftung, Quadrat und Dreieck unabhängig voneinander zu drehen sein oder nur das fertige komplette Bild.
Das ist ein wichtiges Kriterium für weitere Überlegungen.
Wenn die unabhängigen Bewegungen möglich sein sollen, dann ist das eine sehr komplexe Sache. Das wird als Anfänger schwer zu bewerkstelligen sein.
Ob es auf Android möglich ist? Klar! Absolut!
Aber es kann sein, dass dann Delphi als Option eher rausfällt.
Du musst sagen, welche Plattformen NOTWENDIG sind.
"Windows und vielleicht Android" ist eine andere Anforderung als "Windows und Android".

Der Kreis mit beschriftung soll einzeln fest bleiben, die beschriftung der nummern
soll im uhrzeigersinn und gegen den uhrzeigersinn per optionsauswahl auf dem kreis stehen.
Ich möchte eine zusätzliche option haben in der man die bezifferung von 1-10000 zb. oder nur 1000-10000 einstellen kann.
Der Kreis sollte unterteilt sein in 12 und 24 teile.
Dreieck und Quadrat sollen 360 grad drehbar sein.
Der Kreis sollte einzeln sein, sowie die Geometrien Quader und Dreieck auch.


Harry Stahl: Wie lässt sich so etwas ohne komponente realisieren ? Man könnte doch den Text entlang der kreises zeichnen lassen
mit jeweils abständen und das ganze rumdrum 360 Grad ?




Medium:

Zielplatform: Ich möchte gerne Programm für Windows und Android entwickeln, das was ich für Windows entwickelt habe
möchte ich auch gerne für Android benutzen.

Da Delphi alles in einem Abwasch compilieren kann war das eigentlich der Gedanke mit Delphi zu arbeiten.

Grüße

Harry Stahl 24. Okt 2018 17:11

AW: Grafik Programmierung
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von Contace (Beitrag 1416529)
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.

Contace 24. Okt 2018 17:25

AW: Grafik Programmierung
 
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

Contace 24. Okt 2018 18:38

AW: Grafik Programmierung
 
Hallo ich habe gerade ein Webinar zu FMX von Embarcadero besucht,
dort versicherte ma mir das man alles mit FMX unter Delphi entwickeln kann.



Grüße

Harry Stahl 24. Okt 2018 18:51

AW: Grafik Programmierung
 
Zitat:

Zitat von Contace (Beitrag 1416584)

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

...

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

Ja, würde Dir direkt FMX empfehlen, weil es - aus meiner Sicht (andere sehen es vielleicht anders) - Zeitverschwendung wäre erst VCL zu lernen, wenn Du nachher sowieso alles mit FMX machst. Ich arbeite jetzt seit 23 Jahren mit der VCL und seit ca. 5 Jahren mit FMX.

Die VCL nutze ich nur noch für Programme, die ich noch nicht auf FMX umgestellt habe (das ist leider viel Arbeit).

Neue Programm erstelle ich nur noch ausnahmslos mit FMX. Fairerweise muss man sagen, dass FMX hin und wieder Qualitätsprobleme hat, auch wenn es sich zunehmend bessert (aber nichts, was man nicht in den Griff bekommen könnte).

Aber FMX ist einfach um Klassen flexibler und bietet Dinge, die es unter der VCL nicht gibt und wohl auch nie geben wird (ich habe es ja unter dem Link oben beschrieben).

Ich will mit diesen Aussagen die VCL nicht schlecht machen. Das ist ein leistungsfähiges, sehr zuverlässiges Framework und kann ein Business-Modell, das sich auf Windows-Programme beschränkt bestens bedienen.

Aber die Arbeit damit ist halt so, wie wenn Du ein Telefon mit Wählscheibe benutzt, statt ein aktuelles Mobiltelefon:

Mit der VCL kannst Du sozusagen nur ins Windows-Land telefonieren, mit FMX daneben auch "Weltweit" (also auch Linux, MacOS, Android, IOS).

Ja, die Literatur ist ein Problem, auf Deutsch gibt es kaum was. Aber auf Englisch doch schon etwas mehr (ich überlege zwar gerade, auch ein Buch über Grafikprogrammierung mit FMX zu schreiben, aber bis das fertig ist, hilft es Dir nicht mehr).

Aber noch ein Hinweis zum Thema Grafik-Programmierung: Je nach dem, was die Aufgabenstellung ist, musst Du es gar nicht zeichnen, sondern erzeugst Deine Grafik einfach mit entsprechenden Objekten (Kreis, Rechteck, Linie, usw). Du kannst bei Bedarf das auch kombinieren und im OnPainting-Event eines Kreises z.B. mit normalen Grafikroutinen zusätzliche Malaktionen machen.

Per MyBitmap := LayOut1.makeescreenshot; erzeugst Du von der Komposition bei Bedarf eine Bitmap, die Du als Datei speichern oder in die Zwischenablage kopieren kannst oder was immer Du damit machen willst.

Bei YouTube findet man aber auch einiges über FMX-Programmierung.

Embarcardero bietet zudem gerade ein Einführungstutorial in 10 Folgen an : https://community.embarcadero.com/bl...munity-edition

Ich hab es mir nicht angesehen, weil ich mich da weniger als Zielgruppe sehe, kann daher nichts zu Qualität sagen, aber könnte evt. eine weitere Quelle für einen guten Einstieg für Dich sein.

Daneben wirst Du sicher oft Hilfe in diesem Forum finden können. Dabei darfst Du aber nicht erwarten, dass die Leute Dir hier fertige Lösungen liefern (kann aber auch schon mal passieren) und Dir die Arbeit abnehmen. Aber ich denke, wenn man sieht, dass Du Dich wirklich bemühst, werden Dir sicher viele Leute hier gerne helfen.:)

stahli 24. Okt 2018 20:30

AW: Grafik Programmierung
 
Ich schließe mich Harry an und würde Dir mal empfehlen, Dein Projekt mit Delphi/FMX zu versuchen.

Mal noch zur Einordnung:

VCL (visual compoment libary) ist die die seit 30 Jahren vorhandene Benutzeroberfläche von Windows. Also normale Buttons, Edits usw.
Die sind alle bewährt, aber nur für "normale" Anwendungen wirklich tauglich.

FMX (FireMonky - Crossplattform) ist eine neue Benutzeroberfläche (etwa vergleichbar zu WPF).
Da kann man Controls drehen, zoomen und mit diversen Effekten arbeiten. Aber das Framework hat auch noch einige Probleme.

Auf jeden Fall könntest Du damit mal versuchen, Dein Ziel umzusetzen.
Unbedingt solltest Du Dich aber dann NUR darauf konzentrieren ohne nach rechts und links zu schauen.
Hilfe wirst Du hier auch dazu finden (aber weniger als zu VCL).

Je konkreter Deine Fragen sind, um so besser kann die Hilfe ausfallen.
(Bisher waren Deine Fragen doch etwas unkonkret. Das ist ok, wenn man sich einen Überblick verschaffen will, aber bei konkreten Fragen zu einem Projekt wäre das kontraproduktiv. Und häufig kommt man übrigens beim Ausformulieren einer ganz konkreten Frage schon selbst auf die Lösung. Das kennt hier sicher jeder. :-) )

Sherlock 25. Okt 2018 07:38

AW: Grafik Programmierung
 
FMX nutze ich auf drei OSen (fast) ohne Probleme mit 99% gleichem Code. Das kann sonst nur Java, und das ist mir aus unerklärlichen Gründen unsympathisch.

Sherlock

Contace 25. Okt 2018 21:03

AW: Grafik Programmierung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich wollte gerne das programm in Delphi anschauen.

Bekomme leider einen Fehler angezeigt den ich nicht zuordnen kann.

Ich versuche mich in Delphi zurecht zu finden und meine Projekte dort
zu entwickeln zumindest teste ich es erstma.


Grüße

mkinzler 25. Okt 2018 21:05

AW: Grafik Programmierung
 
Was für ein Produkt hast Du installiert?

Contace 25. Okt 2018 21:05

AW: Grafik Programmierung
 
Hallo Markus,

ich habe Rad Studio Tokio 10.2 Community Edition.


Grüße

mkinzler 25. Okt 2018 21:13

AW: Grafik Programmierung
 
Ist die Delphi-Personality installiert? Der Grundinstaller installiert nur die Basis-IDE. Der Rest wird über den Get-iT basierten Plattformassistenten heruntergeladen und installiert. In der IDE kann man den jederzeit neu starten. (Plattformen verwalten)

Contace 25. Okt 2018 21:27

AW: Grafik Programmierung
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Markus,


ich sehe dort keine andere Auswahl zum installieren.


Grüße

Harry Stahl 25. Okt 2018 23:57

AW: Grafik Programmierung
 
Ganz unten muss ein blauer Schalter sein "Übernehmen"; darauf klicken, dann startet die Installation.

Wenn schon etwas installiert wäre, stünde da nicht "installieren", sondern "installiert". Also hast Du anscheinend noch gar nichts installiert.

Contace 26. Okt 2018 09:27

AW: Grafik Programmierung
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Harry Stahl,


die Community Version Tokyo 10.2 ist installiert.

Das was ich sehe habe ich schon mehrfach installiert.


Grüße

Harry Stahl 26. Okt 2018 13:43

AW: Grafik Programmierung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Auf der linken Seite fehlt der Eintrag "Neue Geräteübergreifende Anwendung erstellen" (siehe gelbe Markierung im anliegenden Screenshot).

Ich nutze die Community-Editon nicht, sondern die Enterprise-Version, daher weiß ich nicht, ob das FMX-Framework evtl.erst installiert wird, wenn man auch IOS oder MAC OS installiert hat.

Schlage daher vor, Du wählst einfach auch MAC OS and und machst die Installation erneut.

Was installiert ist, wird mit "installiert" angeben, in blauer Schriftfarbe, siehe Anlage.

mkinzler 26. Okt 2018 13:59

AW: Grafik Programmierung
 
Die CE ist eine vollständige Pro Version. FMX sollte auch ohne iOS, macOS und Android mitinstalliert werden.

Contace 26. Okt 2018 19:29

AW: Grafik Programmierung
 
Hallo Harry Stahl,

habe alles installiert, funktioniert super Danke für den tollen Support :thumb:

Der Kreis hat 24 felder in der die Zahlen stehen.
Hast Du das bewusst angelegt oder hat sich das so ergeben ?


Markus: Nein es haben einige sachen noch gefehlt, durch die komplette installation hab ich jetzt denke alles.


Grüße

Harry Stahl 26. Okt 2018 22:28

AW: Grafik Programmierung
 
Zitat:

Zitat von Contace (Beitrag 1416834)

Der Kreis hat 24 felder in der die Zahlen stehen.
Hast Du das bewusst angelegt oder hat sich das so ergeben ?
Grüße

Ja klar, ich habe ich an Deinem Screenshot orientiert.

Wenn Du mehr Abschnitte / Zahlen im Kreis unterbringen willst (oder weniger), musst Du die Werte für Rotationange bzw. den Endwert der For -Schleife ändern.

Aktuell wird die Funktion 24 mal aufgerufen, bei einer Erhöhung des Rotationangles um 15 Grad, so dass am Ende 360 Grad rauskommen, also eine Kreisumrundung.

Contace 27. Okt 2018 17:55

AW: Grafik Programmierung
 
Hallo,

super vielen Dank für den Support.


Ich habe zum teil schon den code verstanden, hab auch vieles getestet und so daraus gelernt.

Auch habe ich wie Du gesagt hast mich mal mehr mit dem Visual/Designer beschäftigt.

Habe einen Quader auf den Kreis gelegt, transparent gemacht, alles super, rotation geändert.

Jetzt wollte ich anfangen und diese Einstellung die ich ausprobiert habe in einer Codeform schreiben.

Ich wollte programmieren wie sich der Quader um seine Axe dreht. Ich habe dein Code mit 15 grad übernommen.

Jedoch gibt mir der Compiler fehler an, die prozedur oder die funktion stimmt nicht.

Ich finde dazu auch nichts zum nachschlagen. Ich wollte dort weiter machen aber ich hänge fest.

Mir is bewusst das das alles mit lernen zusammenhängt, aber ich finde keine Informationen um dort weiter zu machen.

Würde mir gerne mehr Informationen dazu anschauen und daraus lernen.


Grüße

Luckie 27. Okt 2018 19:17

AW: Grafik Programmierung
 
Zitat:

Jedoch gibt mir der Compiler fehler an, die prozedur oder die funktion stimmt nicht.
Ohne Quellcode wird dir hier niemand helfen können.

Contace 27. Okt 2018 20:12

AW: Grafik Programmierung
 
Sorry den hatte ich ganz vergessen.

Ich habe ein Quadrat im VisualDesigner erstellt und wollte es per code drehen.

Hier der Code:

Delphi-Quellcode:
unit FMain;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  System.DateUtils,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects,
  FMX.Layouts, FMX.Controls.Presentation, FMX.StdCtrls;

type
  TFormCircles = class(TForm)
    CircleTemplate: TCircle;
    LayoutZiffer: TLayout;
    Text1: TText;
    Layout1: TLayout;
    CircleInner: TCircle;
    Rectangle1: TRectangle;
    procedure FormCreate(Sender: TObject);
    procedure LayoutZifferClick(Sender: TObject);
    procedure Rectangle1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  FormCircles: TFormCircles;

implementation

{$R *.fmx}

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;

procedure TFormCircles.LayoutZifferClick(Sender: TObject);
begin

end;

procedure TFormCircles.Rectangle1Click(Sender: TObject);
begin

RotationAngle := L * 15;

end;

end.

Luckie 27. Okt 2018 20:53

AW: Grafik Programmierung
 
Und an welcher Stelle kommt jetzt welche Fehlermeldung? :roll:

Contace 27. Okt 2018 21:08

AW: Grafik Programmierung
 
Bei der Stelle ist der code falsch.

Ich wollte den Quader um seine Axe drehen.

Delphi-Quellcode:
RotationAngle := L * 15;

EWeiss 27. Okt 2018 21:12

AW: Grafik Programmierung
 
Zitat:

Zitat von Contace (Beitrag 1416922)
Bei der Stelle ist der code falsch.

Ich wollte den Quader um seine Axe drehen.

Delphi-Quellcode:
RotationAngle := L * 15;

Ja nu schau doch einfach mal welchen wert L nun hat.
Ich denke keinen denn L ist nicht definiert.

gruss

Luckie 27. Okt 2018 21:34

AW: Grafik Programmierung
 
L hat keinen Wert, weil es erst gar nicht kompiliert, da L nicht deklariert ist. Und ich bin mir ziemlich sicher, es gibt eine aussagekräftige Fehlermeldung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:36 Uhr.
Seite 2 von 3     12 3      

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