LL14 - RTF-Feld auf Label - XBase stürzt ab [ERLEDIGT]
Moderator: Moderatoren
- ingo
- UDF-Programmierer
- Beiträge: 62
- Registriert: Fr, 19. Okt 2007 10:20
- Wohnort: Lüneburg
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
LL14 - RTF-Feld auf Label - XBase stürzt ab [ERLEDIGT]
Moin!
Ich habe mal wieder einen Fehler produziert, den ich nicht verstehe - vielleicht hat jemand einen Tipp:
Wenn ich in einem Label-Projekt ein RTF-Feld einbaue, stürzt meine Anwendung ab.
Ohne RTF-Feld werden die Labels gedruckt.
Diese Infos habe ich gesammelt, finde aber keine Antwort: Dazu noch ein paar Erläuterungen:
WERBUNG_AUFKLEBERDRUCK_FUNKTIONEN:DRUCK_SCHLEIFE(291)
ist das Statement:
nRet := LlPrint( ::hJob)
LLPRINT(653):
RETURN DllExecuteCall(tplLlPrint, hLlJob) // ...aus der mit LL14 gelieferten cmtbtll14.prg (geringfügig modifiziert)
...Modifizierungen:
- Lizenzcode
- LlSetOption( xVar, LL_OPTION_INCREMENTAL_PREVIEW, .F. ) -> immer nach Jobopen
Die ERRORSYS.PRG ist Alaska-Standard.
...also falls jemand dazu etwas einfällt - ich bin fürchterlich gespannt!
Ich habe mal wieder einen Fehler produziert, den ich nicht verstehe - vielleicht hat jemand einen Tipp:
Wenn ich in einem Label-Projekt ein RTF-Feld einbaue, stürzt meine Anwendung ab.
Ohne RTF-Feld werden die Labels gedruckt.
Diese Infos habe ich gesammelt, finde aber keine Antwort: Dazu noch ein paar Erläuterungen:
WERBUNG_AUFKLEBERDRUCK_FUNKTIONEN:DRUCK_SCHLEIFE(291)
ist das Statement:
nRet := LlPrint( ::hJob)
LLPRINT(653):
RETURN DllExecuteCall(tplLlPrint, hLlJob) // ...aus der mit LL14 gelieferten cmtbtll14.prg (geringfügig modifiziert)
...Modifizierungen:
- Lizenzcode
- LlSetOption( xVar, LL_OPTION_INCREMENTAL_PREVIEW, .F. ) -> immer nach Jobopen
Die ERRORSYS.PRG ist Alaska-Standard.
...also falls jemand dazu etwas einfällt - ich bin fürchterlich gespannt!
Zuletzt geändert von ingo am Di, 04. Aug 2009 10:18, insgesamt 1-mal geändert.
Schönen Gruß, Ingo
- Klaus Schuster
- Foren-Administrator
- Beiträge: 369
- Registriert: Do, 24. Jan 2008 10:01
- Wohnort: 90762 Fürth
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 9 Mal
Re: LL14 - RTF-Feld auf Label - XBase stürzt ab
Hi Ingo,
1. Ich habe mir mal den Debug-Text angesehen, und kann kein LlDefineVariableExt(..) finden, in der Du L&L kundtust, dass der Inhalt ein RTF-Text ist (LL_RTF).
Gefunden habe ich nur LL_TEXT und ein LL_NUMERIC in LlDefineVariableExt(1,'Empf_Umsatz_Vorjahr','0.00',0x08000000,0x00000000).
In der Programmierer-Referenz von L&L findest Du Hinweise zum besonderen Umgang mit RTF-Texten (z.B. Seite 24 oben). Ich selbst habe noch nicht mit RTF-Texten gearbeitet.
2. Möglicherweise enthält der RTF-Text auch Sonderzeichen die L&L durcheinanderbringen
3. Geht keiner der RTF-Texte? Oder einzelne doch?
3. Stutzig mach mich auch die Fehlermeldung in der letzten Zeile:
CMCT14 : 13:03:38.875 0000129c clsDialog()::ct(): wrong thread of parent window (0X00270F04)!
Kann es sein, dass ::hJob zwischenzeitlich geändert wurde? Ich weiß, dass es ohne RTF läuft. Da müsstest Du Dir vielleicht mal der Wert von ::hJob kurz vor dem Absturz ansehen.
Um weiteres zu vermuten, wäre es hilfreich, wenn Du den Code von DRUCK_SCHLEIFE() anhängen würdest.
Gruß
Klaus
1. Ich habe mir mal den Debug-Text angesehen, und kann kein LlDefineVariableExt(..) finden, in der Du L&L kundtust, dass der Inhalt ein RTF-Text ist (LL_RTF).
Gefunden habe ich nur LL_TEXT und ein LL_NUMERIC in LlDefineVariableExt(1,'Empf_Umsatz_Vorjahr','0.00',0x08000000,0x00000000).
In der Programmierer-Referenz von L&L findest Du Hinweise zum besonderen Umgang mit RTF-Texten (z.B. Seite 24 oben). Ich selbst habe noch nicht mit RTF-Texten gearbeitet.
2. Möglicherweise enthält der RTF-Text auch Sonderzeichen die L&L durcheinanderbringen
3. Geht keiner der RTF-Texte? Oder einzelne doch?
3. Stutzig mach mich auch die Fehlermeldung in der letzten Zeile:
CMCT14 : 13:03:38.875 0000129c clsDialog()::ct(): wrong thread of parent window (0X00270F04)!
Kann es sein, dass ::hJob zwischenzeitlich geändert wurde? Ich weiß, dass es ohne RTF läuft. Da müsstest Du Dir vielleicht mal der Wert von ::hJob kurz vor dem Absturz ansehen.
Um weiteres zu vermuten, wäre es hilfreich, wenn Du den Code von DRUCK_SCHLEIFE() anhängen würdest.
Gruß
Klaus
Gruß Klaus
- ingo
- UDF-Programmierer
- Beiträge: 62
- Registriert: Fr, 19. Okt 2007 10:20
- Wohnort: Lüneburg
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: LL14 - RTF-Feld auf Label - XBase stürzt ab
Moin Klaus,
und schon mal herzlichen Dank für dein Interesse und die Mühe!
Als ich deine Antwort gelesen habe, ist mir aufgefallen, dass ich mich falsch ausgedrückt habe:
Ich übergebe kein RTF-Feld, sondern ich habe über den Designer ein Feld vom Typ "formatierter Text" eingefügt.
In der lbl-Datei (als txt hochgeladen) in Zeile 556 ist der Eintrag zu sehen.
Der Testdruck im Designer funktioniert auch prima.
Den Eintrag "wrong Thread of Parent Window" finde ich in JEDER combit-Logdatei meiner Druckprogramme, ich hatte schon oft danach gesucht, was die Ursache sein könnte aber nix gefunden.
Da die Meldung sonst jedenfalls keinen Fehler nach sich zieht, habe ich mich entschlossen das zu ignorieren.
So wie ich List&Label verstehe, übergibt man beim LlPrintWithBoxStart() das Handle des aufrufenden Windows:
nRet := LlPrintWithBoxStart( ::hJob, ;
LL_PROJECT_LABEL, ;
sName, ;
IKS_LL_Option, ;
LL_BOXTYPE_BRIDGEMETER, ;
oCallWindow:GetHWND(), ;
::BoxTitle )
...und das scheint mir korrekt zu sein.
(Wenn du dir die "Druckschleife" anschaust, bitte ich um Nachsicht. Der Code ist sicher nicht hübsch...)
Übrigens ist der Fehler nicht an ein Label gebunden - egal auf was für einem Formular ich ein Feld "formatierter Text" einbaue, immer gibt's den Absturz.
Schönen Gruß,
Ingo
und schon mal herzlichen Dank für dein Interesse und die Mühe!
Als ich deine Antwort gelesen habe, ist mir aufgefallen, dass ich mich falsch ausgedrückt habe:
Ich übergebe kein RTF-Feld, sondern ich habe über den Designer ein Feld vom Typ "formatierter Text" eingefügt.
In der lbl-Datei (als txt hochgeladen) in Zeile 556 ist der Eintrag zu sehen.
Der Testdruck im Designer funktioniert auch prima.
Den Eintrag "wrong Thread of Parent Window" finde ich in JEDER combit-Logdatei meiner Druckprogramme, ich hatte schon oft danach gesucht, was die Ursache sein könnte aber nix gefunden.
Da die Meldung sonst jedenfalls keinen Fehler nach sich zieht, habe ich mich entschlossen das zu ignorieren.
So wie ich List&Label verstehe, übergibt man beim LlPrintWithBoxStart() das Handle des aufrufenden Windows:
nRet := LlPrintWithBoxStart( ::hJob, ;
LL_PROJECT_LABEL, ;
sName, ;
IKS_LL_Option, ;
LL_BOXTYPE_BRIDGEMETER, ;
oCallWindow:GetHWND(), ;
::BoxTitle )
...und das scheint mir korrekt zu sein.
(Wenn du dir die "Druckschleife" anschaust, bitte ich um Nachsicht. Der Code ist sicher nicht hübsch...)
Übrigens ist der Fehler nicht an ein Label gebunden - egal auf was für einem Formular ich ein Feld "formatierter Text" einbaue, immer gibt's den Absturz.
Schönen Gruß,
Ingo
- Dateianhänge
-
- VWK_Aufkleber_BriefRTF.txt
- Label-Definition
- (10.47 KiB) 233-mal heruntergeladen
-
- Druckschleife.prg
- Methode Druckschleife
- (7.21 KiB) 276-mal heruntergeladen
Schönen Gruß, Ingo
- Klaus Schuster
- Foren-Administrator
- Beiträge: 369
- Registriert: Do, 24. Jan 2008 10:01
- Wohnort: 90762 Fürth
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 9 Mal
Re: LL14 - RTF-Feld auf Label - XBase stürzt ab
Hi Ingo,
gerne geschehen!
Lade doch bitte den Quellcode der Methode ::DefineVariablen() hoch. Ohne diesen bleiben Fragen offen.
Bis dann
Klaus
gerne geschehen!
Lade doch bitte den Quellcode der Methode ::DefineVariablen() hoch. Ohne diesen bleiben Fragen offen.
Bis dann
Klaus
Gruß Klaus
- ingo
- UDF-Programmierer
- Beiträge: 62
- Registriert: Fr, 19. Okt 2007 10:20
- Wohnort: Lüneburg
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: LL14 - RTF-Feld auf Label - XBase stürzt ab
Moin Klaus,
ich habe die .prg-Datei hochgeladen.
(Bin jetzt fast eine Woche weg - nicht wundern, wenn ich mich nicht melde...)
Danke, Ingo
ich habe die .prg-Datei hochgeladen.
(Bin jetzt fast eine Woche weg - nicht wundern, wenn ich mich nicht melde...)
Danke, Ingo
- Dateianhänge
-
- Werbung_Aufkleberdruck.PRG
- Quellcode
- (20.57 KiB) 299-mal heruntergeladen
Schönen Gruß, Ingo
- ingo
- UDF-Programmierer
- Beiträge: 62
- Registriert: Fr, 19. Okt 2007 10:20
- Wohnort: Lüneburg
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: LL14 - RTF-Feld auf Label - XBase stürzt ab
...dann fehlte ja noch die Klasse Druckstandard.
Ingo
Ingo
- Dateianhänge
-
- druckstandard.prg
- Class Druckstandard
- (18 KiB) 278-mal heruntergeladen
Schönen Gruß, Ingo
- Klaus Schuster
- Foren-Administrator
- Beiträge: 369
- Registriert: Do, 24. Jan 2008 10:01
- Wohnort: 90762 Fürth
- Hat sich bedankt: 9 Mal
- Danksagung erhalten: 9 Mal
Re: LL14 - RTF-Feld auf Label - XBase stürzt ab
Hi Ingo,
ich habe mir den Code angesehen und bin auf folgende Stelle gestossen die möglicherweise einen Seiteneffekt auslösen könnte:
Bist Du Dir sicher, dass die Bewegung stets in der gewünschten Tabelle stattfindet?
Aufgefallen sind mir, dass Du
Leider erklärt dies alles nicht, warum es unter bestimmten Bedingungen geht, und unter anderen nicht. Da bleiben mir nur zwei Ideen:
1. Die Daten sind korrupt
2. Irgendetwas auf der Maschine führt dazu, dass die geladenen DLLs nicht funktionieren.
Sorry, dass ich Dir nicht mehr helfen konnte
Klaus
ich habe mir den Code angesehen und bin auf folgende Stelle gestossen die möglicherweise einen Seiteneffekt auslösen könnte:
Code: Alles auswählen
IF SKUND->KFZ <> SLAND->KFZ .AND. .NOT. Lesen( "SLAND", 1, SKUND->KFZ )
GO BOTTOM
SKIP
ENDIF
Aufgefallen sind mir, dass Du
- die Klassen nicht initialisierst
nicht überprüfst, ob ::hJob := LlJobOpen(-1) erfolgreich ausgeführt wurde
LlJobOpen(-1) sowohl in der Klasse DruckStandard Methode :Layout(), als auch in der Klasse Werbung_Aufkleberdruck_Funktionen die von DruckStandard abgeleitet wird verwendest
Leider erklärt dies alles nicht, warum es unter bestimmten Bedingungen geht, und unter anderen nicht. Da bleiben mir nur zwei Ideen:
1. Die Daten sind korrupt
2. Irgendetwas auf der Maschine führt dazu, dass die geladenen DLLs nicht funktionieren.
Sorry, dass ich Dir nicht mehr helfen konnte
Klaus
Gruß Klaus
- ingo
- UDF-Programmierer
- Beiträge: 62
- Registriert: Fr, 19. Okt 2007 10:20
- Wohnort: Lüneburg
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: LL14 - RTF-Feld auf Label - XBase stürzt ab
Hi Klaus,
Bei dem "SKIP" ist das wohl nicht schön programmiert, aber das klappt: der SKIP wird für SLAND ausgeführt, da in Lesen() ein SELECT ausgeführt wird, SLAND ist also in jedem Fall aktiv, wenn die Bedingung erfüllt ist.
Die Erfolgsprüfung von LLJobOpen werde ich mir zu Herzen nehmen (wenn mich das weiterbringt, folgt hier ein Kommentar.)
Das es LlJobopen sowohl in der Przedur als auch der Methode gibt ist m.E. OK (wenn wohl auch nicht elegant.)
Grundsätzlich gibt es in meinem Code eine ganze Menge, was eigentlich überarbeitungswürdig ist. Das liegt daran, dass ich, als ich anfing mit XBase zu programmieren, die Möglichkeiten nicht komplett evrstanden habe - und sicher immer noch eine Menge besser kapieren und umsetzen könnte. Und jetzt ist es so, dass ich mich immer, wenn ich Leerlauf habe mit dem Überarbeiten beschäftige...
Jedenfalls vielen Dank für deine Mühe!
(Wenn wir uns irgendwann mal begegnen hast du mindestens ein Bier gut...)
Ingo
Bei dem "SKIP" ist das wohl nicht schön programmiert, aber das klappt: der SKIP wird für SLAND ausgeführt, da in Lesen() ein SELECT ausgeführt wird, SLAND ist also in jedem Fall aktiv, wenn die Bedingung erfüllt ist.
Die Erfolgsprüfung von LLJobOpen werde ich mir zu Herzen nehmen (wenn mich das weiterbringt, folgt hier ein Kommentar.)
Das es LlJobopen sowohl in der Przedur als auch der Methode gibt ist m.E. OK (wenn wohl auch nicht elegant.)
Grundsätzlich gibt es in meinem Code eine ganze Menge, was eigentlich überarbeitungswürdig ist. Das liegt daran, dass ich, als ich anfing mit XBase zu programmieren, die Möglichkeiten nicht komplett evrstanden habe - und sicher immer noch eine Menge besser kapieren und umsetzen könnte. Und jetzt ist es so, dass ich mich immer, wenn ich Leerlauf habe mit dem Überarbeiten beschäftige...
Jedenfalls vielen Dank für deine Mühe!
(Wenn wir uns irgendwann mal begegnen hast du mindestens ein Bier gut...)
Ingo
Schönen Gruß, Ingo
- ingo
- UDF-Programmierer
- Beiträge: 62
- Registriert: Fr, 19. Okt 2007 10:20
- Wohnort: Lüneburg
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: LL14 - RTF-Feld auf Label - XBase stürzt ab
...rausbekommen habe ich leider nichts. Eine Erfolgsprüfung des LlJobOpen() habe ich auch nicht gefunden - wie geht das?
Ich werde die Fehlersuche auf eine Zeit verschieben, wenn mal wieder richtig wenig zu tun ist und bis dahin damit leben, dass in "meinen" List&Label-Projekten keine RTF-Felder (bzw. "formatierter Text" laut Designer) verwendet werden können.
Danke für's Code-Lesen und nachdenken!
ingo
Ich werde die Fehlersuche auf eine Zeit verschieben, wenn mal wieder richtig wenig zu tun ist und bis dahin damit leben, dass in "meinen" List&Label-Projekten keine RTF-Felder (bzw. "formatierter Text" laut Designer) verwendet werden können.
Danke für's Code-Lesen und nachdenken!
ingo
Schönen Gruß, Ingo