Form-Designer > ComboBoxGadget()

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
stab
Beiträge: 92
Registriert: 24.02.2006 16:09
Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Wohnort: Hardt
Kontaktdaten:

Form-Designer > ComboBoxGadget()

Beitrag von stab »

Ist es richtig, dass ich im Form-Designer beim ComboBoxGadget() im Gegensatz z.B. zum CheckBoxGadget() keinen Defaultwert setzen kann?
Danke
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."

Wer lügt hier wirklich und wer sagt die Wahrheit?

_________________________________________

286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: Intel Core i3-4170 CPU 3,70 GHz
8,00 GB Arbeitsspeicher
WIN 10 Pro 64 Bit Betriebssystem
Wohnort: Bremen

Re: Form-Designer > ComboBoxGadget()

Beitrag von Pelagio »

Hallo stab,

das ist korrekt und auch verständlich da das ComboBoxGadget eine völlig andere Aufgabe hat.
Beim CheckBoxGadget, wie auch beim OptionGadget kann man nur zwischen festen Bedingungen (1, 0) wählen die bei der Erstellung schon fest verankert sind.
Beim ComboBoxGadget sind bei der Erstellung noch keine Daten verankert, diese werden erst über den Source (AddGadgetItem) gefüllt und können daher nicht mit einem Defaultwert, der noch nicht bekannt ist, belegt werden. :allright:
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win10Pro(64); PB6.10 LTS]. :allright:
Benutzeravatar
stab
Beiträge: 92
Registriert: 24.02.2006 16:09
Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Wohnort: Hardt
Kontaktdaten:

Re: Form-Designer > ComboBoxGadget()

Beitrag von stab »

Hallo Pelagio, danke.

Habe ich mir schon gedacht.
So ganz richtig ist das aber doch nicht. Im Form-Designer kann ich dem ComboBoxGadget() schon Daten hinzufügen.

Aber egal ....

Das (z.B.) 'SetGadgetState(#Combo_0,2)' kann ich natürlich im Haupt-Code unterbringen.

Jetzt habe ich noch versucht, dem Formular, auf dem sich das ComboBoxGadget befindet, eine Ereignisprozedur mit u.a. dieser Funktion zuzuweisen.

Also beim Öffnen des Formulars =

Code: Alles auswählen

Procedure setzeAlleVorgaben()
SetGadgetState(#Combo_0,2)
SetGadgetState(#Combo_1,5)
;etc
EndProcedure
Da komme ich nicht weiter.
Im Form-Designer gebe ich für das Formular an: Ereignisprozedur erstellen"
Diese sieht dann so aus:

Code: Alles auswählen

Declare setzeAlleVorgaben(Event, Window)
Welchen Event muss ich denn in meiner Prozedur angeben, dass beim Öffnen des Formulars diese ausgeführt wird?
Oder wie liege ich daneben?

Code: Alles auswählen

Procedure setzeAlleVorgaben(Event,#Window)
SetGadgetState(#Combo_0,2)
SetGadgetState(#Combo_1,5)
;etc
EndProcedure
Grüße
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."

Wer lügt hier wirklich und wer sagt die Wahrheit?

_________________________________________

286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: Intel Core i3-4170 CPU 3,70 GHz
8,00 GB Arbeitsspeicher
WIN 10 Pro 64 Bit Betriebssystem
Wohnort: Bremen

Re: Form-Designer > ComboBoxGadget()

Beitrag von Pelagio »

Ich selber arbeite überhaupt nicht mit dem Form-Designer.
Mit der Hand selber schreiben und kopieren geht schneller, bei mir.
Aber was ich gesehen habe, ist deine Procedure die ein falsches Zeichen beinhaltet, die Konstante.
Korrekt lautet es:

Code: Alles auswählen

Procedure setzeAlleVorgaben(Event.i, Window.i)
SetGadgetState(#Combo_0,2)
SetGadgetState(#Combo_1,5)
;etc
EndProcedure
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win10Pro(64); PB6.10 LTS]. :allright:
Benutzeravatar
mk-soft
Beiträge: 3700
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Form-Designer > ComboBoxGadget()

Beitrag von mk-soft »

Der Form-Designer geht schon, aber das Event-Management vom Form-Designer finde ich eine Katastrophe...

Das Event-Management am besten selber schreiben oder (Achtung Werbung) mein EventDesigner nehmen. (Siehe Signatur)
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
stab
Beiträge: 92
Registriert: 24.02.2006 16:09
Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Wohnort: Hardt
Kontaktdaten:

Re: Form-Designer > ComboBoxGadget()

Beitrag von stab »

Hallo,
nur kurze Rückmeldung und Danke für die Anteilnahme.
Habe vor lauter Events den EventType nicht mehr gesehen oder umgekehrt.

@Palagio -> natürlich '....(Event.i, Window.i)'

@mk-soft
Deinen EventDesigner hatte ich schon vorher mal gestartet, aber nicht wirklich ausgeführt.
Die Erläuterungen waren für mich als Gelegenheitsprogrammierer etwas spärlich.
Beim ersten Start wollte ich mit "Project Load" eines meiner PB-Projekte öffnen. :D
Würde meinen Code jedenfalls wieder durcheinander bringen und ich hätte mit dem Zusammenspiel der weiteren erzeugten Dateien mehr zu kämpfen als es mir jetzt nützen würde.

Ja, das EventManagement im Form-Designer finde ich nicht konsequent umgesetzt.
Eigentlich schade, da "Software sells Hardware".
Für die Gestaltung der Formulare aber doch einfach zu handhaben.

Hatte mir auch schon mal PureVision gekauft. Die YouTube's sahen so schön und einfach aus.
Allerdings, wie ich dann festgestellt habe, gibt es dort noch weniger Events als im PB Form-Designer. :D

Letztendlich, was mich verwirrt hatte, waren die vom Form-Designer erzeugten Prozeduren.
Für Gadgets

Code: Alles auswählen

gadgetproc(EventType)
und für das Formular selber

Code: Alles auswählen

windowproc(event, window)
Im Nachhinein allerdings wieder logisch.
Ich wollte beim Öffnen des Formulars in etwa sowas erreichen:

Code: Alles auswählen

Procedure windowsproc(event, windows) 
If event = #PB_Event_ActivateWindow
     SetGadgetState(#Combo, 2)
EndIf
Allerdings ist das Fenster immer schneller als das Gadget. <)
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."

Wer lügt hier wirklich und wer sagt die Wahrheit?

_________________________________________

286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Antworten