Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 03.09.2009, 20:04 Titel: FB-GfxGui (projekt) |
|
|
hi leuts, ich wusste nich genau, wo ich diesen threat erstellen sollte.. bei Projektvorstellungen wollt ichs nicht reinstellen da ja noch laaange net fertig ist und so aba egal
ich habe ein neues Projekt in Angriff genommen und wollte ersteinmal wissen ob es überhaupt sinn macht weiterzuarbeiten... ich will eine Universelle(windows-ähnliche) GUI basteln die im FB-Fenster nur mit der FBGFx lib abläuft.. denn es hat mich schon oftmals genervt, dass es keine Standart GUI dafür gibt...
Soweit bin ich schonMenuTest.rar (58 KB)
ich habe erstmal angefangen ein windows-ähnliches menü zu basteln.. die Menüeinträge habe ich zu testzwecken aus dem FBEdit übernommen...
farben sind selbstverständlich änderbar.. aber in dem ähnlichen style würde ich weiterarbeiten... den source gebe ich erstma noch nicht raus
vllt hat ja jemand schon was ähnliches versucht und hat vllt ein paar tipps für mich.. (ich hatte sowas früher schonmal versucht aber es scheiterte dann an FPS-schwächen und zu hoher Speicher und CPU auslastung)
wenn es gefallen findet mach ichs fertig kann aber dauern
bitte um FeedBack(wie man das heutzutage nennt)
euer
d1rty h4rry _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss 
Zuletzt bearbeitet von d1rty.h4rry am 04.09.2009, 09:25, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 04.09.2009, 09:24 Titel: |
|
|
danke TPM ich hab den Link geändert  _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 04.09.2009, 13:01 Titel: |
|
|
Ich kann es gerade nur über wine testen, da ist der Aufbau der Überblendeffekte (fade in oder wie man das nennt) unangenehm langsam. Sonst sieht es schick aus. Was mich interessieren würde, ist, wie die Definition der Menüeinträge abläuft (also wie leicht oder schwer es ist, sein eigenes Menü zu basteln) und wie dann die Auswertung des angeklickten Menüpunktes aussehen wird. Kannst du dazu ein Beispiel posten? _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 04.09.2009, 14:04 Titel: |
|
|
klar kann ich.. das aufwendigste an dem Menü ist meiner meinung nach das Zeichnen
hier aber erstmal ein Beispiel wie man definiert und Abfragt
Code: | 'hier ein Beispiel fürs Definieren
Type JAMenuObj 'Menü Deklaration
text As String 'Anzuzeigender Text
param1 As Integer 'Wird verwendet als Index für die Spätere Auswertung
param2 As Integer 'die anderen Parameter werden Universel benötigt (siehe unten)
param3 As Integer
param4 As Integer
end Type
ReDim Shared JAMenu(0) As JAMenuObj 'Ist das array, indem die Menüeinträge gespeichert werden
ReDim Shared JASubMenu(0) As JAMenuObj 'Ist das array, indem die Unter-Menüeinträge gespeichert werden
'ich verwende ReDim und erweitere die Array immer, wenn ein Eintrag hinzugefügt wird (spart Ram anstatt am Anfang ne Zahl zu schätzen)
'die folgenden Functionen erleichtern das Einfügen von Einträgen
'"---" ist einfach nur ein Strich, dieser wird erstellt, wenn man den Text weglässt
Declare Function CreateJAMenuItem(Text As String) As Integer
Declare Function CreateJAMenuSubItem(Text As String="---",Param1 As Integer=0) As Integer
Declare Function ExJaMenu() As Integer
'so Jetzt brauch man noch 2 Variablen damit jeder Eintrag seinen Index bekommt
Dim Shared As Integer JAMenuIndex=0, JASubMenuIndex=0
'hier nochmal die Funktionen
Function CreateJAMenuItem(Text As String) As Integer
If JAMenuIndex<>-1 Then
JAMenuIndex+=1
ReDim Preserve JAMenu(JAMenuIndex)
JAMenu(JAMenuIndex).text=Text
JAMenu(JAMenuIndex).param1=JaMenuIndex
If JaMenuIndex>1 Then JaMenu(JaMenuIndex).param2=JASubMenuIndex
EndIf
JAMenu(0).param1+=1
Return JAMenu(JAMenuIndex-1).param1
End Function
Function CreateJAMenuSubItem(Text As String="---", Param1 As Integer=0) As Integer
If JAMenuIndex<>-1 Then
ReDim Preserve JASubMenu(JaSubMenuIndex)
JASubMenu(JASubMenuIndex).param1=Param1
JASubMenu(JASubMenuIndex).param3=JaSubMenuIndex+1000
JASubMenu(JASubMenuIndex).text=Text
JASubMenu(JASubMenuIndex).param4=JAMenuIndex
JASubMenuIndex+=1
EndIf
JaMenu(JAMenuIndex).param3+=1
Return JASubMenu(JASubMenuIndex-1).param3
End Function
'Und dann fehlt nurnoch die Zeichenroutine mit Mausabfrage
'aber die werde ich jetzt nur beschreiben
Function ExJaMenu() As Integer
Dim Event as Integer
'so jetz muss die Maus abgefragt werden
'man muss testen über welchem Eintrag sie sich befindet
'Und den Entsprechenden vorher gespeicherten Index zurückgeben
'Event=JAMenu().param1 wenn man das Hauptmenü anklickt und...
'Event=JASubMenu().param3 wenn man einen Unterpunkt gewählt hat
'Menü noch Zeichnen und
Return Event 'dann gibt man das Ergebnis zurück
End Function
'################
'und das Hauptprogramm
'################
Dim Object(2) as Integer 'Man kann für Jeden Eintrag im Menü eine Einzelne Rückgabe-Variable verwenden aber ich nehme ein Array
Dim MainEvent as Integer
'Screen auswählen
'Einträge Erstellen
CreateJAMenuItem("Datei")
Object(0)=CreateJAMenuSubItem("Beenden")
CreateJAMenuItem("Hilfe")
Object(1)=CreateJAMenuSubItem("Über")
'Hauptschleife
Do
ScreenLock
Cls
MainEvent=ExJaMenu()
ScreenUnlock
Select Case MainEven
Case Object(0): End
Case Object(1): Print "JaGui By D1H4"
End Select
Sleep(1)
Loop
|
so ähnlich könnte man das machen, bloß jetz nich einfach kopieren und testen. der Code würde nix Anzeigen.. das Zeichnen und die Maus-abfragen fehlen halt...
nemored hat Folgendes geschrieben: | da ist der Aufbau der Überblendeffekte (fade in oder wie man das nennt) unangenehm langsam. |
ne das ist wirklich so Langsam.. ist aber alles Einstellbar habs mal geändert MenuTest.exe (134 KB) teste das bitte nochmal das ist jetzt schneller
Mein PRoblem dabei ist aber noch: ich will Von dem blöden SHARED wegkommen.. hat vllt jemand ne Idee wie ich das lösen kann... ich hab es benutzt,
weil die Daten sich so, einfacher übergeben lassen.... wenn ich jetzt die ganzen parameter und Indexe direkt an die Funtkionen übergeben muss, dann wird mir das zu unübersichtlich... ich hab noch nie mit Pointern gearbeitet kann man vllt damit was machen?
was am menü auch noch fehlt: ist das selbst die Submenüeinträge in Windows noch weitere Menüs hervorrufen können.. siehe Startmenü.. ich muss mein system wahrscheinlich eh nochmal komplett umstellen.. allein schon wegen dem Shared
euer d1rty h4rry _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 04.09.2009, 14:26 Titel: |
|
|
Wie meinst du das, mit dem shared?
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 04.09.2009, 16:08 Titel: |
|
|
Ah, ist von der Geschwindigkeit wesentlich angenehmer.
Scheint mir von der Anwendung her sehr komfortabel.
Gegen SHARED habe ich persönlich wenig einzuwenden *hihi*, in deinem Fall würde sich vielleicht sogar ein UDT anbieten, welches das komplette Menü enthält. Dann könnte man auch mehrere Menüs parallel verwalten und je nachdem das anzeigen, das man gerade braucht. Ich denke mal, dass du dann aber für die Arrays variabler Länge nicht um Pointer herum kommen wirst. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 04.09.2009, 18:19 Titel: |
|
|
@TPM: nja ich hab mal gehört (naja eigentlich behaupten das hier viele) das Dim shared unelegant und nich "gut" bzw "professional" programmiert sei.. ich habe bloß nie verstanden wieso, es ist nicht langsamer als normal und es ist vor allem sehr praktisch, ich kann sowie so nicht verstehn was daran so schlimm ist
@nemored: kannst du mir sagen was ein UDT ist und was es kann ich steh grad aufm schlauch..
achja der "fade" effekt war nicht so langsam wegen performance einbußen sondern weil ich den Wert seeehr niedrig eingestellt hatte RGB+.03 oda so
ja aber wie gesagt mit pointern kenn ich mich net aus. wenn ich ein sogenanntes UDP benutze was muss ich dann pointern??
euer D1rty h4rry _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 04.09.2009, 18:28 Titel: |
|
|
ahhh danke sebastian.. ich bin doof (user defined type)
ich denke ich werde das ganze heute und morgen noch etwas umkrempeln... besser jetzt als irgendwann wenns zu groß is _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 04.09.2009, 18:28 Titel: |
|
|
@d1rty.h4rry
Nun ... Shared is ansich nicht schlecht .. es kommt nur darauf an, wofür man dies einsetzt.
Hat man Daten, die überall zugänglich zu sein haben, dann ist die verwendung von shared so gut wie nicht umgehbar. Klar könnte man das durch die übergabe von variablen lösen, aber einige dinge sind einfach praktikabler als Shared.
Wie gesagt... wenn man dieses statement mit bedacht einsetzt, dann ist die verwendung auch gerechtfertigt.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 04.09.2009, 18:31 Titel: |
|
|
ja und wie ist das im fall meines Menüs? ich finde es so eigentlich ganz okay  _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 566 Wohnort: Jüterbog
|
Verfasst am: 04.09.2009, 19:51 Titel: |
|
|
...wenn ich mir die schön einfache (geplante ?)Abfrage deines Menüs ansehe...
Aus gänzlich niederen Beweggründen will ich den Code haben *grrr* , das sieht so aus als könnte der, abgesehen von der Grafik, ganz wunderbar in meinen GUI-Versuch passen.
Versuch grad selbst nen Pulldown-Menü zu erstellen und stehe da irgendwie aufm Schlauch, da bin ich für jede Inspiration dankbar
...ansonsten "echt schicket Teil"
Mutton |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 04.09.2009, 21:26 Titel: |
|
|
xD witzig, da das auch mal wieder ein GUI-Versuch von mir ist.. ich werde den source mal hochladen allerdings läuft der vorerst nur unter Deprecated GUI von FBEdit.. ich werde den Source später bereinigen, wenn ich fertig bin
achja es ist natürlich nicht so schön kommentiert wie das beispiel oben viel spass beim durchwühlen...
wenn du fragen hast, ich kann dir auch helfen mit deinem PullDown-Menü
MenuTest.rar (61 KB)
wenn das menü fertig ist dann mach ich weiter mit Internen Fenstern , Buttons, Slider, checkboxen etc...
soll mal ein größers projekt werden. damit ich später nicht jedes mal wenn ich ne gui brauche irgendwo klauen oder das rad neu erfinden muss
d1rty h4rry _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 566 Wohnort: Jüterbog
|
Verfasst am: 04.09.2009, 21:45 Titel: |
|
|
... bei Buttons, Slidern und CheckBoxen kann ich dir vllcht helfen
siehe:
http://forum.qbasic.at/viewtopic.php?t=6007
(also mein Machwerk, mit Hilfe von etlichen hier ausm Forum)
an dem schraub ich schon ne ganze Weile, unregelmässig, hab auch noch nen Beruf
Mutton |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 04.09.2009, 22:10 Titel: |
|
|
die gui sieht ganz gut aus.. .. was mich interressiert viel mehr als buttons und der ganze rest sind edit-boxen, wie diese in die ich gerade schreibe, das ist wohl von allen elementen am aufwendigsten, was ich machen will soll nicht so standartmäßig nur eine zeile haben sondern man soll auch markieren können, RechtsklickKopieren, Zeilenumbruch oder bei längerem text scrollbars an die seiten tackern und so weiter, ich hab sowas mal probiert hab aber schnell die nerven verloren.. .. und was meiner gui längst noch fehlt ist diese Eventorientierte Geschichte... das raff ich noch net so ganz.. das ist ein rumgepointere... bloß ich kenn mich net damit aus und ich hab auch kein plan, was am pointern so toll is... ich werd mir morgen erstmal den source genau ansehen.. und wer weiß vllt.. machma ja einfach ein neues "perfektes" GUI-Projekt
die Scroll-dinger sind auch schick(ich meine die demo mit dem Bild)
xD ich weiß was deiner GUI fehlt ..............ein Menü
hast du dir mein Quell-Text mal angesehn? da gibts bestimmt viel besserungsbedarf  
===========================================
EDIT: Ich Hab hier noch ein früheres Demo-Programm von mir gefunden ist schlecht geproggt und sieht auch net gut aus is aber auch schon 3-4jahre alt da hat ich noch wirklich keinen plan von sowas, das muss natürlich komplett aufgearbeitet werden Windows.exe (122 KB)
Jedes Fenster ist verschiebbar und in der größe veränderbar.. ich werde auf jeden fall viel über copy-paste aus meinem alten programm nehmen
vllt. wär was ähnliches auch gut für deine GUI.. wenn man in nem Proggi noch ein Extrafenster öffnen kann
d1rty h4rry _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 04.09.2009, 22:41 Titel: |
|
|
Du könntest auch mit einem Message-Callback System arbeiten. (-> Windows GUI) Oder einem reinem Callbacksystem (->GTK). Oder Observern (-> Bei ... ja... richtig... C++ durchaus üblich) |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 566 Wohnort: Jüterbog
|
Verfasst am: 04.09.2009, 22:45 Titel: |
|
|
ufff: ne mächtig lange ToDoList für dein ListBox(edit EditBox)
diese Funktionen, glaub ich, sind bei meinem Baby konzeptbedingt wohl garnicht drin
japp... dat Menü-Dingens... fehlt noch bei meinerseinen.. .
Zuletzt bearbeitet von Muttonhead am 04.09.2009, 22:55, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 04.09.2009, 22:53 Titel: |
|
|
@muttonhead: nja vllt. hilft dir mein Source ein menü einzubauen
@28398: ähhh kannst du mir erklären wie ein callback funzt? weil die arbeiten ja mit threads oder? _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 04.09.2009, 23:19 Titel: |
|
|
http://de.wikipedia.org/wiki/Rückruffunktion
Gut erklärt wirds auch in den ersten Kapiteln vom Petzold.
Observer stelle ich mir mit FB schwierig vor, sowas wie ein Qt-artiges Signal-Slot-System nahezu unmöglich... |
|
Nach oben |
|
 |
|