Customdrawn -> Theo

Customdrawn -> Theo

Beitragvon mschnell » 7. Jan 2013, 13:28 Customdrawn -> Theo

Hi Theo,
ich finde den Thread gerade nicht, in dem wir das diskutiert haben, also hier die Antwort:

Bei "CustomDrawn" (ein Form mit einem Label druaf bekomme ich einen

Runtime Error 201 in File TTinerp.pas at Line 482.

Da steht:

exc.opcode := exc.Code^[exc.IP];

exc.IP ist 1001

und die Größe des dynamischen Arrays exec.Code^ ist 1001, das Elemet 1001 existiert also nicht und der Runtime-Error kommt zurecht.

Gruß,
-Michael
mschnell
 
Beiträge: 3394
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon theo » 7. Jan 2013, 16:04 Re: Customdrawn -> Theo

Im CustomDrawn Tab sehe ich gar kein Label.
Probier mit einem TStaticText oder TCDStaticText.
theo
 
Beiträge: 8255
Registriert: 11. Sep 2006, 18:01

Beitragvon mschnell » 7. Jan 2013, 17:27 Re: Customdrawn -> Theo

theo hat geschrieben:Im CustomDrawn Tab sehe ich gar kein Label.
Probier mit einem TStaticText oder TCDStaticText.


Aha, da scheint das Problem zu sein:

Ich habe kein CustomDrawn Tab und habe bisher auch nicht erwartet, dass es so etwas gibt, und bin deshalb davon ausgegangen, dass ich die "normalen" Controls verwenden soll und dann, wenn eines (noch) nicht implementiert ist, eine sinnvolle Fehlermeldung kommt. (Scheint mir doch eine vernünftige Annahme zu sein, beispielsweise verwenden "Windows" und "GTK" ja auch dieselben Tabs). Die Controls sollten dann zur Laufzeit nur eben etwas anders aussehen - wie es bei TForm ja bereits ist.

Wo hast Du denn das CustomDrawn Tab her ? (Das Package "customDrawn 0.0" steht bei Install/Uninstall Packages im "Install" Fenster, scheint also installiert zu sein.)

Gruß,
-Michael
mschnell
 
Beiträge: 3394
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon theo » 7. Jan 2013, 17:47 Re: Customdrawn -> Theo

mschnell hat geschrieben:Wo hast Du denn das CustomDrawn Tab her ? (Das Package "customDrawn 0.0" steht bei Install/Uninstall Packages im "Install" Fenster, scheint also installiert zu sein.)


Dann müsste das "Custom Drawn" Tab auch da sein mMn. IDE neu gebaut?
Afaik braucht man nicht unbedingt die Komponenten aus diesem Tab nehmen, es gehen auch die bei "Standard", aber man muss wissen, welche Komponenten unterstützt sind.
theo
 
Beiträge: 8255
Registriert: 11. Sep 2006, 18:01

Beitragvon mschnell » 8. Jan 2013, 10:35 Re: Customdrawn -> Theo

ich baue die IDE dauernd neu, um Updates aus dem svn einzubinden.

Vielleicht werden dadurch Packes wieder de-installiert ?!?!?!?

Ja das scheint so.

Nachdem ich "Custom-Drawn" bei install/uninstall Packages erst de-installiert und dann wieder installiert habe (ohne dem wird das der "Save and Recompile" Knopf nicht aktiviert), zeigt es da da grüne "+" nicht mehr und das "customDrawn" Tab erscheint.

Nun habe ich "CDStaticText" und "CDButton" aus dem CustomDrwan Tab probiert und es passiert genau dasselbe, wie ich es mit den "normalen" Komponenten beschrieben habe.

Gruß,
-Michael
mschnell
 
Beiträge: 3394
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon theo » 8. Jan 2013, 11:31 Re: Customdrawn -> Theo

Dann hast du dieses Mal wahrscheinlich vergessen, den LCLWidgetType auf "customdrawn" umzustellen in den Projekteinstellungen.
theo
 
Beiträge: 8255
Registriert: 11. Sep 2006, 18:01

Beitragvon mschnell » 8. Jan 2013, 12:22 Re: Customdrawn -> Theo

theo hat geschrieben:Dann hast du dieses Mal wahrscheinlich vergessen, den LCLWidgetType auf "customdrawn" umzustellen in den Projekteinstellungen.


Nee, ganz bestimmt nicht.

Wenn man den Widget Type default (bei mir = gtk2) mit "Custom Drawn" Komponenten verwendet, kommt eine "Excepton" und kein "RangeChek RunttimeError" und natürlich auch an einer ganz anderen Stelle im Code.

Hier passiert aber wieder genau das beschriebene: kein Unterschied, ob ich einen normalen "Label", einen normalen "StaticText", oder den "StaticText" aus dem CustomDrawn Tab nehme.

-Michael
mschnell
 
Beiträge: 3394
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon theo » 8. Jan 2013, 12:30 Re: Customdrawn -> Theo

Dann weiss ich auch nicht weiter. Bei mir geht's. Lazarus 1.1 r39780 FPC 2.7.1 x86_64-linux-gtk 2
theo
 
Beiträge: 8255
Registriert: 11. Sep 2006, 18:01

Beitragvon mschnell » 8. Jan 2013, 13:41 Re: Customdrawn -> Theo

Kannst Du vielleicht mal einen Test für mich machen ?

Wie gesagt bekomme ich einen Rangecheck-Fehler in

TTinerp.pas at Line 482.

Da steht:

exc.opcode := exc.Code^[exc.IP];

und exc.IP ist bei mir 1001. (Es ist ein INT = Integer)
und Length(exc.opcode^) ist 1000.

Kannst du vielleicht nachschauen, ob bei Dir da tatsächlich RangeCheck aktiviert ist ?
(z.B indem Du vor diese Zeile exc.IP = 999999 schreibst. Dann muss ja mit Sicherheit ein RangeCheck Error kommen).

Kannst Du schauen, ob bei Dir auch exc.IP = 1001 wird und dabei Length(exc.opcode^) = 1000 ist ?

Diese Zeile wird vorher schon sehr häufig durchlaufen. Einfach Breakpoint setzen nützt also nix. Du könntest also Zeilen wie.

Code: Alles auswählen
if  exc.IP = 1001 then begin
  exc.IP := 1000;
end;


oder

Code: Alles auswählen
if  exc.IP > Length(exc.opcode^) then begin
  exc.IP := Length(exc.opcode^);
end;


einbauen und einen entsprechenden Break setzen.

Danke Dir !
-Michael
mschnell
 
Beiträge: 3394
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon theo » 8. Jan 2013, 14:24 Re: Customdrawn -> Theo

Ja, Rangecheck ist an und ja, mit exc.IP = 999999 gibt's einen Fehler.
Aber da ist kaum die Ursache für dein Problem, sonst hätte ich es ja auch.
theo
 
Beiträge: 8255
Registriert: 11. Sep 2006, 18:01

Beitragvon mschnell » 8. Jan 2013, 15:03 Re: Customdrawn -> Theo

Sehr merkwürdig ....

Vielen Dank,
-Michael
mschnell
 
Beiträge: 3394
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon mschnell » 13. Jan 2013, 09:56 Re: Customdrawn -> Theo

Hi Theo

Ich es habe nun mal auf einem andern Linux Rechner (auf dem ein älteres 32 Bit Suse läuft) probiert. Ich habe Lazarus, fpc und die svn-Directories noch nicht einmal neu hochgezogenm, sonden einfach kopiert.

Da läufts !!! Sowohl TCDStaticText aus Cusom drawn als auch der TSaticText aus dem normalen Tab und sogar der TLabel funktionieren.

Was das wohl ist....

Gruß,
-Michael
mschnell
 
Beiträge: 3394
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

• Themenende •

Zurück zu Linux



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried