Bad dimension error bij run: waar zit de fout?

run Na een hoop veranderingen vraag ik een “RUN” en het programma eindigt met de foutmelding “bad dimension”.
Error Bad dim
Spijtig genoeg geeft Gambas deze keer niet aan waar de fout zich voordoet. Normaal kom je in de source code op de plaats van de fout te staan na een foutmelding die de fout beschrijft Normale foutmelding.
Als ik terug op run druk (om het programma voort te zetten), crasht het.error crash

Ik probeer de laatste veranderingen ongedaan te maken, maar het zijn er helaas nogal veel en ik vind daar de fout niet mee.

breakpoints Je kan dan “breakpoints” zetten in je code om het programma tot daar te laten lopen. Ik probeer met breakpoints in PUBLIC SUB Form_Open() van de main form (Forms, FMain) omdat de fout zich voordoet bij het uitvoeren van het programma alvorens ik ergens klik of iets “doe”. In dit geval haalt het niets uit; eender waar ik de breakpoints zet, ik blijf dezelfde foutmelding krijgen.

Je kan dus geen breakpoints zetten in de initialisering van variabelen bovenaan in de Form, voor de eigenlijke instructies beginnen. Je kan wel gemakkelijk een ' zetten vooraan de lijn, om de lijn om te vormen in “commentaar”, waardoor ze dus niet meer wordt gebruikt door het programma. De foutmelding kwam niet meer voor nadat ik een array uitge-comment had: PRIVATE aBookType AS NEW String[0, 0]. Inderdaad dimensie dus; door de foutmelding beter te lezen had ik het kunnen weten. variabelen

Current objects
Een andere mogelijkheid is kijken naar de variabelen na het afbreken van het programma. Onderaan in het tabblad “Current Objects” heb je een lijst met variabelen. Daar stond de foute variabele niet bij, .
Wat dus niet gaat is dimensie nul: PRIVATE aBookType AS NEW String[0, 0]
wat wel gaat: PRIVATE aBookType AS NEW String[1, 1]

kopieer-plak fout (copy-paste crash)

2 x Gambas open (twee keer de hele applicatie gestart).

In de eerste Gambas heb ik een bestaand project open, waaruit ik enkele dingen wil kopieren naar de andere FMain.form.

Gambas, select listbox, copy, schakel over naar andere Gambas, rechtsklik plak: ok

Schakel terug naar eerste Gambas.

Select lcdNumber, copy, switch to other Gambas, rightclick paste:

Gambas2
This application has raised an unexpected error and must abort

Component missing.
FForm.CreateControl.1060

Veroorzaakt doordat het nieuwe project als graphic maar niet als QT project was gestart – het is een typische QT-component.

Toevoegen: Project, properties, “gb.qt” – incompatible met gb.qui – afgezet
en “gb.qt.ext” : daarin zitten de ronde draaiknop en de LCD cijfers.

2 x Gambas open.

In first Gambas I have an existing app to copy from FMain.form.

Gambas, select listbox, copy, switch to other Gambas, rightclick paste: ok

switch back to first Gambas, select lcdNumber, copy, switch to other Gambas, rightclick paste:

Gambas2
This application has raised an unexpected error and must abort

Component missing.
FForm.CreateControl.1060

Caused by missing components in the project. The second, new Gambas environment was started with a new project, with different selection of components: Type graphical application instead of QT graphical application.
The LCD controls are typical for QT.

Solved the problem by adding the components:

Project, properties, gb.qtincompatible with gb.qui – switched off

and gb.qt.ext : this contains these LCD numbers.

Om een beetje universeler te werken kan je die componenten beter vermijden blijkbaar.

Gambas 2.2 op openSuse 10.3

gambas in menu Installatie van Gambas huidige versie 2.2.
(geeft met 1.9 apps: “version too old, recompile the project”)
Systeem:

  • openSuse installatie 10.3 (KDE 3.5.7) voorzien van updates tot 1/3/08.
  • Standaard installatie KDE met aantal devel packages (zie detail in volledige artikel)
  • oss en non-oss online repositories
  • gambas van: ftp://ftp.gwdg.de/pub/linux/misc/suser-gbv/rpms/10.3

Geïnstalleerd uit distro:

  • autoconf, automake
  • gcc, gcc++
  • make
  • qt3-devel
  • kdevelop3, kdelibs*
  • kdewebdev
  • poppler, poppler-devel, poppler-qt4
  • perl, pcre, pcre-devel
  • openldap2, -client, -devel
  • curl, libcurl-devel
  • mysql client (en server indien geen andere mysql-server beschikbaar), libmysqlclient-devel
  • unixodbc
  • libxml2, -devel, -++, libxslt, -devel
  • zlib, -devel, glibc
  • SDL -devel, -sound, -mixer, -image –devel
  • Mesa, -devel
  • libpng – devel
  • libjpeg – devel
  • daaruitvolgend automatisch aalib-devl, cyrus-sasl-devel, glibmm2, libsigc++2, libsmpeg0, physfs, …

Volgens http://gambas.sourceforge.net/ zijn er openSuse packages: “NO but yes, thanks to Guillermo”

sudo zypper ar ftp://ftp.gwdg.de/pub/linux/misc/suser-gbv/rpms/10.3 gambasSuse

* Adding repository ‘gambasSuse’
Repository ‘gambasSuse’ successfully added:
Enabled: Yes
Autorefresh: Yes
URL: ftp://ftp.gwdg.de/pub/linux/misc/suser-gbv/rpms/10.3

zypper -v install gambas2

Dan ging een en ander mis.
* Een tweede keer dit aangevuld:

/var/cache/zypp/raw/gambasSuse: Required file is missing: ./setup/descr/packages

Die is zeker wel aanwezig … (op de server. Maar niet in mijn zypper cache. Er gaat blijkbaar iets mis en er wordt alleen een deel van de files afgehaald naar de cache. Ik haal ze manueel af met
wget -r ftp://ftp.gwdg.de/pub/linux/misc/suser-gbv/rpms/10.3
En maak een selectie die ik naar de
/var/cache/zypp/raw/gambasSuse
directory kopieer. (als root)
Dan terug installatie commando, en

The following NEW package is going to be installed:
gambas2-2.2.1-2.gbv.suse103.i586 (gambasSuse2)

Overall download size: 8.5 K. After the operation, 0.0 B will be freed.
Continue? [yes/no]: yes

* Installing: gambas2-2.2.1-2.gbv.suse103 [100%]
CommitResult 1 (errors 0, remaining 0, srcremaining 0)

maar helaas geen gambas2 te vinden, en zypper -if gambas2 geeft:
Information for package gambas2:

Repository: gambasSuse2
Name: gambas2
Version: 2.2.1-2.gbv.suse103
Arch: i586
Installed: Yes
Status: up-to-date
Installed Size: 0 B
Summary:
Description:

Installed Size lijkt me wat weinig … dus Yast2 opgestart en daar “gambas” gezocht; er is een hele reeks gambas2 aanwezig, en alleen “gambas2” zelf staat aktief. Ik kies alle andere gambas2 paketten ook en bevestig. Volgende bijkomende paketten duiken op:
libffi42, libsvg, lirc, omniORB, postgresql, postgresql-libs, tv-common, v4l-tools.
Daarna is Gambas2 inderdaad aanwezig in het menu (met icoon):
KMenu/Development/Integrated Environment/Gambas2
Start mooi op, er zitten veel voorbeeldprojecten bij; ik probeer het bijgeleverde voorbeeld van de muziekspeler. Het start op “readonly” en werkt perfect!

* Even nog de eerste keer: Bij het ontbreken van libffi en libffi-devel stel ik vast dat de openSUSE DVD niet alles van de OSS repository bevat. Dus moet je die ook toevoegen aan de installatie-bronnen: protocol, server, directory:
http:// download.opensuse.org/ distribution/10.3/repo/oss/

gambas2-gb-qt-kde-html geeft probleem van missende:
libXext.so.6
liblCE.so.6
libSM.so.6
libX11.so.6
libqt-mt.so.3
libDCOP.so.4

Ik schakel voorlopig gambas2-gb-qt-kde-html uit *, en kies wel alle andere delen van gambas (uit de online repo), behalve gambas2-gb-vb (visual basic compatibility).
Daarbij worden nog volgende dependencies automatisch toegevoegd:
libsvg, lirc, mysql, omniORB, tv-common, v4l-tools
Yast: installatie ok.
Deze keer komt Gambas ook in het KDE-menu, onder Development, Integrated Environment, met een lelijk, onscherp icoon.
Je vindt ander iconen in /usr/share/gambas2/icons/, het logo piepklein in /usr/share/gambas2/help/tree/img/, en de grote achtergrond-garnaal in /usr/share/gambas2/help/, en Gambas2 start van daaruit op als Gambas 2.2

(*) dit blijkt een vergissing te zijn. Veel applicaties** werken niet in Gambas2, met de foutmelding: cannot load component gb.qt.kde: cannot find library file
(andere werken wel, als het drag-n-drop voorbeeld, of het mysql database voorbeeld)

Yast, gambas2, gambas2-gb-qt-kde-html bijgeinstalleerd zonder dependencies-problemen.

Gambas werkt nu goed voor de voorbeelden met
** kate (Automation, Kate browser)

gambasIDEopensuse