AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi FloatToStr & Prozeduraufruf mit 2 Parametern
Thema durchsuchen
Ansicht
Themen-Optionen

FloatToStr & Prozeduraufruf mit 2 Parametern

Ein Thema von Delbor · begonnen am 3. Dez 2017 · letzter Beitrag vom 3. Dez 2017
Antwort Antwort
Delbor

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

FloatToStr & Prozeduraufruf mit 2 Parametern

  Alt 3. Dez 2017, 14:44
Delphi-Version: XE8
Hi zusammen

Ich habe folgendes Konstrukt:

Delphi-Quellcode:
    for i := 0 to FCtrl.Document.PageList.Count -1 do
    begin
      Memo1.Lines.Add('X-Offset / Y-Offset :=' + FloatToStr(FCtrl.Document.PageSizes[i].Offset(XOffset,)));
      ...
    end;
Und wie nicht anders zu erwarten, meint Delphi dazu:
Zitat:
[dcc32 Fehler] MainFrm.pas(114): E2250 Es gibt keine überladene Version von 'FloatToStr', die man mit diesen Argumenten aufrufen kann
Damit stehe ich aber vor einem Problem - ich kann die Prozedur nur mit beiden Parametern aufrufen, an FloattoStr aber nur einen übergeben.
Offset ist Teil des Records TPDFPoint:

Delphi-Quellcode:
  TPdfPoint = record
    X, Y: Double;
    procedure Offset(XOffset, YOffset: Double);
    class function Empty: TPdfPoint; static;
  end;
Gibst dafür eine Lösung?

Obiger Record ist Teil des Opensource-Projektes zu PDFium von Andreas Hausladen.

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
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#2

AW: FloatToStr & Prozeduraufruf mit 2 Parametern

  Alt 3. Dez 2017, 15:50
Ich habe folgendes Konstrukt:
Delphi-Quellcode:
  TPdfPoint = record
    X, Y: Double;
    procedure Offset(XOffset, YOffset: Double);
    class function Empty: TPdfPoint; static;
  end;
Gibst dafür eine Lösung?
Offset liefert als procedure ohne Var-Parameter noch nicht mal ein double! Meinst Du vieleicht FCtrl.Document.PageSizes[i].X und FCtrl.Document.PageSizes[i].Y?
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#3

AW: FloatToStr & Prozeduraufruf mit 2 Parametern

  Alt 3. Dez 2017, 16:02
Delphi-Quellcode:
 for i := 0 to FCtrl.Document.PageList.Count -1 do
    begin
      Memo1.Lines.Add(Format('X-Offset / Y-Offset := %n / %n',
      FCtrl.Document.PageSizes[i].X, FCtrl.Document.PageSizes[i].Y]));
    end;
  Mit Zitat antworten Zitat
Delbor

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

AW: FloatToStr & Prozeduraufruf mit 2 Parametern

  Alt 3. Dez 2017, 19:22
Hi zusamen

Ich habe folgendes Konstrukt:
Delphi-Quellcode:
  TPdfPoint = record
    X, Y: Double;
    procedure Offset(XOffset, YOffset: Double);
    class function Empty: TPdfPoint; static;
  end;
Gibst dafür eine Lösung?
Offset liefert als procedure ohne Var-Parameter noch nicht mal ein double! Meinst Du vieleicht FCtrl.Document.PageSizes[i].X und FCtrl.Document.PageSizes[i].Y?
Natürlich hast du recht - das habe ich schlicht und einfach vergessen.

Delphi-Quellcode:
 for i := 0 to FCtrl.Document.PageList.Count -1 do
    begin
      Memo1.Lines.Add(Format('X-Offset / Y-Offset := %n / %n',
      FCtrl.Document.PageSizes[i].X, FCtrl.Document.PageSizes[i].Y]));
    end;
Vielen Dank, Delphi.Narium, das beantwortet mir eigentlich die Kernfrage, wie ich zwei Fliegen mit einer Klappe schlage - ähhh zwei Werte gleichzeitig in eine Stringvariable kriege.

Um aber nochmal auf die Antwort von gammatester zurückzukommen:
Zitat:
Meinst Du vieleicht FCtrl.Document.PageSizes[i].X und [DELPHI]FCtrl.Document.PageSizes[i].Y?
Nein, eigentlich nicht, da ich das schon habe. Aber das ist das, was die procedure mit den Offsetwerten macht:
Delphi-Quellcode:
procedure TPdfPoint.Offset(XOffset, YOffset: Double);
begin
  X := X + XOffset;
  Y := Y + YOffset;
end;
Ich werde mir also einen andern Weg suchen müssen, um an die beiden Werte heranzukommen. Schliesslich kann (oder sollte) obige procedure nicht aufgerufen werden, bevor die beiden offsetwerte vernünftig initialisiert sind.
In der Beispielanwendung befindet sich der Aufruf des FileOpenDialogs im FormCreate, und meine hier geposteten Memo1-Anweisungen sind innerhalb des Fileopenblockes angeordnet. Und da sind die beiden Offset-Werte noch nicht initialisiert.

Hintergrund ist: Ich versuche zur Zeit, 2 PDF-Programme zu analysieren: Dieses (SynPdf.zip) und eben das von Andreas Hausladen.
Wobei ersteres schon fast genügen würde - es zeigt ein Dokumente in einem Frame an, wobei zwischen den einzelnen Seiten gescrollt werden kann. Einziges Manko: Ich verwende einen zweiten Frame, der das Dokument verkleinert darstellt, dafür aber mehrere Seiten gleichzeitig. Der sollte sozusagen als Sidebar/Navigationsbar für den grösseren Frame dienen.
Bis jetzt bin ich allerdings daran gescheitert, die beiden Frames, bzw ihre Inhalte, zu synchroniesieren

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
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:20 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