AGB  ·  Datenschutz  ·  Impressum  







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

Canvas und seine Rätsel...

Ein Thema von Delbor · begonnen am 9. Jan 2023 · letzter Beitrag vom 10. Jan 2023
Antwort Antwort
Delbor

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

Canvas und seine Rätsel...

  Alt 9. Jan 2023, 21:32
Delphi-Version: 11 Alexandria
Hi zusammen

Eigentlich sollte folgendes Codescnipsel ja kein Problem sein:
CodeFehler.jpg
Das sollte so, auch nach dem Embarcadero Wikki, in Ordnung sein.
Deklariert ist es:
Delphi-Quellcode:
procedure TAlexPdfFormular.PdfViewCreate2;
  var i, j, X,Y : Integer;
Trorzdem wird die öffnende Indexklammer angemeckert...
Was mache ich falsch

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch

Geändert von Delbor ( 9. Jan 2023 um 21:35 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.630 Beiträge
 
Delphi 12 Athens
 
#2

AW: Canvas und seine Rätsel...

  Alt 9. Jan 2023, 22:26
Die Frage ist doch: Wie ist Bitmap deklariert?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Canvas und seine Rätsel...

  Alt 9. Jan 2023, 23:16
und woher soll PDFView wissen auf welche Seite gemalt werden soll?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Delbor

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

AW: Canvas und seine Rätsel...

  Alt 10. Jan 2023, 00:22
Hi zusammen

Vielleicht mal erst die Prozedur, mit der ich die benötigten FPDFView erstelle :
Delphi-Quellcode:
procedure TAlexPdfFormular.PdfViewCreate2;
  var i, j, X,Y, B : Integer;
begin
    ....
    while i < j do
    begin
      FPDFView := TPDFView.Create(Self); // <== Seite erstellen
      FPdfView.Parent := ScrBViewPdf;
      FPdfView.Name := 'PdfView'+intToStr(i);
      FPdfView.Pdf := Pdf1;
      FPdfView.Active := true;
      FPdfView.PageNumber := i+1;
      if FPdfView.BitmapCount >0 then
        ShowMessage('BitmapCount := ' + IntToStr(FPdfView.BitmapCount)); ;
// FPdfView.Bitmap.
// if FPdfView.BitmapCount >0 then
// begin
// ShowMessage('BitmapCount := ' + IntToStr(FPdfView.BitmapCount));
// for B := 0 to FPdfView.BitmapCount-1 do
// begin
//// FPdfView.Bitmap.Canvas.Draw(X,Y,Bitmap);
// FPdfView.AddPicture(Bitmap,[Bitmap.x,Bitmap.y]); //<=== ...ein weiterer, bislang erfolgloser versuch
// end;


      end;
Hier folgen noch einige Zeilen, die aber nicht weiter wichtig sind.

FPdfView.BitmapCount gibt an, wieviele Bitmaps auf der Pdf-Seite enthalten sind - zumindest hab ich das bislang so begriffen. Hier habe ich einem Pdf-Dokument einen Stempel verpasst, der von einer Demo angezeigt wird, nicht aber von meinem Programm. In dieser Demo hab ich bislang aber kein TPicture- oder TBitmap-Objekt entdecken können. Das versteh ich so, dass diese Bitmap (?) aus der Datei geladen wird, in der auch die Positionsinfos enthlten sind - der Stempel wird (zugegeben: gefühlt) immer an der gleichen Stelle angezeigt.

Eine Bitmap ist lokal deklariert. Die speichert aber die gerade aktuelle Seite und existiert auch nur, während die Prozedur aufgerufen wird:
Delphi-Quellcode:
procedure TViewerFormMain.SpeedButtonSaveBitmapClick(Sender: TObject);
var Bitmap: TBitmap;
begin
  if SavePictureDialog.Execute then
  begin
    Bitmap := PdfView.RenderPage(0, 0, PdfView.Width, PdfView.Height, ro0, PdfView.Options);
    try
      Bitmap.SaveToFile(SavePictureDialog.FileName);
    finally
      Bitmap.Free;
    end;
  end;
end;
TPicture gibts da nicht.
Zitat:
und woher soll PDFView wissen auf welche Seite gemalt werden soll?
PDFView ist eine Seite.

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
hoika

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

AW: Canvas und seine Rätsel...

  Alt 10. Jan 2023, 05:32
Hallo,
der ausgeklammerte Code hatte noch kein [B].
Warum benutzt Du die Schleifenvariable B überhaupt mit Bitmap.
Heiko
  Mit Zitat antworten Zitat
hoika

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

AW: Canvas und seine Rätsel...

  Alt 10. Jan 2023, 05:36
Hallo,
der Stempel (Wasserzeichen?) wird kein Bitmap sein, sondern was anderes ...

Welche Komponente ist das?
Heiko
  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 02:42 Uhr.
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