AGB  ·  Datenschutz  ·  Impressum  







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

Fastreport und UHD Crafik cards

Ein Thema von wschrabi · begonnen am 2. Dez 2020 · letzter Beitrag vom 3. Dez 2020
Antwort Antwort
wschrabi

Registriert seit: 16. Jan 2005
448 Beiträge
 
#1

Fastreport und UHD Crafik cards

  Alt 2. Dez 2020, 19:00
Hallo Leute,
mein Problem: Ich habe einen PC mit und ohne UHD Grafik.
Ich lade in ein FR 2 Bilder so: (Delphi Berlin und FR 6)
Delphi-Quellcode:
procedure TForm7.frxReportRiskBeforePrint(Sender: TfrxReportComponent);
begin
    if Sender.Name = 'Picture2then
    TfrxPictureView(Sender).Picture.Assign(
    Chart1.TeeCreateMetafile(False,
    Rect(0, 0, Round(Sender.Width), Round(Sender.Height))));

    if Sender.Name = 'Picture3then
    TfrxPictureView(Sender).Picture.Assign(
    Chart3.TeeCreateMetafile(False,
    Rect(0, 0, Round(Sender.Width), Round(Sender.Height))));

end;
Wenn ich jetzt das richtig erstellte Report mittel PDF EXPORT als PDF exportieren möchte, kommt beim UHD PC eine Access Violation.
Beim NON-UHD PC nicht.
Auch kann ich nicht den gesaveden prepared FR vom UHD PC am NON-UHD PC nach laden als PDF exportieren.

Wer weiß Rat?
Angehängte Dateien
Dateityp: zip FR-Pre_SAVED_UHD_und_non-UHD.zip (109,0 KB, 1x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#2

AW: Fastreport und UHD Crafik cards

  Alt 2. Dez 2020, 19:41
Wer weiß Rat?
Die da?
https://www.fast-report.com/en/support/

Hier haben zwar einige der Entwickler auch UHD-Monitore,
und wir haben auf einigen Reports auch "Bilder" drauf,
aber ich habe noch nicht gehört, dass es da irgendwelche Probleme gibt.

Also am FastReport selbst wird es vermutlich nicht liegen.
Ich glaube auch es gab irgendwo auch TeeChart auf den Reports, aber ich weiß grade nicht wie die dort drauf kommen (noch nicht gesucht)
und es kann sein, dass gerade diese Reports in letzter Zeit auf jenen UHD-Rechnern/Monitoren noch nicht gedruckt wurden.

Zitat:
eine Access Violation
Es lebe der Debugger oder irgendwas ala Eurekalog/MadExcept,
wo man nachsehn kann, an welcher Stelle es geknallt hat und von wo der Aufruf her kam.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 2. Dez 2020 um 19:47 Uhr)
  Mit Zitat antworten Zitat
wschrabi

Registriert seit: 16. Jan 2005
448 Beiträge
 
#3

AW: Fastreport und UHD Crafik cards

  Alt 2. Dez 2020, 20:54
Hallo also es liegt am Metafile. Wenn ich das CART als JPG Exportiere und dann einbinde geht es. ABer das Metafile Format macht Probleme.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Fastreport und UHD Crafik cards

  Alt 3. Dez 2020, 10:03
Delphi-Quellcode:
// einfach mal den Quelltext anders gestaltet, vielleicht hilft dir das schon etwas weiter
// das eigentliche Problem einzukreisen!
procedure TForm7.frxReportRiskBeforePrint(Sender: TfrxReportComponent);
var
  LRect: TRect;
  LMetaFile: TMetafile;
  LChart: TChart;
begin
  // erstmal gucken, ob der Sender überhaupt der richtige Typ ist
  if Sender is TfrxPictureView then
  begin
    LChart := nil;
    // unter der Voraussetzung, dass deine TfrxPictureView-Komponenten so heißen, machen wir
    // hier nur den Vergleich von zwei Objekt(-Zeigern), was schneller geht als der alte Stringvergleich
    if Sender = Picture2 then
    begin
      LChart := Chart1;
    end
    else if Sender = Picture3 then
    begin
      LChart := Chart3;
    end;

    // hier bietet es sich an, dass in Teilfunktionen zu zerlegen (nicht gezeigt)
    if Assigned(LChart) then
    begin
      // hier war irgendwie Round für Width und Height mit drin? Braucht man in der VCL nicht und
      // ich bin sicher, dass in FMX der Typ TRect auch mit Integern ist.
      LRect := Rect(0, 0, Sender.Width, Sender.Height);

      LMetaFile := LChart.TeeCreateMetafile(False, LRect);
      try
        TfrxPictureView(Sender).Picture.Assign(LMetaFile);
      finally
        // wer erzeugt, muss auch freigeben, siehe auch die Doku dazu:
        // http://www.teechart.net/docs/teechart/vclfmx/lib/html/TCustomTeePanel.TeeCreateMetafile.html
        LMetaFile.Free;
      end;
    end;
  end;
end;
  Mit Zitat antworten Zitat
wschrabi

Registriert seit: 16. Jan 2005
448 Beiträge
 
#5

AW: Fastreport und UHD Crafik cards

  Alt 3. Dez 2020, 11:56
Recht herzlichen DANK, TIGü, wieder durch Deinen Code viel gelernt.
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 00:19 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