Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

sGUI - eine kleine GUI Simulation
Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Elor



Anmeldungsdatum: 12.07.2013
Beiträge: 205
Wohnort: Konstanz

BeitragVerfasst am: 29.03.2016, 10:25    Titel: Antworten mit Zitat

Bei mir Funktioniert jetzt alles, der Fehler in der RadioButton.bas-Function RadioButtonActions), denn hatte ich noch gar nicht gemeldet, ist auch weg.
Danke für die Korrektur!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Haubitze



Anmeldungsdatum: 14.10.2009
Beiträge: 100

BeitragVerfasst am: 16.10.2018, 20:08    Titel: Antworten mit Zitat

Hi Muttonhead,
ich haette da mal ne frage bezueglich dem managment von sGUI.

Da ich gerade an einem MapGenerator bastel und mir sGUI immernoch sehr gefaellt (wegen der einfachen benutzung und dem schnellen aufbau) hab ich
mal nachgeschaut im source aber nix gefunden.

In meinem Project habe ich zB solche Konstrukte...
Code:

'NoiseSettins.bi
Type NoiseSettings
   Declare Constructor()
   Enum FilterType_e
   Normal,
   Rigid
   End Enum
   Enum NoiseType_e
   Classic,
   Simplex,
   OpenSimplex
   End Enum
   
   NoiseType As NoiseType_e
   FilterType As FilterType_e
   
   active As boolean
   hide As boolean
   NoiseMask As Integer


   Dim CenterX As Double = 0.0
   Dim CenterY As Double = 0.0
   Dim CenterZ As Double = 0.0
   Dim CenterW As Double = 0.0

   Dim minValue As Double = -0.0
   Dim octaves As Integer = 1
   Dim persistence As Double =0.5
   Dim baseRoughness As Double = 1.01
   Dim roughness As Double = 2.5
   Dim strength As Double = 1.0
   Dim addvalue As Double =0.0
   
   n_min As Double
   n_max As Double
End Type
Constructor NoiseSettings()

End Constructor


'-------------------------------------------------------------------------------------
'NoiseFilter.bi
#Include "noise.bi"
#Include "NoiseFactory.bi"
'define a standart interface for the Noise Filters
Type INoiseFilter extends object
   Declare virtual Function eval(x As Double,y As Double) As double
   Declare virtual Function eval(x As Double,y As Double,z As double) As double
   Declare virtual Function eval(x As Double,y As Double,z As Double,w As Double) As double
   value As Double
End Type
Function INoiseFilter.eval(x As Double,y As Double) As double
   Return value
End Function
Function INoiseFilter.eval(x As Double,y As Double,z As Double) As double
   Return value
End Function
Function INoiseFilter.eval(x As Double,y As Double,z As Double,w As Double) As double
   Return value
End Function



'The Classic Perlin
Type ClassicNoiseFilter extends INoiseFilter
   Declare Constructor(NS As NoiseSettings)
   Declare Destructor()
   Declare Function eval(x As Double,y As Double) As Double
   Declare Function eval(x As Double,y As Double,z As double) As Double
   Settings As NoiseSettings
   noise As INoise Ptr

End Type
Constructor ClassicNoiseFilter(NS As NoiseSettings)
Settings = NS
noise = NoiseFactory.CreateNoise(NS)
End Constructor
Destructor ClassicNoiseFilter()
Delete noise
End Destructor

Function ClassicNoiseFilter.eval(x As Double,y As Double,z As Double) As double
   value=noise->noise(x,y,z)
   Return value
End Function
Function ClassicNoiseFilter.eval(x As Double,y As Double) As double
   value=noise->noise(x,y,0)
   Return value
End Function


'The Simplex Noise
Type SimplexNoiseFilter extends INoiseFilter
   Declare Constructor(NS As NoiseSettings)
   Declare Destructor()
   Declare function eval(x As Double,y As double) As double
   Declare function eval(x As Double,y As Double,z As double) As double

   Settings As NoiseSettings
   noise As INoise Ptr

End Type
Constructor SimplexNoiseFilter(NS As NoiseSettings)
Settings = NS
noise = NoiseFactory.CreateNoise(NS)
End Constructor
Destructor SimplexNoiseFilter()
Delete noise
End Destructor
Function SimplexNoiseFilter.eval(x As Double,y As Double) As double
   value=noise->noise(x,y)
   Return value
End Function
Function SimplexNoiseFilter.eval(x As Double,y As Double,z As Double) As double
   value=noise->noise(x,y,z)
   Return value
End Function

'A Rigid Filter
Type RigidNoiseFilter extends INoiseFilter
   Declare Constructor(NS As NoiseSettings)
   Declare Destructor()
   Declare function eval(x As Double,y As double) As double
   Declare function eval(x As Double,y As Double,z As double) As double

   Settings As NoiseSettings
   noise As INoise ptr

End Type
Constructor RigidNoiseFilter(NS As NoiseSettings)
Settings = NS
noise = NoiseFactory.CreateNoise(NS)
End Constructor
Destructor RigidNoiseFilter()
Delete noise
End Destructor
Function RigidNoiseFilter.eval(x As Double,y As Double) As Double
   Dim amplitude As Double = 1
   Dim weight As Double = 1
   Dim v As Double
   dim frequency As Double=Settings.baseRoughness
   Dim min As Double = DBL_MAX
   Dim max As Double = DBL_MIN
   value=0
   For i As UInteger=0 To Settings.octaves
      v=1.0-(Abs(noise->noise(x*frequency+Settings.CenterX,y*frequency+Settings.CenterY,0)))'+1.0
      v*=v
      v*=weight
      weight=v
      value+=v*amplitude
      frequency*=Settings.roughness
      amplitude*=Settings.persistence
      If value<min Then min=value
      If value>max Then max=value
   Next
   value = IIf(0>value-Settings.minValue,0,value-Settings.minValue)
   Return value'/(max-min)
End Function
Function RigidNoiseFilter.eval(x As Double,y As Double,z As Double) As double
   Dim amplitude As Double = 1
   Dim weight As Double = 1
   Dim v As Double
   dim frequency As Double=Settings.baseRoughness
   Dim min As Double = DBL_MAX
   Dim max As Double = DBL_MIN
   value=0
   For i As UInteger=0 To Settings.octaves
      v=1.0-(Abs(noise->noise(x*frequency+Settings.CenterX,y*frequency+Settings.CenterY,z*frequency+Settings.CenterZ)))
      v*=v
      v*=weight
      weight=v
      value+=v*amplitude
      frequency*=Settings.roughness
      amplitude*=Settings.persistence
      If value<min Then min=value
      If value>max Then max=value
   Next
   value = IIf((value-Settings.minValue)>0,(value-Settings.minValue),0)
   Return value'/(max-min)
End Function

'--------------------------------------------------------------------------------------
'NoiseFilterFactory.bi
#Include "NoiseSettings.bi"
#Include "NoiseFilter.bi"

#ifndef NULL
  #define NULL cptr(any ptr, 0)
#EndIf


Type NoiseFilterFactory
   Declare Static Function CreateNoiseFilter(NS As NoiseSettings) As INoiseFilter Ptr
   dummy As byte
End Type
Function NoiseFilterFactory.CreateNoiseFilter(NS As NoiseSettings) As INoiseFilter Ptr
   Dim res As INoiseFilter Ptr = NULL
   Select Case NS.FilterType
      Case NS.FilterType_e.Normal
         res = New ClassicNoiseFilter(NS)
      Case NS.FilterType_e.Rigid
         res = New RigidNoiseFilter(NS)
   End Select
   Return res
End Function

nun hab ich mich gefragt ob sGUI auch so aufgebaut ist.
wenn ja wo vertseckten sich die "Interfaces", wenn nein koennte
man das in zusammenarbeit oder alleine (mit deiner erlaubniss)
so umstrukturieren das man ein IGdaget interface hat und evtl noch mehr?
(Gadgets haben ja alle eine xy position soweit ich das sehe).

Meine Intension ist ein WindowManager zu basteln mit sGUI den man
"intuitiv" programieren kann.

evtl kannst du mir ja dabei helfen bzw tipps geben falls das ueberhaupt
moeglich ist. zb wo muss ich ansetzen (wo ist der anfang von sGUI) um zB die Gadgets in "Interface"Gadgeds umzuwandeln.


Mir schweben im da gerade so Konstrukte wie
Code:

Type IWindow extends object
   x As Integer
   y As Integer
   w As Integer
   h As Integer
   z As Integer 'for rendering order
   
   title As String 'window title (if "" then not drawn)
   
   active As boolean 'is window visible
   minimized As boolean 'is it minimized
   
   Declare Sub Render(e As sGUI.EventHandle ptr)
   Declare Sub AddGadget(g As sGUI.Gadget ptr)
   Declare Sub DeleteGadget(g As sGUI.Gadget ptr)
   
   Gadgets As arrayList
   UserData As arrayList
End Type


Type WindowManager
   Declare Sub Render()
   Declare Sub UpdateZ()
   Declare Sub Sort()' sorts the arrayList by Z
   Declare Sub AddWindow(w As IWindow)
   Declare Sub DeleteWindow(w As IWindow)
   
   event As sGUI.EventHandle Ptr ' th global event handle
End Type

im kopf rum.
salute

PS.: ich nutze auserdem die aeusserst nuetzliche erweiterung von Paul Doe
namens "arrayList.bi" aus diesem Fred https://www.freebasic.net/forum/viewtopic.php?f=8&t=26667
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 511
Wohnort: Jüterbog

BeitragVerfasst am: 21.10.2018, 15:20    Titel: Antworten mit Zitat

erst jetzt gelesen... sorry. neutral

Also es geht generell um nen Fenster-System? Nun,mit der downloadbaren sGUI Version wird das sehr schwierig. Die noch immer in den Kinderschuhen steckende Version hat zumindest ein paar Grundlagen die m. M. nach sehr wichtig sind. Sämtliche Allozierungen, also erzeugte Eventhandles, Gadgets usw. werden dort in "zentralen Listen" verwaltet. Das ist bisher nicht so. Außerdem ist es nun möglich, einem Evenhandle ne art XY offset zu verpassen, was einem Pseudofensterhandling sehr entgegenkommt.

In wieweit man dies wieder rückimplantieren kann, weiß ich momentan auch nicht, da, mal wieder, etliche Types einer Reorganisation unterzogen wurden.

Trotzdem wäre es cool mal wieder dran herumzuschrauben lächeln

Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Haubitze



Anmeldungsdatum: 14.10.2009
Beiträge: 100

BeitragVerfasst am: 21.10.2018, 16:11    Titel: Antworten mit Zitat

ja genau ein fenstersystem, ich hab zB einen type IWindow der ein fenster
beschreibt. dann moechte ich gadgets hinzufuegen (halte ich in einer liste)
nun hab ich natuerlich das problem das ich in der liste leider nicht weis
was fuer ein gadget ich anklicke,ist es der close button oder eine listbox.

dann hab ich ein type zb ColorPicker der die eigenschaften und ein paar subs
von IWindow erbt. dieser stellt das eigendliche fenster dar. ich muss nun
nurnoch eine sub schreiben die die speziellen eigenschaften des ColorPicker
fensters behandelt, alles andre ist ja schon in IWindow definiert.
(zb verschieben des fensters,der close und minimieren button,
halt alles was ein fenster zu einem fenster macht)

probleme hab ich nun natuerlich zB beim senden und empfangen von msgs
von einem fenster zum andren. bzw hab ichgarkeine idee wie ich das
umsetzen sollt. ich kann also zZ nicht oder nur umstaendlich auf die
selectierte farbe des ColorPicker zugreifen und mir zB den globalen
hindergrund damit faerben lassen.

hm ka wie ich das beschreiben soll, hoffe aber du weist was ich meine.

salute

Edit: waere es evtl moeglich eine testverion deiner neuimplementierung hochzuladen?

Edit2: mal als idee was ich so vor hab
der Windowmanager:
Code:

Type WindowManager
   Declare Constructor()
   Declare Constructor(w As Integer,h As Integer)
   Declare Destructor()
   Declare Sub Render()
   Declare Sub UpdateZ()
   Declare Sub Sort()
   Declare Sub AddWindow(w As IWindow ptr)
   Declare Sub DeleteWindow(w As IWindow ptr)
   
   Windows As arrayList 'holds a list of IWindows
   
   event As sGUI.EventHandle Ptr
   w As Integer
   h As Integer
End Type

das IWindow Interface
Code:

Type IWindow extends object
   Declare Constructor()
   Declare Sub Init(e As sGUI.EventHandle Ptr,t As String,x As Integer,y As Integer,w As Integer,h As integer)
   Declare virtual Destructor() ' the user has to implemet it

   Declare Sub PreRender(e As sGUI.EventHandle Ptr)
   Declare virtual Sub Render(e As sGUI.EventHandle ptr) 'the user has to implement it
   Declare Sub AddGadget(g As sGUI.Gadget ptr)
   Declare Sub DeleteGadget(g As sGUI.Gadget ptr)

   title As String
   x As Integer
   y As Integer
   w As Integer
   h As Integer
   z As Integer 'for drawing order

   Gadgets As arrayList 'holds sGUI.Gadgets
   UserData As arrayList 'holds data?
   event As sGUI.EventHandle Ptr

   active As boolean
   minimized As boolean
End Type


und das Eigendliche fenster
Code:

Type ColorPicker extends IWindow
   Declare Constructor(e As sGUI.EventHandle Ptr,t As String,x As Integer,y As Integer,w As Integer,h As integer) 'calls first IWindow.Init(...)
   Declare Destructor()' the specialized Destructor

   Declare Function Pick(x As UInteger, y As uinteger) As color_t
   Declare Function lerp(v0 As double, v1 As Double, t As Double) As Double
   Declare Sub Render(e As sGUI.EventHandle ptr) 'the specialized Render Routine, calls first IWindow.PreRender(...)

   selected As color_t
   m_over As color_t
   img As IMAGE Ptr
End Type


nun kann ich zb sowas machen
Code:

dim WM as WindowManager ptr = new WindowManager(1024,600)
Dim CP As IWindow Ptr= New ColorPicker(WM->event,"ColorPicker",64,64,360,256)
WM->AddWindow(CP)

WM->Render()


hoffe das macht die geschichte bissl einleuchtender.

evtl bin ich ja auch aufm holzweg was dieimplementierung angeht,
fals ja dann sag mir das bitte ;D

Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 511
Wohnort: Jüterbog

BeitragVerfasst am: 21.10.2018, 17:41    Titel: Antworten mit Zitat

<Link entfernt>
Wir können es ja mal zerlegen lächeln
Mutton


Zuletzt bearbeitet von Muttonhead am 22.10.2018, 16:39, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Haubitze



Anmeldungsdatum: 14.10.2009
Beiträge: 100

BeitragVerfasst am: 22.10.2018, 13:35    Titel: Antworten mit Zitat

also das Dragger Gadget gefaellt mir schon mal sehr, das hilft mir beim Fenster
verschieben extrem zwinkern ansonsten seh ich noch nich wirklich wo was geendert
wurde. aber ich schau mir die demos gerade an. der bitmap font gefaellt mir
auch sehr, sieht irgenwie professioneller aus zwinkern

salute

edit: ich habe das DragBar Gadget um das parameter GadHeight erweitert, da mir dieses fehlte. es wird genauso behandelt wie im AddSimpleGadget.
bei 0 wird die Fonthoehe benutzt.

edit2: cls aus DragBarActions entfernt da das stoerte.

frage: reicht eigendlich eine Eventhandle aus oder kann ich auch mehr davon nutzen?
problem ich habe 2 fenster das 2. laesst sich schieben und schliesen das 1. nicht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 511
Wohnort: Jüterbog

BeitragVerfasst am: 22.10.2018, 17:02    Titel: Antworten mit Zitat

Ja, das DragBar soll in die Richtung verschiebbares Fenster gehen.
Wie schon gesagt, in jedem Eventhandle gibt es nun einen GFX Offset. Die Positionierung der dem EH zugeordneten Gadgets erfolgt nun relativ zum Offset. Wie gut oder schlecht das funktionieren wird... soweit war ich noch nicht.

Wenn du einen Blick in die sGUI.bas wirfst, dort werden gegen Ende einige Listen erzeugt. Also sämtliches alloziertes Zeugs wird in diesen Listen verwaltet. Dies hat beim Löschen definitiv Vorteile, und ein vielleicht noch zu entwerfendes MCP (Master Control Program grinsen Tron lässt grüßen) hat dann universellen Zugriff.


ps: Zu deiner Frage: Bis jetzt kann nur immer einer laufen..
Aber, da man nun auf alle Gadgetlisten Zugriff hat.
Für ein Fenster beispielsweise eine eigene Gadgetliste, ja gut das sollte auch so sein, und der (eine!) Eventhandle rattert alle Listen ab. Hm lächeln




Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Haubitze



Anmeldungsdatum: 14.10.2009
Beiträge: 100

BeitragVerfasst am: 22.10.2018, 18:50    Titel: Antworten mit Zitat

hm okay jetzt hab ich einen EventHandle laufen, nun hab ich das problem das
meine 3 fenster an der selben stelle angezeigt werden. ka warum.
wenn ich dagegen in jedem fenster einen eventhandler erstelle dann
stehen die fenster an ihrer position wie gewuenscht, aber irgendwas stimmt
da dann auch noch nich, is aber warscheinlich mein fehler.

dafuer hab ich einen sporadischen Focus fuer fenster gebastelt der soweit auch
funtzt. schoen waere es wenn ich die DragBar klicke das die mir einen "Ping"
zurueck giebt das macht sie soweit ich das sehe ja nich.
ausserdem ist mir aufgefallen das die DragBar gar keine gad->posx/y hatt (immer 0) muss das so sein? was ist gad->event->guiposx?

evtl koenntest du mal erklaeren wie ich das evtl implementieren kann.
hab das irgenwie nich hinbekomm. :/
(waere halt super fuer einen SetWindowFocus).

Salute
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 511
Wohnort: Jüterbog

BeitragVerfasst am: 23.10.2018, 05:16    Titel: Antworten mit Zitat

Zitat:
ausserdem ist mir aufgefallen das die DragBar gar keine gad->posx/y hatt (immer 0) muss das so sein? was ist gad->event->guiposx?


wenn du in die sGUI_EventHandle.bas mal rein siehst...
Code:
type EventHandle extends node
  'Parent Handle
  parentevent as _EventHandle ptr
 
  'GUI
  guiposX     as integer
  guiposY     as integer
'..........


guiposX,guiposY ist der Offset des Handles, Für alle ihm zugeordneten Gadgets ist dies quasi der Nullpunkt/ die Referenz. Die Dragbar befindet sich relativ immer in der oberen linken Ecke. Wenn du sie bewegst, bewegt sich eigentlich der Offset im Eventhandler.
Und hier der Unterschied zur vorangegangenen Version. Die Positionierung die Gadgets ist relativ zur Position im Eventhandle zu sehen, nicht zum Screen. Der Eventhandle (maybe das Fenster) kann sich bewegen, die Controls tun es dann auch.

Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Haubitze



Anmeldungsdatum: 14.10.2009
Beiträge: 100

BeitragVerfasst am: 23.10.2018, 08:37    Titel: Antworten mit Zitat

ah okay also ist das gar kein wunder das meine fenster alle an der
selben stelle stehn wenn ich einen globalen eventhandle benutze, richtig?

wenn dem so ist dann waeren natuerlich mehrere event handles besser.
fuer jedes fenster einen.

erstellen kann ich ja mehrere EventHandles anscheinend wird aber nur
der erste abgearbeitet. hab zZ aber auch noch nichts gefunden
wo ich da was aendern muesste das mehrere event handles abgearbeitet
werden.

hier mal ein demo mit source als FBEdit project, evtl hilft das ja das
problem zu erkennen.an den wichtigen stellen hab ich auch ein paar
kommentare hinterlassen.
http://users.freebasic-portal.de/haubitze/sGUI-Windows.7z
wichtig hierbei ist eigendlich nur IWindow.bi da dort alles fuer ein standart
fenster geschieht.
(den rest muss man dann halt im kind behandeln siehe ColorPicker.bi)

salute
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 511
Wohnort: Jüterbog

BeitragVerfasst am: 23.10.2018, 17:32    Titel: Antworten mit Zitat

Hab mich mal inspirieren lassen von deinem Code... etwas Geduld ist von Nöten... fliegt einiges durcheinander zwinkern

Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Haubitze



Anmeldungsdatum: 14.10.2009
Beiträge: 100

BeitragVerfasst am: 11.11.2018, 12:49    Titel: Antworten mit Zitat

Hey Motton,

wollte mal nachfragen wie du vorran kommst?
giebt es schon etwas neues mit dem man spielen kann?

salute
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 511
Wohnort: Jüterbog

BeitragVerfasst am: 18.11.2018, 09:49    Titel: Antworten mit Zitat

...auch wenn es nicht so aussieht, es passiert schon etwas:
nach einigen Fehlversuchen nun dieser Ansatz:

alles soll in einer sauberen(?) Hirachie geordnet sein. Also ein klare Parent<->Child Beziehung
es gibt nun 2 Types: Gadget und Window

(Obwohl,beides ist letzlich irgendwie das gleiche)

Gadget:
*ist immer(!) Child-Objekte eines Windows
*kann ein(und nur ein) eigenes Child-Window enthalten. Dies ermöglicht dann auch die zusammengesetzten Gadgets

Window:
*kann Child eines Gadgets als auch eines Windows sein
*besitzt eine (Child-)GadgetListe
*besitzt eine (Child-)WindowListe
*übernimmt einige Funktionen des Eventhandles beschränkt aufs jeweilige Window.

MCP:
Da Gadgets und Windows erst einmal passive,"tote" Objekte sind, braucht man nun noch das MasterControlProgram.
Es sucht den gesamten Hirachiebaum (oder nur einen Teil dessen) ab und führt entsprechende Aktionen aus.

Bedingt durch diese Hierachie-Kontruktion gibt es nun ein RootWindow, das den Einstiegspunkt fürs Gesamte darstellt.

Wie gut das "Signaldurchschleifen" funktioniert, kannst du in der Demo sehen.
Als nächstes werde ich alle vorhandenen Gadgets an dieses System anpassen.
Das Menü-System wird komplett neu geschrieben werden müssen.

FensterHandling....Close/Open,Bewegung und Fensterstapelhandling (wie nennt man sowas richtig XD) usw.

Drawing/Refresh.... ich vermute es wird auf eine Art frame-basierenden Neuzeichnen hinauslaufen.

Mutton
https://1drv.ms/u/s!AsTPhVzcfzRrht47ft54RCtRdJZOfQ
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Haubitze



Anmeldungsdatum: 14.10.2009
Beiträge: 100

BeitragVerfasst am: 18.11.2018, 12:43    Titel: Antworten mit Zitat

auweija, da hab ich ja was angerichtet ;D

gefaellt mir aber gut, funktioniert flott und wie gewohnt einfach.
nur das erzeugen der fenster is noch etwas umstaendlich aber das wirst
du ja auch noch implementieren, wenn ich den kommentar im code richtig lese.

aber gut zumindest hab ich wieder was mit dem ich spielen kann.
auf jeden fall danke ich dir fuer deine muehen. lächeln

salute
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Seite 10 von 10

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz