AGB  ·  Datenschutz  ·  Impressum  







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

TXPrint

Ein Thema von Herman Thiel · begonnen am 20. Dez 2014 · letzter Beitrag vom 21. Dez 2014
Antwort Antwort
Herman Thiel

Registriert seit: 26. Okt 2014
7 Beiträge
 
#1

TXPrint

  Alt 20. Dez 2014, 16:04
Ich verwende seit Jahren die Komponente TXPrint aus der Zeitschrift Toolbox. Bis jetzt hat sie beste Dienste geleistet. Jetzt will ich die Komponente mit XE6 verwenden. Die Komponente wird in der Tool-Palette angezeigt. Sobald ich aber die Komponente auf meine Form ziehe erscheint die Meldung: Listenindex außerhalb des gültigen Bereichs (-1).

Kann mir bitte wer weiter helfen??
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: TXPrint

  Alt 20. Dez 2014, 16:29
Hast du einen Standard-Drucker auf deinem Entwicklungsrechner angelegt?
Hast du einen Link auf den Sourcecode von TXPrint damit man mal einen Blick druaf werfen kann?
fork me on Github
  Mit Zitat antworten Zitat
Herman Thiel

Registriert seit: 26. Okt 2014
7 Beiträge
 
#3

AW: TXPrint

  Alt 20. Dez 2014, 16:36
Es sind mehrere Drucker installiert und ein HP-Drucker ist als Standarddrucker definiert

Hier ein Link zum Quellcode der Komponente
https://www.dropbox.com/s/zzwmef2vpd...INTER.PAS?dl=0
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

AW: TXPrint

  Alt 20. Dez 2014, 21:24
Es gibt verschiedene Wege den Bug aufzuspüren.
Du erstellst ein neues Projekt und kopierst die Unit XPRINTER.PAS in das Projektverzeichnis und fügst es zum Projekt hinzu.
Einen Button auf das Formular setzen und dann:
Delphi-Quellcode:
procedure TForm1.Button1OnClick(Sender:TObject);
var test : TXPrint;
begin
   test := TXPrint.Create(self); // Breakpoint auf dieser Zeile setzen

   ShowMessage(test.Printers.Text);
   test.Free;
end;
Mit dem Debugger kannst du dann in TXPrint.Create() hineinsteppen und schauen an welcher Stelle die Exception ausgelöst wird.

Sollte so der Bug nicht reproduziert werden können, dann kann man die Komponente mit OutputDebugString() präparieren:
Delphi-Quellcode:
constructor TXPrint.Create;
begin
  inherited Create(AOwner);
  OutputDebugString('Create #0');
  DummyCreated:=false;
  UnrotatedFont:=0;
  fPrintersInstalled:=PrintersInstalled;
  OutputDebugString('Create #1');
  if fPrintersInstalled>0 then
  begin
    Canvas:=Printer.Canvas;
    Printer.PrinterIndex:=-1;
    OutputDebugString('Create #2');
  end
  else
  begin
    Canvas:=TCanvas.Create;
    DummyCreated:=true;
    OutputDebugString('Create #3');
  end;
  PrintOpened:=false;
  pLogPixelsX:=300; { angenommene Werte als Default }
  pLogPixelsY:=300;
  k:=1;
  OutputDebugString('Create #4');
end;
Bei jeder Änderung am Sourcecode der Komponente muss man das Package neu kompilieren und installieren.
Die Debugmeldung sieht man im Ereignisprotokoll (Strg+Alt+V) oder man verwendet das Tool DebugView.
So kann man Schritt für Schritt das Problem immer mehr einkreisen.
fork me on Github
  Mit Zitat antworten Zitat
Herman Thiel

Registriert seit: 26. Okt 2014
7 Beiträge
 
#5

AW: TXPrint

  Alt 21. Dez 2014, 04:29
Danke für den Tipp
Ich habe das kleine Programm geschrieben und im Debugmodus laufen lassen. Nach einigen Minuten auf der F7 Taste kam der Fehler
EStringListError in WindowsAPIs.inc

Die Komponente hat die Prozeduren Create, PrintersInstalled und Destroy fehlerfrei durchgeführt. Unmittelbar nach Beendigung der Destroy-proc kommt der Fehler ohne eine weitere Procedure aufzurufen.
Vielleicht kannst du mir noch weiterhelfen
Danke
  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 19:18 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