Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Problem mit hpgl Komponente (https://www.delphipraxis.net/211909-problem-mit-hpgl-komponente.html)

iphi 20. Nov 2022 14:46

Delphi-Version: 7

Problem mit hpgl Komponente
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich möchte eine HPGL-Grafik anzeigen und habe im Netz außer sündhaft teuren Kaufkomponenten nur diese alte HPGL-Grafik-Komponente für Delphi5 gefunden:
http://delphi.icm.edu.pl/ftp/d50free/hpgl2.zip
Nach einer kleinen Änderung (Konstante in Variable verändert) kompiliert sie unter Delphi7, meine einfache HPGL-Datei (Pfeil aus 4 Strichen) wird aber nicht korrekt angezeigt und ich komme nicht drauf warum. Ich zweifle schon an der Komponente...
Habe mein Projekt mit der korrigierten Komponente und dem plt-File (=hpgl) mal gezippt und angehängt.

Hat schon mal jemand diese Komponente erfolgreich benutzt? Kann vielleicht mal jemand drüber schauen?

Danke!

zeras 20. Nov 2022 15:48

AW: Problem mit hpgl Komponente
 
Zeige doch mal, was sein soll und was ist.

iphi 20. Nov 2022 18:11

AW: Problem mit hpgl Komponente
 
Liste der Anhänge anzeigen (Anzahl: 2)
Anbei soll und ist.
Es wird nur die Diagonale gezeichnet.

Steku 20. Nov 2022 19:13

AW: Problem mit hpgl Komponente
 
Wird deine Grafik denn von anderen Viewern, z.B https://www.sharecad.org/
korrekt angezeigt?

Grüße
Steku

himitsu 20. Nov 2022 20:55

AW: Problem mit hpgl Komponente
 
Der Die Webseite zeigt ja nichtmal das Wikipedia-Beispiel richtig an.

Im Grunde ist das eine einfache Scriptsprache mit wenigen Befehlen.
Das müsste sich auch in andere Scriptsprachen übersetzen und dann dort ausführen lassen. (Bash, Python, VBScript, PascalScipt, ...)

iphi 20. Nov 2022 21:21

AW: Problem mit hpgl Komponente
 
Meine hpgl-Datei ist korrekt, die wird von anderen Viewern korrekt angezeigt, s. hochgeladenes soll-Bild.

Ich habe so langsam den Eindruck, die Komponente wurde mutwillig mit Fehlern versehen. Ein paar davon habe ich inzwischen gefunden...

P.S. Wäre schade, den Code verkommen zu lassen. Der ist ziemlich umfangreich und prinzipiell ganz clever gemacht...

TurboMagic 21. Nov 2022 08:56

AW: Problem mit hpgl Komponente
 
Wenn die Lizenz das erlaubt, könntest du's ja als GitHub Projekt anlegen,
dann finden sich evtl. auch noch andere Interessenten/Mitstreiter die daran mit arbeiten.

mmw 21. Nov 2022 21:32

AW: Problem mit hpgl Komponente
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

evtl. wär dies noch noch eine Alternative.

https://www.swplot.com/wplot.htm

als Beispiel:

Delphi-Quellcode:
myplot := TXplot32.Create(self);

  try
    myplot.Parent := self;
    myplot.Width := self.Width;
    myplot.Height := self.Height;

    myplot.DynamicalyResize:=true;
    myplot.DynamicalyTrim:=true;
    myplot.DynamicalyZoom:=True;

    myplot.PreferExactTrim := true;
    myplot.ProportionalAspectRatio := true;
    myplot.ShowInPlaceMenu := true;
    myplot.ShowPropertiesDialog := true;
    myplot.ShowPopupMenu:=true;

 except
  if assigned(myplot) then myplot.free;
 end;
Ich habe mit der importierten Typbibliothek geararbeitet, da mit dem ActiveX Control Fehler auftraten.

Kostet ca. 35€

Gruß

himitsu 21. Nov 2022 22:12

AW: Problem mit hpgl Komponente
 
Abgesehn davon, dass
Delphi-Quellcode:
if assigned
bereits im Free eingebaut ist.
Zitat:

Delphi-Quellcode:
procedure TObject.Free;
begin
  if Self <> nil then
    Destroy;
end;

Ist an dieser Stelle es immer Assigned.
Also nutzlos, da immer True und unnötig, weil Innen das gleiche Ergebnis.

Ausnahme ein kolossaler Fehler ala BufferOverun.
Und da ist die Prüfung eh egal, weil das Ergebnis keinen Wert besitzt, wenn der Programmcode und/oder Arbeitspeicher korrupt sind.

Jens01 22. Nov 2022 11:41

AW: Problem mit hpgl Komponente
 
Ich hab sowas mal mit ner alten DXF Komponente gemacht. Das kann sehr zeitaufwendig werden.
Mit einem neueren Delphi würde ich die Listen auf generische Listen umstellen und die Datei mit TStringlist o.ä. laden. Dann ist die Hälfte des Codes eliminiert.
Wenn Du das hast, dann kann man den Code besser überblicken und sehen, was er da macht. Dann kannst Du den Code ggf korrigieren.
So wie der Code jetzt aussieht, wirst Du kein Überblick finden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:00 Uhr.
Seite 1 von 2  1 2      

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