Delphi-PRAXiS
Seite 3 von 3     123   

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)

EWeiss 27. Okt 2018 21:35

AW: Grafik Programmierung
 
Zitat:

Zitat von Luckie (Beitrag 1416924)
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.

Wie ich schon sagte ;)
Zitat:

Ich denke keinen denn L ist nicht definiert.
deklariert\definiert, nun wie dem auch sei.

gruss

Contace 27. Okt 2018 21:38

AW: Grafik Programmierung
 
Hallo,

ich habe den code abgeändert:

compiler gibt fehler, Rotation: = 15;

Gibt es vielleicht irgendwo ne referenz zum nachschlagen ?


Grüße

Delphi-Quellcode:
procedure TFormCircles.Rectangle1Click(Sender: TObject);
begin

Rotation: = 15;

end;

end.

EWeiss 27. Okt 2018 21:39

AW: Grafik Programmierung
 
Zitat:

Gibt es vielleicht irgendwo ne referenz zum nachschlagen ?
Ja! Hier nur du gehst auf unsere Antworten nicht ein.

Also nochmal!
Wo ist Rotation deklariert.

gruss

Luckie 27. Okt 2018 21:41

AW: Grafik Programmierung
 
Und wo ist Rotation deklariert?

EWeiss 27. Okt 2018 21:42

AW: Grafik Programmierung
 
Zitat:

Zitat von Luckie (Beitrag 1416929)
Und wo ist Rotation deklariert?

LOL hat sich mit meinem Edit überschnitten.

gruss

Harry Stahl 27. Okt 2018 22:04

AW: Grafik Programmierung
 
Du musst den Namen des Objektes angeben, also z.b.

Delphi-Quellcode:
Rectangle1.RotationAngle := 15;

Contace 27. Okt 2018 22:24

AW: Grafik Programmierung
 
Harry Stahl: Du bist und bleibst Hier der beste Supporter ! :thumb:

Funktioniert Super.

Wieder was gelernt !

Gibt es irgendwo ne Referenz zum nachschlagen ?

Hab zig neue Ideen aber will nicht laufend hier nachfragen :)


Grüße

EWeiss 27. Okt 2018 22:27

AW: Grafik Programmierung
 
Zitat:

Harry Stahl: Du bist und bleibst Hier der beste Supporter !
Sorry das Problem dabei ist nur du lernst quasi nichts!

Du bekommst alles serviert das hat nichts mit Support zu tun sondern wie sagt man doch früher in der Schule? Vorsagen..
Ok bin raus..

gruss

Contace 27. Okt 2018 22:36

AW: Grafik Programmierung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich wollte gerne die Position ändern.

Hab mich dazu als Referenz an den VisualDesigner gehalten und die Eigeschaftsbezeichnung übernommen.

Der Compiler meldet wieder eine fehlermeldung das der Code nicht passt.

Grüße

EWeiss 27. Okt 2018 22:38

AW: Grafik Programmierung
 
Ok meine letzte Antwort hier.

Rectangle1.Position.X := 100;
Rectangle1.Position.Y := 100;

gruss

Contace 27. Okt 2018 23:08

AW: Grafik Programmierung
 
Hallo EWeiss,

danke für die Hilfestellung. Der Code läuft super.

Aber wenn ich nur Position verwende gibt er mir ne Fehlermeldung das Ihm das nicht passt.

Ich bräuchte jetzt die nächsten kordinatenangabe y aber ich weiß nicht wie, der code

Position.X := 100

Position.Y := 200

bringt mir wieder eine Fehlermeldung.


Grüße

EWeiss 27. Okt 2018 23:10

AW: Grafik Programmierung
 
Zitat:

Zitat von Contace (Beitrag 1416939)
Hallo EWeiss,

danke für die Hilfestellung. Der Code läuft super.

Aber wenn ich nur Position verwende gibt er mir ne Fehlermeldung das Ihm das nicht passt.


Grüße

Ja weil nur Position sich in dem Fall auf die TFormCircles auswirkt und nicht auf Rectangle1.. habe es korrigiert.
TFormCircles kennt kein Position.X

Zitat:

bringt mir wieder eine Fehlermeldung.
Siehe mein EDIT! Oder hier nochmals.
Delphi-Quellcode:
Rectangle1.Position.X := 100;
Rectangle1.Position.Y := 200;
Viel spaß noch mit deinem Projekt.

PS:
Vergiss das Semikolon nicht nach jeder Zeile!

gruss

Luckie 27. Okt 2018 23:22

AW: Grafik Programmierung
 
Zitat:

Zitat von Contace (Beitrag 1416939)
bringt mir wieder eine Fehlermeldung.

Und die lautet? :roll:

Contace 27. Okt 2018 23:25

AW: Grafik Programmierung
 
EWeiss: Vielen Dank für den Support.

Ich versuche Dir zu folgen bzw. was dabei zu Lernen.

Ich muss also immer Rectangle1. angeben wenn ich meine koordinaten ändern möchte wie zb.

rotation oder position ?


Luckie: Ich habe gerade keine Fehlermeldung :-D


Grüße

EWeiss 27. Okt 2018 23:26

AW: Grafik Programmierung
 
Zitat:

Zitat von Contace (Beitrag 1416942)
EWeiss: Vielen Dank für den Support.

Ich versuche Dir zu folgen bzw. was dabei zu Lernen.

Ich muss also immer Rectangle1. angeben wenn ich meine koordinaten ändern möchte wie zb.

rotation oder position ?



Grüße

Richtig! Wenn Rectangle1 das Control ist mit dem du arbeiten möchtest.
Und das Semikolon nicht vergessen.
Die Eigenschaft Rotation gibt es nicht für Rectangle1 nur RotationAngle :roll:

gruss

Contace 27. Okt 2018 23:32

AW: Grafik Programmierung
 
EWeiss: hab gerade ne menge gelernt. :thumb:

Hab gerade einen anderen parameter aus dem VisualDesigner genommen zb. Opacity funktioniert super ! 8-)



Grüße

EWeiss 27. Okt 2018 23:33

AW: Grafik Programmierung
 
Zitat:

Zitat von Contace (Beitrag 1416945)
EWeiss: hab gerade ne menge gelernt. :thumb:

Hab gerade einen anderen parameter aus dem VisualDesigner genommen zb. Opacity funktioniert super ! 8-)



Grüße

Fein dann bin ich jetzt raus.

gruss

TiGü 28. Okt 2018 12:54

AW: Grafik Programmierung
 
Das wird aber sehr mühselig, wenn ihr den so an die Hand nimmt. :roll:

Medium 29. Okt 2018 01:02

AW: Grafik Programmierung
 
Vielleicht sollte man ihm mal verraten, das F1 eine extrem tolle Taste ist - nicht nur in Delphi!

Neutral General 29. Okt 2018 08:35

AW: Grafik Programmierung
 
Wenn ich den Code sehe den er z.T. fabriziert sollte er vielleicht lieber mal von vorne anfangen, als jetzt hier Leuten Code aus der Nase zu ziehen.
Das wird so hinten und vorne nix. Egal wie viel "Support" er hier noch kriegt.
Es ist tatsächlich genau das was ich schon vorher geschrieben hatte: Bestimmte Sachen motivieren einen Programmieren zu lernen - das was einen motiviert ist aber (leider) nicht das womit man anfangen sollte.

Contace 29. Okt 2018 18:08

AW: Grafik Programmierung
 
Hallo Harry Stahl,

ich versuche den code besser zu verstehen und habe dazu noch einige Fragen.

Du hast 2 Circle ein inneren als rand ?

Den äußeren für die Zahlen selber ?

Du hast quasi die nummern entlang des äußeren Cicle kopiert ?


Grüße

Harry Stahl 29. Okt 2018 20:47

AW: Grafik Programmierung
 
Ja, das hast Du richtig verstanden.

Allerdings möchte ich mich den Anmerkungen einiger Anderer hier anschließen und Dir doch raten, dass Du Dich zunächst einmal mit den Grundlagen der Programmierung und der Pascal-Sprache beschäftigst. Auf Amazon findest Du einiges (Stichwörter etwa wie Grundkurs Pascal, Delphi Programmierung, etc.).

Leider gibt es kein Buch, welches einen Grundkurs zur Programmierung mit dem aktuellen Delphi unter direkter Verwendung von FMX anbietet (jedenfalls kenne ich keines), insofern wird da nichts anderes übrig bleiben, als erst mal mit der VCL das Wesentliche zu Pascal und Delphi zu lernen.

Evtl. kann hier jemand anderes noch ein gutes Buch für den Einstieg empfehlen.

Contace 29. Okt 2018 21:49

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

ja das seh ich genauso, nur ohne referenz werd ich nicht viel lernen können.

Ich bin mittlerweile auf visual umgestiegen zur graphikprogrammierung gibt es da genug bücher.

Allerdings hab ich ein problem, ich weiß nicht warum der Kreis nicht ganz rum geht.


Grüße

Code:
protected override void OnPaint(PaintEventArgs e)
    {
        Graphics g = e.Graphics;
        SetScale(g);
        DrawFace(g);
        base.OnPaint(e);
    }
    private void InitializeComponent()
    {
        this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
        this.ClientSize = new System.Drawing.Size(800, 600);

    }

    [STAThread]
    static void Main()
    {
        Application.Run(new DrawStringAlignACircle());
    }

    private void SetScale(Graphics g)
    {
        g.TranslateTransform(Width / 2, Height / 2);

        float inches = Math.Min(Width / g.DpiX, Height / g.DpiX);

        g.ScaleTransform(inches * g.DpiX / 2000, inches * g.DpiY / 2000);
    }

    private void DrawFace(Graphics g)
    {
        Brush brush = new SolidBrush(ForeColor);
        Font font = new Font("Arial", 15);

        float x, y;

        const int numHours = 100;
        const int deg = 360 / numHours;
        const int FaceRadius = 700;

        for (int i = 1; i <= numHours; i++)
        {
            x = GetCos(i * deg + 90) * FaceRadius;
            y = GetSin(i * deg - 90) * FaceRadius;

            StringFormat format = new StringFormat();
            format.Alignment = StringAlignment.Center;
            format.LineAlignment = StringAlignment.Center;

            g.DrawString(i.ToString(), font, brush, -x, -y, format);

        }
        brush.Dispose();
        font.Dispose();
    }

    private static float GetSin(float degAngle)
    {
        return (float)Math.Sin(Math.PI * degAngle / 180f);
    }

    private static float GetCos(float degAngle)
    {
        return (float)Math.Cos(Math.PI * degAngle / 180f);
    }

}

Medium 29. Okt 2018 22:25

AW: Grafik Programmierung
 
Zitat:

Zitat von Contace (Beitrag 1417065)
nur ohne referenz werd ich nicht viel lernen können.

Deshalb mein Hinweis auf F1: Dahinter verbirgt sich die Online-Hilfe, welche recht gut als Referenz dient.

Zitat:

Ich bin mittlerweile auf visual umgestiegen zur graphikprogrammierung gibt es da genug bücher.
Und sicherlich auch Foren, in denen dir dann weit besser geholfen werden kann als in diesem Delphi-Forum.

Zitat:

Allerdings hab ich ein problem, ich weiß nicht warum der kreis nicht gefüllt wird und wie ich den zirkel verdoppeln kann.
Mit gefüllt meinst du vermutlich, dass die Zahlen nicht ganz rum gehen. Das wird daran liegen, dass du "deg" als "int" deklarierst, und der dabei entstehende Rundungfehler nachher mit multipliziert wird. Das sollte fast sicher als "float" deklariert werden. (Lernen was welche Typen können und wofür man sie einsetzt lohnt sich in allen Sprachen!)

Was du mit "Zirkel verdoppeln" meinst erschließt sich mir nicht wirklich.

Contace 29. Okt 2018 22:44

AW: Grafik Programmierung
 
Hallo Medium,

danke für den Hinweis, es funktioniert super. :thumb:

Ich meinte wie ich mehrere Kreise mit nummern bekomme.


Grüße

Medium 29. Okt 2018 23:05

AW: Grafik Programmierung
 
Das gleiche nochmal, nur mit anderem FaceRadius. Spiel einfach mal etwas mit den Zahlen herum die da so verteilt in "deinem" Code stehen und schau was sie machen. Rumfummeln ist auch eine super Lernmethode!

Contace 29. Okt 2018 23:06

AW: Grafik Programmierung
 
Was meintest Du mit das gleiche nochmal ?

Anderes problem ist ich weiß nicht wie ich die abstände rein bekomme und die linien dazu

Grüße



Code:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

public class DrawStringAlignACircle : System.Windows.Forms.Form
{
    private System.ComponentModel.Container components = null;

    public DrawStringAlignACircle()
    {
        InitializeComponent();
        BackColor = SystemColors.Window;
        ForeColor = SystemColors.WindowText;
    }

    protected override void OnPaint(PaintEventArgs e)
    {
        Graphics g = e.Graphics;
        SetScale(g);
        DrawFace(g);
        base.OnPaint(e);
    }
    private void InitializeComponent()
    {
        this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
        this.ClientSize = new System.Drawing.Size(800, 600);

    }

    [STAThread]
    static void Main()
    {
        Application.Run(new DrawStringAlignACircle());
    }

    private void SetScale(Graphics g)
    {
        g.TranslateTransform(Width / 2, Height / 2);

        float inches = Math.Min(Width / g.DpiX, Height / g.DpiX);

        g.ScaleTransform(inches * g.DpiX / 2000, inches * g.DpiY / 2000);
    }

    private void DrawFace(Graphics g)
    {
        Brush brush = new SolidBrush(ForeColor);
        Font font = new Font("Arial", 20);

        float x, y;

        const float kreis = 90;
        const float deg = 360 / kreis;


        const float FaceRadius = 800;

        for (int i = 1; i <= kreis; i++)
        {
            x = GetCos(i * deg + 90) * FaceRadius;
            y = GetSin(i * deg - 90) * FaceRadius;

            StringFormat format = new StringFormat();
            format.Alignment = StringAlignment.Center;
            format.LineAlignment = StringAlignment.Center;

            g.DrawString(i.ToString(), font, brush, -x, -y, format);

        }
        brush.Dispose();
        font.Dispose();
    }

    private static float GetSin(float degAngle)
    {
        return (float)Math.Sin(Math.PI * degAngle / 180f);
    }

    private static float GetCos(float degAngle)
    {
        return (float)Math.Cos(Math.PI * degAngle / 180f);
    }

}

KodeZwerg 29. Okt 2018 23:40

AW: Grafik Programmierung
 
Na das ist ja mal eine Reise, wenn man sich alles von vorne durchliest.
Kreis in Delphi, Kinokarten, Visual, wie wo was, wieder zu Delphi weils ein Beispiel gab um 50 Posts später wieder auf Visual zu gehen.
Solange Du Dich wohl fühlst, darauf finde ich kommt es am meisten an, ist ja alles geregelt, egal in welcher Sprache.

Contace 29. Okt 2018 23:44

AW: Grafik Programmierung
 
Hallo KodeZwerg,

ja ich habe anfangs probleme gehabt aber ich denke visual ist super.

Allerdings kann ich mich hier nicht von dem Forum trennen, es ist das beste...:cry:


Grüße

Neutral General 30. Okt 2018 09:12

AW: Grafik Programmierung
 
Warum ignorierst du jeden Ratschlag erstmal die Grundlagen zu lernen? :roll:
Du hast doch in dieser ganzen Odyssee nur Code aus Tutorials abgeschrieben und wenn etwas nicht geklappt hat, hast du die Hände in die Luft geworfen und "Hilfe" geschrieen und den Code einfach so abgeändert wie der nächste Beitrag dir das empfohlen hat.
Es kann dich nicht eine ganze Foren-Community Zeile für Zeile durch deinen Code begleiten - so läuft das nicht :!:
Ich verstehe auch ehrlich gesagt nicht warum Leute dir hier überhaupt noch Quelltext diktieren... :roll:

Sein "Visual" Code ist z.B. zu 100% einfach von hier abgeschrieben:
http://www.java2s.com/Tutorial/CShar...ongacircle.htm
(abgesehen von 2 Werten die er bei sich geändert hat..)

Contace 30. Okt 2018 10:00

AW: Grafik Programmierung
 
Neutral General: Ich zwinge hier niemanden mir irgendetwas zu diktieren.

Ich versuche als Anfänger zu Lernen und zu verstehen und danke denjenigen die mich dabei auf den ersten schritten unterstützen.

Ich verlange von niemanden das er mich durch den ganzen code begleitet, im gegenteil es ist seine freie entscheidung.

Die besten produktiven kommentare habe ich von Harry Stahl, Stahli, Eweiss und Medium bekommen !

Alles andere ignore ich jetzt einfach ma. :wink:


Grüße

Neutral General 30. Okt 2018 10:06

AW: Grafik Programmierung
 
Dann wünsch ich dir noch viel Erfolg und hoffe dass diese Leute noch Geduld haben bis du all deine Vorhaben erfolgreich umgesetzt (bekommen) hast :thumb:
Edit: Und sorry das kann ich mir nicht verkneifen, aber du willst nicht lernen, du willst schnelle Ergebnisse.

Contace 30. Okt 2018 10:26

AW: Grafik Programmierung
 
Neutral General: auch wenn ich tutorials aus den Büchern entnehme lern ich einiges.

Von Medium habe ich 3 Sachen gelernt, andere Typen zu benutzen, ganze functionen umschreiben sowie sich im Code austoben und auszuprobieren.

Auch von allen anderen hab ich gelernt.

Ich kann nicht sagen das ich hier nichts lerne ! Das Forum ist Bombe !

I will keine schnellen ergebnisse, ich gebe mir die Zeit und nehme mir diese auch und danke denjenigen der mich dabei unterstützt.

Nochmals ich zwinge niemanden hier mir irgendetwas zu Diktieren !

Grüße

KodeZwerg 30. Okt 2018 10:41

AW: Grafik Programmierung
 
Zitat:

Zitat von Contace (Beitrag 1417102)
Die besten produktiven kommentare...

...fand ich das Dir geraten wurde eine Lektüre mal in die Hand zu nehmen damit Du überhaupt erst mal die Syntax lernst.
Ob in Delphi oder Basic oder C oder was auch immer. Ohne die Sprache/Syntax zu können bist Du aufgeschmissen.
Code Beispiele sind immer gut aber die Syntax dazu sollte man dann schon können.
Was nützen Dir die besten Hilfsmittel zu haben um einen Motor zu reparieren wenn man nicht weiß wie man ein Werkzeug bedient. (hab das mit dem motor gestern aufgegriffen^^)
Sicherlich kann man sich alles zusammenkopieren, hier und da nen Wert ändern, aber bei programmieren geht es eher darum das man selbst weiß was da passiert und vor allem auch warum.
Das lernt man nicht durch Code Beispiele oder gar kompletten Source für ein vollständiges programm.
Wenn man die Syntax beherrscht, ab da sind Beispiele eine wahre Goldgrube, da man lesen/verstehen kann was/wie passiert.

Klingt jetzt vielleicht makaber, aber geh mal in die bibliothek und leih dir "X für Dummies" aus, ersetze X mit der Sprache die es werden soll, du bist ja recht flott dabei zu wechseln :-)
Der Buchname wirkt abwertend aber der inhalt ist bares gold und leicht begreiflich und kostet dich nichts bis auf zeit.
Wenn lernen ein knackpunkt bei dir ist, ist programmieren vielleicht das falsche hobby.

Falls Du mal wieder zu Delphi zurück kommst und etwas die Syntax gelernt hast, man sehen kann das Du Dich entwickelt hast, da wird Dir hier sicherlich niemand Hilfe verwehren.
Von heut auf morgen wird das nichts.

Also meine Empfehlung:
Delphi-Quellcode:
if (LearnedSyntax) then Fail := False else Halt(0);

Neutral General 30. Okt 2018 10:42

AW: Grafik Programmierung
 
Es geht mir nicht darum ob du Leute zu etwas zwingst (Kannst du ja gar nicht).
Du tust dir damit einfach selbst keinen Gefallen. Schau dir deinen C# Code an.
Sei ehrlich zu dir selbst und überleg wie viel du davon verstehst.
Hättest du den C#-Code zumindest grob verstanden, dann wüsstest du (zumindest ungefähr) wie du einen inneren Kreis hinzufügen kannst.
DAS ist das Problem. Du hast hier Code und tappst komplett im Dunklen weil du keinen Plan hast was der Code auf deinem Bildschirm überhaupt im Einzelnen tut.
Und dann lässt du dich von den geduldigeren Mitgliedern des Forums durch die Dunkelheit führen ohne am Ende wirklich besser zu verstehen was abgeht.
Ein Programmierer, ein Anfänger sogar umso mehr, sollte den Sinn und Zweck jeder einzelnen Zeile seines Codes verstehen.
Ich rede da nicht mal von tiefgreifendem Verständnis der dahinterliegenden Dinge, sondern man sollte bei jeder Zeile des Codes wissen was für Auswirkungen diese Zeile auf das Endergebnis hat und warum es nicht mehr klappen kann, wenn man diese Zeile entfernt. Und da bist du gerade bei diesem C# Code meilenweit entfernt würde ich wetten.
Geh den Code für dich durch. Zeile für Zeile und versuch den Sinn der Zeile zu verstehen, warum sie notwendig ist (oder auch nicht) und was passieren würde wenn diese Zeile nicht da wäre oder abgeändert wird. Wenn du das getan hast und immer wenn du dir diese Fragen nicht beantworten konntest dich (irgendwo/irgendwie) informiert hast um sie dann doch zu verstehen, dann hast du was gelernt und dann tappst du nicht im Dunklen, sondern hast deinen Code unter Kontrolle und kannst ihn daher auch ohne größere Probleme deinen Wünschen anpassen.

Dieser Vorgang ist gerade bei etwas komplexeren Themen nicht ganz einfach. Das ist der Grund warum ich und ein paar andere von den Grundlagen reden.
Der C# Code ist 1000x schwerer zu verstehen, wenn einem drumherum jede Menge wissen fehlt.

Ich verstehe dass du meine Antworten in deinem Thread nicht besonders gern hast weil sie dir jetzt kurzfristig bei deinem aktuellen Problem nicht direkt weiter helfen.
Aber wenn du meinen Rat befolgen würdest, musst du Kugeln nicht mehr ausweichen Neo! 8-) .. Ehm ich meine.. dann musst du nicht mehr für jede Kleinigkeit nachfragen und im dunklen tappen.
Dann hast du die Kontrolle über deinen Code. Und das ist das wichtigste wenn du ernsthaft lernen willst zu Programmieren.

EWeiss 30. Okt 2018 11:49

AW: Grafik Programmierung
 
@Michael
Ich denke damit ist alles gesagt! :thumb:

gruss

Contace 1. Nov 2018 15:09

AW: Grafik Programmierung
 
Hallo,

ja das stimmt allerdings, hab mich bissel mit den Sachen überschätzt und sollte mal ganz langsam von vorne
anfangen und mich langsam hocharbeiten.

Ich Danke euch für den tollen Support ! :thumb:


Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:04 Uhr.
Seite 3 von 3     123   

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