AGB  ·  Datenschutz  ·  Impressum  







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

GraphicEx und Packages

Ein Thema von Delbor · begonnen am 26. Apr 2018 · letzter Beitrag vom 27. Apr 2018
Antwort Antwort
Seite 1 von 2  1 2      
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

GraphicEx und Packages

  Alt 26. Apr 2018, 10:53
Delphi-Version: 10.2 Tokyo
Hi zusammen

Zur Zeit Schlage ich mich mit Scannen und OCR herum. Letzteres, genauer Tesseract, benötigt, soweit ich das richtig verstanden habe, eine Grafik in Form einer Tiff-Datei.
TWicImage könnte wohl auch eine Tiff erzeugen / in eine solche umwandeln, kann aber im normalfall nur eine Grafik enthalten* So habe ich mir wiedermal die GraficEx geladen.
Mike Lischke empfiehlt dabei, diese in ein eigenes Package zu laden.
Und da fangen für mich die Fragen an. Zum einen: Fremd- oder auch selbst entwickelte Komponenten oder Klassenunits liegen auf meiner Entwickler-Partition, nicht im Delphi-Installationsordner, und genau da wollte/würde ich auch GrafikEx platzieren (und latürnich dann die Such- und Bibliothekspfade anpassen.

Nach meinem bisherigen Verständnis sind Packages für Komponenten - nichtvisuelle und visuelle - vorgesehen, nicht aber für eine Ansammlung verschiedener Klassen, und das sehe ich eigentlich hier bestätigt.
Der Grund für die Package-Empfehlung scheint mir klar zu sein: In früheren Versionen enthielt GraphicEx einige Klassen mit gleichen Namen wie einige von Delphi mitgelieferten. Das scheint nun aber behoben. Oder irre ich mich da?

*es sei denn, man fügt mehrere Grafiken zusammen - das Resultat ist aber wieder eine einzelne Grafik(-Datei).

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: GraphicEx und Packages

  Alt 26. Apr 2018, 10:58
Ein Package ist ja auch nur eine Dll mit erweitertem Interface. Wenn Du diese in eine Dll packst musst Du Dich selber um das Marshalling kümmern, da du im Interface der Dll keine Klassen übergeben kannst.
Eine Dll eigenet sich, wenn auch Programme, welche in anderen Programmiersprachen erstellt wurden, Deinen Code nutzen sollen.
Markus Kinzler
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: GraphicEx und Packages

  Alt 26. Apr 2018, 15:51
Hi zusammen

Nachdem ich GraphicEx nun wie es sich gehört unter Uses einbinden kann, zeigt sich ein "Fehler" in der Klasse MZLib - "Fehler" deshalb, weil das wohl eher auf Änderung in Delphi denn auf einen Bug in GraphicEx hinweist.
Der Anhang zeigt, was Sache ist. Die Fehlermeldung habe ich gleich über der Fehlerzeile einkopiert.

Gruss
Delbor
Miniaturansicht angehängter Grafiken
16_35_46-e__radstudioxe4-erweiterungen_graphicex_mzlib.pas.jpg  
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: GraphicEx und Packages

  Alt 26. Apr 2018, 15:56
Statt dem indizierten Zugriff auf ein Char im String das erste Zeichen rauskopieren
also statt
 Version[1] Copy(Version, 1,1) verwenden.
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: GraphicEx und Packages

  Alt 26. Apr 2018, 16:37
Hallo,
könnte auch sein, dass das eine alte ZLib ist und statt String AnsiString im Parameter stehen muss.
Heiko
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: GraphicEx und Packages

  Alt 26. Apr 2018, 17:40
Hi mkinzler

Vielen Dank! Habs gleich noch an 2 weiteren Stellen korrigiert.
Aber GraphicEx hat noch nicht genug, wie wiederum der Anhang zeigt.

Delphi-Quellcode:
function TPNGGraphic.IsChunk(ChunkType: TChunkType): Boolean;
// determines, independant of the cruxial 5ths bits in each "letter", whether the
// current chunk type in the header is the same as the given chunk type
const
  Mask = not $20202020;

begin // [dcc32 Fehler] GraphicEx.pas(6797): E2089 Ungültige Typumwandlung
  Result := (Cardinal(FHeader.ChunkType) and Mask) = (Cardinal(ChunkType) and Mask);
end;
Die Deklaration von TChunkTyp:

TChunkType = array[0..3] of Char; Die Deklaration des FHeader-Typs:

Delphi-Quellcode:
  // This header is followed by a variable number of data bytes,which are followed by the CRC for this data.
  // The actual size of this data is given by field length in the chunk header.CRC is Cardinal (4 byte unsigned integer)
  TPNGChunkHeader = packed record
    Length: Cardinal; // size of data (entire chunk excluding itself, CRC and type)
    ChunkType: TChunkType;
  end;
Nachdem ich in den obigen Zeilen dei Funktion TPNGGraphic.IsChunk als letztes eikopiert habe, hab ich die Sache längere Zeit wohl ziemlich dämlich angestarrt und längeere Zeit gar nichts begriffen - bis es mir dann doch zu dämmern schien:
  1. TChunkTyp ist ein Array
  2. Dieses(nicht ein Element daraus!) wird mit Mask verknüpft und
  3. in einen Cardinal geschrieben
Dasselbe geschieht mit dem TPNGChunkHeader-TChunkType-Feld. Dann werden beide Ausdrücke miteinander verglichen und das Resultat an Result zugewiesen. Dieses ist Tue, wenn die beiden Ausdrücke übereinstimmen, ansonsten false.
Soweit so gut, würden da nicht 2 komplette Arrays miteinander verglichen.
Zumindest meines Wissens nach kann man Arrays nur miteinder vergleichen, indem man jedes Item mit dem entsprechende Item des andern Arrays vergleicht - oder allenfalls die Quersummen aus den beiden Arrays, nicht aber die Arays selbst.

Oder sehe ich das falsch?

@hoika
Gerade wollte ich mir die Vorschau anzeigen lassen, als ich deinen Beitrag gesehen habe. Die Unit MZLib verursacht jetzt keine Fehler mehr. Die einzige Frage bliebe also noch, wieviel Sinn sie noch macht, daDelphi selbst schon länger sowas mitbringt.
Der obige Fehler dürfte sich so leicht wie der letzte nicht korrigieren lassen. Da stellt sich die Frage, ob ich all die Klassen, die mit PNG in zusammenhang stehen, nicht aus Graphicex entfernen soll, zumal ich eigentlich zumindest im Moment explizit an der Klasse TTiff interessiert bin.

Gruss
Delbor
Miniaturansicht angehängter Grafiken
17_09_49-e__ungueltige-typumwandlung-graphicex_graphicex.pas.jpg  
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: GraphicEx und Packages

  Alt 26. Apr 2018, 18:54
Vielleicht ist die Version die Du versuchst einzubinden veraltet?
GraphicEx Version = Library was tested under various IDE from Delphi 7 up to Delphi 10 Seattle.
Hoffentlich klappt es damit.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: GraphicEx und Packages

  Alt 26. Apr 2018, 21:24
Hi KodeZwerg
Zitat:
Vielleicht ist die Version die Du versuchst einzubinden veraltet?
Ja, ist sie!
Und wie, das zeigt der Anhang!!

Gruss
Delbor
Miniaturansicht angehängter Grafiken
22_17_15-d__j-downloads_delphi.jpg  
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: GraphicEx und Packages

  Alt 26. Apr 2018, 23:25
Solange es funktioniert, supi
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

AW: GraphicEx und Packages

  Alt 26. Apr 2018, 23:52
Solange es funktioniert, supi
Nun ja wenn sie von 25.04.18 ist kann sie nicht alt sein.
Denke das teil wird nicht gepflegt.

gruss
  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 12:51 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