AniGadget Visual Designer v1

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag von Lars »

Eleganter wäre aber trotzdem:

Code: Alles auswählen

ForEach AniGad()
  If AniGad()\id = id
    ProcedureReturn AniGad()\Status ;reicht doch?!
  EndIf
Next
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
Benutzeravatar
Mischa
Beiträge: 152
Registriert: 29.08.2004 06:52
Wohnort: Hellhorst

Beitrag von Mischa »

Uuups! :oops:

Schon wieder soon Dummfug verzapft.

Ihr habt natürlich beide recht. Sorry.
Wie unachtsam. Das passiert immer mit Funktionen die ich noch
nicht getestet habe. Logisch. Sonst wärs wohl aufgefallen.

Vielen Dank!

Gruß,
Mischa
Benutzeravatar
Helmut
Beiträge: 162
Registriert: 20.09.2004 22:53

Beitrag von Helmut »

@Mischa
nee nee, das ist schon ein Top-Programm was du da gezaubert hast,
ob ausprobiert oder nicht, ich frage mich nur, wie ihr das so macht, wo nehmt ihr die Zeit her. Das kostet viel Gehirnschmalz, aber auch irre Zeit.
Was mache ich jetzt mit dem Wunsch alle Zustände des Teilesets abzufragen oder zusetzen?
Meine Idee ist als Teileset eine 7-segment-Anzeige (JPG) zu nehmen und die dann entsprechend des Set-Wertes anzeigen zulassen.
Ich bin noch nicht soweit, dein Programm verbessern zu können (Newbiee).
Vielen Dank
Helmut
Benutzeravatar
Helmut
Beiträge: 162
Registriert: 20.09.2004 22:53

Beitrag von Helmut »

@Mischa
ich habe das was ich mit den 7-segment Teileset gemeint habe mal hinterlegt:

http://www.home.foni.net/~helmutholm/Led_grundriss.zip
Alle Art von Anzeigen wären dann rel. einfach, wollte ich zB. "22 Grad"
darstellen müsste ich für die Zehnerstelle ein Set setzen und für die Einer-Stelle ein anderes Set mit setgadget stellen.
Wäre doch auch fein.
Vielen Dank für die Antwort
Helmut
Benutzeravatar
Mischa
Beiträge: 152
Registriert: 29.08.2004 06:52
Wohnort: Hellhorst

Beitrag von Mischa »

Ok!

Jetzt begreif ichs langsam.

Du bekommst ja relativ einfach zugriff auf jedes AniGadget und
kannst die 'Offset-Daten' ja verändern:

Code: Alles auswählen

AniGadgetAccess(id)

AniGad()\state[#FG_NORMAL]\x = NeueroffsetX ;innerhalb des Quell-Images
AniGad()\state[#FG_NORMAL]\y = NeueroffsetY ;innerhalb des Quell-Images

AniGad()\act\newset=1 ;damit's beim nächsten AniGadgetEvent()-Aufruf aktualisiert wird
Das ließe sich innerhalb einer simplen Prozedur sicherlich auch
FORMELieren:

Code: Alles auswählen

AniGad()\state[#FG_NORMAL]\x = 26 * ziffer ;(0 -9)
(26 ist die Breite Deiner Ziffern)

Sollst Du wohl hinbekommen. :wink:

Gruß,
Mischa
Benutzeravatar
Helmut
Beiträge: 162
Registriert: 20.09.2004 22:53

Beitrag von Helmut »

Code: Alles auswählen

AniGadgetAccess(38); Gadget-ID von der Anzeige 
; 26  pixel ist das immage gross
AniGad()\state[#FG_NORMAL]\x=26*2 ; (0 -9) 
AniGad()\act\newset=1 ;damit's beim nächsten AniGadgetEvent()-Aufruf aktualisiert wird 
Mit dem Code kann ich es so aufrufen, wie ich es wollte, nur die Anzeige flackert, wird irgendwie immer auf einen anderen Zustand gesetzt, ich habe schon Delay`s gesetzt und mit "Debug AniGad()\state[#FG_NORMAL]\x" gearbeitet, der X-Wert hat den richtigen Wert, trotzdem flackert die Anzeige - es kommt immer ein anderer X-Wert ins Spiel, scheinbar, je nach Multiplikant des X-Wertes, habe aber auch schon feste Werte eingesetzt, kann aber nicht erkennen woran es liegt... :o.
Benutzeravatar
kapege
Beiträge: 39
Registriert: 28.12.2004 17:35
Computerausstattung: AMD Ryzen 7 3700X 8-Core Processor 3.60 GHz
Windows 10 Pro 64bit
14 GB Ram

PureBasic 6.00 LTS (Windows - x64)
Wohnort: Trostberg

Anigadget

Beitrag von kapege »

Hallo Mischa,

ich befasse mich seit kurzem mit PureBasic und Anigadget.

Nun habe ich folgende Probleme: (blick noch nicht so ganz durch)

1. Kann man die Button's auch einstellen, das sie disabled but visible sind?

2. Wenn ein Button movable ist, kann man die Reihenfolge (Layer) bestimmen? mal ist er dann vor/hinter einen anderen Button.

3. Wie geht es, wenn man Transparent-Modus einschaltet, das kein flackern ensteht?

z.B.:

Bild2.ANIGADGETDATA
Bild2\x = 660
Bild2\y = 400
Bild2\w = 120
Bild2\h = 40

Bild2\media\image\adress = ?bild2
Bild2\media\image\size = ?bild3-?Bild2

Bild2\state[#FG_NORMAL]\transparent = 1
Bild2\state[#FG_NORMAL]\color = 1

AniGadget(9,0,Bild2)

4. Ich habe keine Möglichkeit mit anderen PureBasic-Befehlen auf diese Fenster bzw. Bildschirm zuzugreifen, z.B. via GrabSprite ein Foto zu machen.

Ich habe die OnError-Routine eingeschaltet und bekomme die Fehler-Meldung:
Description: An attemped read or write to/from an adress to wich that processed isn't allowed Line:16777215

Liegt das daran, dass Du das alles mit WIN32 bearbeitest?

wäre toll wenn Du mir dabei helfen könntest.
Ich finde dieses Programm sehr gut, und wäre auch bereit eine DOKU zu schreiben allerdings nur in Deutsch.

Könntest Du vielleicht den Satzaufbau der PAG-Datei veröffentlichen.
Damit würde ich gut zurechtkommen. Ausserdem kann man dann auch die moveabled Button dort wieder reinschreiben, damit es gespeichert bleibt.

mfg
Peter
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8820
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Schalte mal in den Projekt-Optionen die OnError-Unterstützung ein. Dann sollte zumindest mal die Zeile angezeigt werden, in der der Fehler auftritt.
Benutzeravatar
kapege
Beiträge: 39
Registriert: 28.12.2004 17:35
Computerausstattung: AMD Ryzen 7 3700X 8-Core Processor 3.60 GHz
Windows 10 Pro 64bit
14 GB Ram

PureBasic 6.00 LTS (Windows - x64)
Wohnort: Trostberg

Beitrag von kapege »

@NicTheQuick

ich habe die OnError Routine in der Anigaget_Include Datei eingeschaltet.
wie beschrieben der Fehler unter Punkt 4.
In der Projekt-Einstellung habe ich es noch nicht probiert, werde es aber machen.
Aber die Zeile ist in jedem Fall beim Aufruf: GrabSprite(...)

Gruß
Peter
Benutzeravatar
Mischa
Beiträge: 152
Registriert: 29.08.2004 06:52
Wohnort: Hellhorst

Re: Anigadget

Beitrag von Mischa »

1. Kann man die Button's auch einstellen, das sie disabled but visible sind?

Nein, aber Du mußt die 'Events' ja nicht auswerten.
Ignoriere die entsprechenden Knöpfe doch einfach
zeitweilig.


2. Wenn ein Button movable ist, kann man die Reihenfolge (Layer) bestimmen? mal ist er dann vor/hinter einen anderen Button.

'Drawever' müßte Abhilfe verschaffen. Anzuwenden auf alle
betroffenen Buttons.

3. Wie geht es, wenn man Transparent-Modus einschaltet, das kein flackern ensteht?

Siehe Punkt 2


4. Ich habe keine Möglichkeit mit anderen PureBasic-Befehlen auf diese Fenster bzw. Bildschirm zuzugreifen, z.B. via GrabSprite ein Foto zu machen.

GrabSprite ist DirectX und nicht GDI, bzw Images, usw.


Ich habe die OnError-Routine eingeschaltet und bekomme die Fehler-Meldung:
Description: An attemped read or write to/from an adress to wich that processed isn't allowed Line:16777215

Liegt das daran, dass Du das alles mit WIN32 bearbeitest?


Das könnte eine Erklärungs sein.
Normale PB-ImageID kannst Du hier nicht erwarten.


wäre toll wenn Du mir dabei helfen könntest.
Ich finde dieses Programm sehr gut, und wäre auch bereit eine DOKU zu schreiben allerdings nur in Deutsch.

Könntest Du vielleicht den Satzaufbau der PAG-Datei veröffentlichen.
Damit würde ich gut zurechtkommen. Ausserdem kann man dann auch die moveabled Button dort wieder reinschreiben, damit es gespeichert bleibt.

Gute Idee. Habe selber nicht so wahnsinnig viel Zeit.
Kann Dir aber gerne mal den Designer-source zum durchfuchsen und
evtl nützlichen Änderungen Deinerseits zuschicken, wenn magst.

Gruß,
Mischa
Antworten