Seite 1 von 3

Form zur Laufzeit

Verfasst: Sa 4. Mär 2006, 14:58
von roemi
Es sind die Kleinigkeiten die mich zweifeln lassen .... :wink:

Ok, ich habe nun erfolgreich geschaft ALLE Teile zur Laufzeit zu erzeugen.
Jetzt möchte ich die Form ebenfalls so erzeugen.

Beispiele gibt es ja genug.

Code: Alles auswählen

STATIC PUBLIC SUB Main()

DIM hForm AS Form

hForm = NEW Form

  WITH hForm
    .Width = 820
    .Height = 500
  END WITH

hForm.show

END
Dabei funktionier auch das vorgeben der Größe.
Aber ich bekomme keine Objekte plaziert.
Das führt immer zu Fehler. :?

Eine leere Form mit PUBLIC SUB Form_Open() funktioniert!

Das funktioniert dagegen wieder nicht. Die Größe ist unveränderlich 400x400.

Code: Alles auswählen

PUBLIC SUB Form_Open()

  WITH ME
    .Width = 820
    .Height = 500
  END WITH

END
Am liebsten würde ich die Form zur Laufzeit erzeugen und dort auch zur Laufzeit meine Frame usw. einbinden.

Warum das mit SUB Form_Open nicht klappt interessiert mich aber auch.

Verfasst: Sa 4. Mär 2006, 16:59
von roemi
Vergessen

_New() kapiere ich ebenso nicht. Kein Beispiel will gelingen.

Code: Alles auswählen

' Gambas class file
PUBLIC b AS NEW Button(ME) AS "b"

STATIC PUBLIC SUB Main()

DIM hForm AS Form

hForm = NEW Form

hForm.Show

END

PUBLIC SUB _new()

  WITH b
    .x = 5
    .y = 5
    .w = 50
    .h = 50
    .visible = TRUE 
  END WITH

END

Form zur Laufzeit

Verfasst: Sa 4. Mär 2006, 17:34
von chap
Hallü

versuch das doch mal!

nicht ohne Patch in GAMBAS2 1.9.26

Code: Alles auswählen

' Gambas module file
PUBLIC myForm AS NEW Form AS "myForm"
PUBLIC myFrame AS NEW Frame(myForm) AS "myFrame"
PRIVATE myButton AS NEW Button(myFrame) AS "myButton"

 
 
 PUBLIC SUB Main()
  
  myForm_Open
  
   END
  
  
PUBLIC SUB myForm_Open()
  
  WITH myForm
    .Height = 300
    .Width = 400
  END WITH

  WITH myFrame
      .x = 20
      .y = 20
      .Width = 300
      .Height = 200
      .Text = "Mein Framme"
  END WITH

  WITH myButton
    .x = 10
    .y = 20
    .Text = "Hallo"
  END WITH
  
      myForm.Show 

END


PUBLIC SUB myButton_Click()
  
    Message.Question("Na gehts oder gehts nicht?")
  
END

Verfasst: Sa 4. Mär 2006, 18:06
von roemi
QPaintDevice: Must construct a QApplication before a QPaintDevice

Das sacht er wenn ich es als Modul starte und steigt aus :?
====================================================
Als Klasse startet die Form jedoch ohne Inhalt. Und in der Standardgröße. :?

Die "PUBLIC SUB myForm_Open()" geht er garnicht an.

Form zur Laufzeit

Verfasst: Sa 4. Mär 2006, 18:13
von chap
Hallo

welche Gambas Version hast Du?

kann sein das auch in den anderen Version der Fehler ist!!

Gruß

Chap

Verfasst: Sa 4. Mär 2006, 18:14
von roemi
Gambas 1.9.24 ... Fehler, ich hasse Fehler, vorallem Fehler anderer :wink: :wink: :wink:

Form zur Laufzeit

Verfasst: Sa 4. Mär 2006, 18:18
von chap
so so :D

geh auf 1.9.26 hoch, dann sollte das gehen oder aber warte bis der Fehler
bereinigt ist!


Gruß

Chap

Verfasst: Sa 4. Mär 2006, 18:21
von roemi
Und was hat das mit

"nicht ohne Patch in GAMBAS2 1.9.26"

auf sich?

Form zur Laufzeit

Verfasst: Sa 4. Mär 2006, 18:27
von chap
ich dachte es wäre nur ein fehler in der 1.9.26 Version
aber wie es aus zieht doch nicht!

Da der Fehler in der gbx.c liegt sollte er schnell behoben sein, in der akt. D-Version.

Chap

Verfasst: Do 9. Mär 2006, 09:08
von Gorian
Um die Größe eines Formulars zu ändern musst du vorher die Eigenschaft Border auf 2 (änderbar) setzten. BSP:

with Form
.Border = 2
.height = 600
.width = 800
.border = 1
end with

Grüße

Verfasst: Do 9. Mär 2006, 11:12
von roemi
Oki, das teste ich nachher :wink:

Form zur Laufzeit

Verfasst: Do 9. Mär 2006, 12:32
von chap
Hallo

der Border hat nichts mit der Größe des Formulars zutun! :D

@roemi funtz es oder nicht?

Gruß

Murphy :D

Verfasst: Do 9. Mär 2006, 17:06
von roemi
Nein, es funzt nicht. :(

Form zur Laufzeit

Verfasst: Do 9. Mär 2006, 17:13
von chap
Hi

und was genau geht nicht? :shock:

Gruß

Chap

Verfasst: Do 9. Mär 2006, 17:19
von roemi

Code: Alles auswählen

with Form
  .Border = 2
  .height = 600
  .width = 800
end with 
DAS geht nicht, die Form verändert nicht die Größe