Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi S: Dringend Hilfe für Delphi-Programm mit Grafikausgabe (https://www.delphipraxis.net/11344-s-dringend-hilfe-fuer-delphi-programm-mit-grafikausgabe.html)

cook 4. Nov 2003 19:59


S: Dringend Hilfe für Delphi-Programm mit Grafikausgabe
 
Also, sicher habt ihr solche anfragen ständig, aber ich brauch hilfe.

Ich muss für mein Vordiplom ein DelphiProgramm schreiben und hab NULL Ahnung davon... wirklich 0.
Es geht um einen Maschinenaufstellplan, bei dem ich Raumgröße, Maschinenanzahl & -Größe und sowas einlese und das dann grafisch ausgeben soll. (Die Speicherung in einer Datenbank bleibt wahrscheinlich auch nicht aus.)
Genau da liegt das Problem. Das einlesen von den Objekten krieg ich ja noch hin, und zur Not auch noch solche Abgleiche wie: ob die Maschinen alle in den definierten Raum passen.
Aber wenn es um die grafische Ausgabe geht hab ich keinen Plan wie ich das machen soll.
Es müsste ja in etwa so aussehen, das ich den Raum gezeichnet bekomme und dann meine Maschinen da einsetzen kann so dass sie sich nicht überschneiden und so...

Kann mir da jemand helfen?!

Ein Beispiel-Source-Code wäre schon ganz nützlich... wenns etwas mehr sein kann hab ich natürlich auch nix dagegen :)

Ich hoffe auf eure Mithilfe... mfg c:roll::?:k

Christian Seehase 4. Nov 2003 20:03

Re: S: Dringend Hilfe für Delphi-Programm mit Grafikausgabe
 
Moin cook,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Stellt sich die Frage, wie die Maschinen usw. dargestellt werden sollen.
Durch direktes Zeichnen, oder mit fertigen Graphiken, die Du dann z.B. aus den Resourcen des Programmes einliest.

SirThornberry 4. Nov 2003 20:05

Re: S: Dringend Hilfe für Delphi-Programm mit Grafikausgabe
 
weißt du allgemein nicht wie man zeichnet?? Wenns so ist guck dir mal Canvas an. Das Hauptformular hat eine Canvas oder du nimmst ein TImage oder was weiß ich... Und bei canvas gibts dann sowas wie LineTo und andere funktionen zum zeischen, eigentlich ziemlich simple...

cook 4. Nov 2003 21:09

Re: S: Dringend Hilfe für Delphi-Programm mit Grafikausgabe
 
@all
Die Sache ist die:
Die Darstellung der Maschinen muss dynamisch sein.
Also ich will im Hauptformular zuerst eine Raumgröße (LxB) einlesen, dann eine Anzahl von Maschinen einlesen, die auch mit Länge x Breite eingegeben werden müssen.
Dazu wollte ich einen Mindestabstand von sagen wir 50cm addieren, da die ja nicht aneinander stehen können. Wenn ich nun diese ganze Daten habe soll eine grafische Ausgabe erfolgen.
Dabei soll zuerst der Raum gezeichnet werden und dort hinein muss ich dann meine Maschinen positionieren können. Eine Darstellung als einfaches Rechteck mit ein paar Daten drin müsste reichen.
Den Umriss der Maschine per Drag&Drop in den Raum zu ziehen, dort zu verschieben und zu drehen wäre sicherlich ganz schön, aber schließlich muss ich das Programm auch verteidigen und wenn ich mit den einfachen Sachen schon meine Probleme habe, wie soll ich dann sowas dem Prof näher bringen.
Ich hab aber auch keine andere Idee wie ich das machen könnte.

@Sir Thornberry
Ich weiß allgemein nich wie man zeichnet.

SirThornberry 4. Nov 2003 21:34

Re: S: Dringend Hilfe für Delphi-Programm mit Grafikausgabe
 
bis wann mussn das ganze fertig sein?? Für das zeischnen könnt ich nen kleenes demo machen, wobei dann die frage ist ob mit verschieben oder nicht. Denn wenn mit verschieben möglich sein soll isses am besten man macht jedes möbelstück als eigene komponente..

Gandalfus 4. Nov 2003 21:35

Re: S: Dringend Hilfe für Delphi-Programm mit Grafikausgabe
 
Die frage ist ob sich 1. einer den sieht anckuckt oder ob das Programm 2.nur gut aussehen soll.

Zu 2:
Arbeite mit TImage strech auf true drag%drop durch mouse Ereignisse. UNd Form.doupelpuffer := true nicht vergessen.


Zu 1: Vergesse 2. Timage sind für sowas eigendlich nicht geeignet.

Delphi-Quellcode:
type
  Tgeraet =record
    left,top: integer;
    sonstige Daten...

Geraete: array [0...x] of Tgeraet;
Timer mit kleinem Intervall oder onidle:
Delphi-Quellcode:
  Raumzeichnen(zeichnen mit TCanvas)
 
  for i := 0 to high(geraete) do
  begin
    geräte zeichnen
  end;

 BitBlt(P_display.canvas.handle, 0, 0, backpuffer.Width, backpuffer.Height, backpuffer.canvas.handle, 0, 0, srccopy);
  Backpuffer aufs Formular.

Ich hab beide Mölichkeiten nur mal angedeutet. Kann das auch noch näher erklären wenn du dich entschieden hast.

Btw.: So eine schöne 3D Darstellung mit DirectX wär doch auch nicht schlecht :lol:

cook 4. Nov 2003 21:47

Re: S: Dringend Hilfe für Delphi-Programm mit Grafikausgabe
 
Fertig muss das erst am 7. Januar sein... aber wenn ich das nich jetzt mache schaff ichs nicht mehr. Hab ja auch noch andere Sachen zu tun :?
Verschieben wär schon sinnvoll, schließlich will doch der Benutzer seine Halle so einrichten wie er will und nicht durch ein Programm vorgegeben.
Allerdings wär ich auch für andere Vorschläge offen. Ich mein... es ist ja fast nix vorgegeben. Ich hab da ziemliche Freiheit.
Ich such mal eben die Aufgabenstellung... *kramkram*

cook 4. Nov 2003 21:56

Re: S: Dringend Hilfe für Delphi-Programm mit Grafikausgabe
 
Hinweise zur Programmierung:
Bewertet werden:
Umsetzung der Aufgabenstellung
Programmkonzeption (Verwendung von Units, eigenen Klassen, Vererbung, Wiederverwendung)
Fehlerfreiheit (Prüfung von logischen Fehlern im Programmablauf)
Robustheit gegenüber Eingabe
Dokumentation

Wenden Sie bei der Umsetzung der Projektaufgabe explizit die Prinzipien der objektorientierten Programmierung an!

Aufgabe:
Maschinenaufstellplan: Programmieren Sie die Eingabeverarbeitung aller benötigtnen Parameter (z.B. Koordinaten und Art der Maschine) und erzeugen Sie die grafische Darstellung eines Maschinenaufstellplanes.

Gandalfus 5. Nov 2003 14:47

Re: S: Dringend Hilfe für Delphi-Programm mit Grafikausgabe
 
Liste der Anhänge anzeigen (Anzahl: 2)
Ich hab mal 2 Beispiele rausgesucht. Es handelt sich dabei um ein Programm mit dem man flaggen verschiebt. Die Flaggen könnte man ja durch geräte ersetzen.

Die erste Variante ist wie ein Spiel aufgebaut was ja nicht schlecht sein muss.
Die zweite Variante hat wohl etwas mehr mit OOP zu tun.

cook 5. Nov 2003 16:18

Re: S: Dringend Hilfe für Delphi-Programm mit Grafikausgabe
 
AuJa... das bringt mich doch schon mal ein ganzes Stück weiter. Big THX @ Gandalfus
Ich werd mir sobald ich Zeit habe den Quelltext mal zu Gemüte führen und versuchen zu verstehen :wink: !!
Ich meld mich wieder sobald ich Fortschritte gemacht habe... (kann ein paar Tage dauern >weil bin zur Zeit im Stress< muss aber nich)
Wäre cool wenn ich evtl. nochmal eure Hilfe in Anspruch nehmen könnte falls ich irgendwo nicht weiter komme.

mfg cook

cook 6. Nov 2003 16:49

Re: S: Dringend Hilfe für Delphi-Programm mit Grafikausgabe
 
Hi Leutz...
Ich hab mal wieder ein Problem. Ich kriegs nicht hin einen berechneten Wert in einem Edit Feld auszugeben.... hab folgenden Sourcecode:

Also meine Raumklasse sieht so aus:
Delphi-Quellcode:
type
  TRaum = class(TObject)

  private { Private-Deklarationen }
    Raumbreite: single;  {in cm}
    Raumlaenge: single;  {in cm}
    procedure SetrBreite(const breit: single);
    procedure SetrLaenge(const lang: single);

  public { Public-Deklarationen }
    property rBreite: single {in m}
      read Raumbreite write SetrBreite;
    property rLaenge: single {in m}
      read Raumlaenge write SetrLaenge;
end;
Dann hängt natürlich noch die TForm1 da mit drin...

Wenn ich dann auf den Button1 klicke sollte eigentlich die Breite und Länge aus den Edit-Feldern eingelesen werden...
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
    FRaum.rBreite := StrToFloat(rBreitEingabe.Text);
  FRaum.rLaenge := StrToFloat(rLangEingabe.Text);
    rFlaeche.Text := FloatToStr(FRaum.rBreite);
end;

jedoch macht er mir hier dann ne Fehlermeldung bei Raumbreite:=breit -->EAccessViolation :wall:
Delphi-Quellcode:
procedure TRaum.SetrBreite(const breit: single);
begin
  if (breit > 0) and (breit < 50)
    then Raumbreite := breit;    
end;
Any Hints? :gruebel:

Gandalfus 6. Nov 2003 19:42

Re: S: Dringend Hilfe für Delphi-Programm mit Grafikausgabe
 
Vieleicht '.' und ',' verwechselt bei der eingabe?

btw.:
Delphi-Quellcode:
private { Private-Deklarationen }
    FRaumbreite: single;  {in cm}
    FRaumlaenge: single;  {in cm}
Das F steht für feld ist so übersichtlicher.

cook 6. Nov 2003 19:50

Re: S: Dringend Hilfe für Delphi-Programm mit Grafikausgabe
 
hab ja sogar nur ganze Zahlen eingegeben, aber es kommt trotzdem nicht zu einer Ausgabe.

Gandalfus 7. Nov 2003 12:24

Re: S: Dringend Hilfe für Delphi-Programm mit Grafikausgabe
 
showmessage(floattostr(strtofloat('45456,6776')));

funktioniert.

Grenz den Fehler doch noch näher ein z.B.: mit Breakpoints.

cook 7. Nov 2003 13:22

Re: S: Dringend Hilfe für Delphi-Programm mit Grafikausgabe
 
Das werd ich mal ausprobieren...
Melde mich Montag wieder, denn ich geh jetzt ins WE und da hab ich keinen Rechner.

schönes WE!
mfg cook

cook 10. Nov 2003 16:52

Re: S: Dringend Hilfe für Delphi-Programm mit Grafikausgabe
 
Ich glaub ich hab es endlich... mein Fehler war nur das ich die verdammte Produktvariable aus Breite und Länge nicht als extended deklariert habe.

so funktioniert es auch mit Edit.Text := blablabla
aber das mit dem schowmessage(...) hilft mir auch weiter. THX

ich meld mich wieder
mfg cook


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:42 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