GadgetID ??

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

Thommes

Betreff: GadgetID ??

BeitragDi, Nov 09, 2004 1:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich komme von der Amiga-Schiene (Gott hab sie Seelig)...
Da wurde ich von BB verwöhnt. Es gab das schöne Amiga-Strukturen-Lexikon in dem so gut wie alles stand. Alle Ereignisse konnte man über Systemroutinen bis in´s kleinste abfragen und kontrollieren. Und genau hier liegt das Problem.
Wenn ich in einer Schleiffe ein paar Gadgets erstelle ....

For i = 1 To 6
For j = 1 To 8
nr = Int(Str$(i)+Str$(j))
button(nr)=CreateButton("",50+j*60,20+i*25,50,20,can,1)
Next
Next

... denkt euch mal das passende Window und die Zuweisungen zum Canvas etc...
Wenn ich dann die Gadgets über eine Select EventSource() auswerten möchte, so muss ich das einzeln machen? Oder gibt es die Möglichkeit die in der Schleiffe zugewiesene ID "button(nr) herauszubekommen, wenn es angeklickt wurde? Bei BB-Amiga gab es eine Möglichkeit eine GadgetID auszulesen.

Ich bedanke mich schon mal für die tausend richtigen Antworten...
MfG.. Thommes

Triton

BeitragDi, Nov 09, 2004 21:42
Antworten mit Zitat
Benutzer-Profile anzeigen
verschoben nach gui..
Coding: silizium-net.de | Portfolio: Triton.ch.vu

D2006

Administrator

BeitragDi, Nov 09, 2004 22:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

hmm. eigentlich doch simpel.

Mach halt kein Select EventSource sondern eine For Schleife, die alle Buttons durchgeht und dabei die EventSource mit dem Buttonhandle vergleicht (in deinem Fall button(nr)).

Oder anders gesagt:
CreateButton liefert den Handle, also die ID des Buttons zurück.

Hoffe es hilft.

MfG

Thommes

BeitragMi, Nov 10, 2004 7:43
Antworten mit Zitat
Benutzer-Profile anzeigen
... ist der gleiche effekt wie bei SelectEvent...
Ich wollte die Sache bei ca. 130 Gadgets abkürzen.
Die Anweisungen ähneln sich ei den Funktionen sehr.
Es wird überprüft, welches Gadget angeklickt wurde,
dann wird anhand der ID diese Gadget ein Wert (DIMeinsionierte
Variable mit eben der gleichen ID) übermittelt und dann das Gadget
abgeschaltet. Wenn ich das beim BB-Amiga gemacht habe, wurde mir die ID des angeklickten Gadgets übermittelt, so das ich keine weitere Abfrage benötigte. Dann braucht man keine If GadgetID..... dann tu das... Anweisungen tausend mal schreiben, sondern das sah dann so aus: ID = GadgetID, Gadget(ID) wurde angeklickt, wert(ID) an Funktion übergeben und bearbeiten, Gadget(ID) abschalten... fertig.
Ich habe das jetzt mit einer Selevt - Case Anweisung gemacht, aber das sind dann pro Gadget ca. 8 Zeilen (mit IF, Then, EndIF....) und macht so aus einem kleinen Spielchen mal eben ein 1800-Zeilen Bolieden...
Es läuft zwar, aber zufrieden bin ich nicht!!

Trotzdem danke ann alle Helferlein...
..nächtelanges coden wünscht Thommes

simi

BeitragMi, Nov 10, 2004 16:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, das kannst du doch auch mit BB so machen:
Code: [AUSKLAPPEN]

ID = EventSource()
BearbeietGadget(ID)

Function BearbeiteGadget()
  SchalteGadgetab
  Mach noch etwas anderes
end Function


oder verstehe ich etwas falsch?? Confused

Thommes

BeitragMi, Nov 10, 2004 21:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Schwere Dinge können manchmal so einfach sein, wenn ein netter Mensch einen mit der Nase draufdrückt. Wenn das funktioniert (was ich bereits glaube) werde ich Dich in meinem Progrämmchen auf immer Verewigen (wenn´s Recht ist!?).

Thanx... So macht es Spass!!

MfG... Thommes

http://www.t.carstens.de.vu

Thommes

BeitragMi, Nov 10, 2004 22:16
Antworten mit Zitat
Benutzer-Profile anzeigen
... habs gerade ausprobiert.
Es funktioniert tatsächlich, kann ich aber aus anderen Gründen leider nicht anwenden. Schade, aber im nächsten Proggi werd ich schlauer sein. Noch mal Danke für die Hilfe!!

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group