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

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 24.08.2009, 18:41 Titel: 2 oder Mehrer Grafikfenster |
|
|
Hi liebe Community
Ich hab eine frage und zwar: ist es realisierbar das ein FB-Proggi 2 oder mehrer FBGrafik Ausgabefenster steuern kann?
Beispiel: Programm.exe öffnet ein Fenster mit 200x300 und eins mit
640x480 und beide lassen sich mit FB bemalen und seperat steuern...
wäre das vllt möglich mit Hilfe von Threads? ich will nicht für jedes Fenster ein Programm schreiben müssen.. denn das kommunizieren der Programme ist mir zu aufwendig...
hoffe jemand hat eine kleine Lösung
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: 25.08.2009, 07:21 Titel: |
|
|
Nop .. das geht nicht direkt mit FB befehlen. Aber mit API bzw unter linux mit X, ist es möglich das zu tun.
Für X (Linux) hätte ich sogar n beispiel irgen wo rumliegen. für Win jedoch nicht ... da musst du dann wohl direkt mit der CreateWindow-API arbeiten.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 25.08.2009, 09:49 Titel: |
|
|
Doch gibbet.. aber nich besonders komfortabel.
Ich muss den link noch mal suchen, aber prinzipiell funktioniert es so:
Man kompiliert eine DLL in der eine Funktion einen Screen aufruft. Diese DLL beinhaltet dann noch funktionen zum Zeichnen ("LINE, CIRCLE, DRAW STRING" etc.. alles nochmal neu programmiert!)
Lädt man nun diese DLL in sein Hauptprogramm und startet die Funktion zum Screen-aufruf kann man ein 2. fbgfx fenster zum Hauptprogramm eigenen öffnen. Dieses 2. Fenster hat aber den großen nachteil das dort nur Funktionen zugriff drauf haben die in der DLL hinterlegt sind.
Diese existierende lösung geht noch einen schritt weiter um mehrere fbgfx-fenster zu öffnen: Zur laufzeit kopiert es diese DLL x-mal ins lokale verzeichnis und öffnet deren kopien und startet dort die entsprechenden funktionen zum aufrufen des Screens.
Großer nachteil: Man kann keine "normalen" fb-grafikanweisungen auf diese fenster anwenden.
Vorteil: Die fenster arbeiten komplett unabhängig voneinander.
Ich glaub das war irgendwo im englischen forum, oder wars gar hier im deutschen!? .. werds bei nächster gelegenheit einfach noch mal suchen
Sonst googelt einfach mal ein bischen  |
|
Nach oben |
|
 |
qbasicfan gesperrt (Wird das nicht langweilig?)
Anmeldungsdatum: 29.07.2009 Beiträge: 45
|
Verfasst am: 25.08.2009, 13:06 Titel: |
|
|
Jup, das is ja interessant.
Kannste dazu noch weitere Sachen bringen?
Ein Beispiel?
mfg |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 25.08.2009, 14:31 Titel: |
|
|
hier hatte ich mal sowas gefragt:
http://forum.qbasic.at/viewtopic.php?t=5261
da war ne antwort von ytwinky aber der link scheint nicht mehr zu funktionieren .. da war der quellcode für genau so ein beispielprogramm! |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 27.08.2009, 17:06 Titel: ja cool |
|
|
danke leute für die Antworten... also nen einfachen weg scheints wohl nicht zu geben... wär ja mal nen kleiner ansatz für die FB-Entwickler vllt. einen screen ptr aufzuspalten oder das man zb einen zusätzlichen screen ptr(quasi ein neues fenster) definieren kann...
und achja @oneCypher OneCypher hat Folgendes geschrieben: | Lädt man nun diese DLL in sein Hauptprogramm und startet die Funktion zum Screen-aufruf kann man ein 2. fbgfx fenster zum Hauptprogramm eigenen öffnen. Dieses 2. Fenster hat aber den großen nachteil das dort nur Funktionen zugriff drauf haben die in der DLL hinterlegt sind.
Diese existierende lösung geht noch einen schritt weiter um mehrere fbgfx-fenster zu öffnen: Zur laufzeit kopiert es diese DLL x-mal ins lokale verzeichnis und öffnet deren kopien und startet dort die entsprechenden funktionen zum aufrufen des Screens.
|
das kommt mir sehr unelegant und langsam vor aba ziemlich einfallsreich... bloß der Code würde wahrscheinlich ein großes durcheinander werden...
schade das der Link von Ytwinky net mehr geht...
vllt nehm ich doch nen Dateipuffer is zwar elend Laaangsam...
ne schnelle möglichkeit wäre auch noch LokalTCP IP mit Serverfenster und clienten.. aber irgendwie auch nich sehr komfortabel.. noch andre ideen?
ansonsten danke für die Antworten
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 |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 27.08.2009, 17:16 Titel: |
|
|
Ähm wie wärs mit nem anderen Grafikframework? GLFW, SDL; Es gibt die echt wie Sand am Meer... |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 27.08.2009, 17:42 Titel: |
|
|
Weil es nicht schlecht wäre, das ohne größere Umstände mit FB machen zu können. |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 27.08.2009, 21:39 Titel: |
|
|
Es geht _prinzipiell_ mit der fbgfx nativ eben nicht. Es geht _nicht_. PUNKT |
|
Nach oben |
|
 |
qbasicfan gesperrt (Wird das nicht langweilig?)
Anmeldungsdatum: 29.07.2009 Beiträge: 45
|
Verfasst am: 28.08.2009, 11:17 Titel: |
|
|
Kennst du dies Programm von D.J.Peters aka Joshy?
Der Link funktioniert nicht mehr. Wer hat zu D.J.Peters noch Verbindung?
Er hat ansatzweise ein Programm geschrieben, wo es funktioniert bzw ist einen Weg dahin gegangen.
Als Hobbyprogrammierer darf man nicht sofort aufgeben und in die Luft springen wie ein HB-Männchen.
mfg
peter |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 28.08.2009, 14:58 Titel: |
|
|
Och qbasicfan halt doch mal deinen unfähigen Mund. Nicht sofort aufgeben, dass ich nicht lache. Im Vergleich zu dir bin vermutlich sogar ich ein Programmierergott.  |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 28.08.2009, 15:23 Titel: |
|
|
@qbasicfan: "D.J.Peters" ist im englischen Forum aktiv. --> http://freebasic.net/forum/
Versuche einmal dort zu fragen.
@Mr.(1337)²: Es wäre vl. einmal angebracht wenn du dich etwas freundlicher ausdrücken würdest.
Nachtrag: @Jojo: Achso, ich kenne "qbasicfan" nicht persönlich und mir ist noch nichts Sperr-würdiges aufgefallen. _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Zuletzt bearbeitet von St_W am 28.08.2009, 15:32, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 28.08.2009, 15:25 Titel: |
|
|
Es wäre mal angebracht, Pebi endlich zu sperren. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 28.08.2009, 15:36 Titel: |
|
|
D.J.Peters ... hatte ne inc für X geschrieben ... die hab ich auch hier liegen.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
qbasicfan gesperrt (Wird das nicht langweilig?)
Anmeldungsdatum: 29.07.2009 Beiträge: 45
|
Verfasst am: 28.08.2009, 17:05 Titel: |
|
|
Das Streitgespräch mit D.J.Peters habe ich hier im Forum gelesen.
Hat einigen nicht gefallen. Aber die Wahrheit muss raus. D.J.Peters ist ein hervorragender Programmierer.
Und mir geht es hier um eine Hilfe und nicht um eine Diskussion.
mfg
peter |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 31.08.2009, 08:56 Titel: |
|
|
Wer ist Pebi und warum artet das hier grade so aus?.. ich kann gerne mal ein beispiel proggn wo man zumindest 2 fenster ansteuern kann... so schwierig ist es ja nicht ein paar grafik anweisungen in eine DLL zu packen und zu starten... |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 31.08.2009, 09:46 Titel: |
|
|
So, probiert bitte folgendes mal aus:
Erst die DLL kompilieren (bitte "screenDLL.bas" benennen damit das Hauptprogramm die DLL finden kann!)):
Code: |
'FBGFX-2.Fenster (muss kompiliert werden mit fbc -dll -export)
'Ruft einen Screen auf
sub screen2 cdecl alias "screen2"(W as integer, H as integer, D as integer) export
screenres W,H,D
end sub
'Stellt den inhalt eines Buffers auf dem Screen dar
sub Refresh cdecl alias "refresh"(buffer as any ptr) export
Put(0,0), buffer,PSET
end sub
|
Und dann hier das Hauptprogramm (ohne Parameter kompilieren):
Code: |
dim i2 as any ptr
dim dll as any ptr
Dim Screen2 as sub cdecl (w as integer,h as integer, d as integer)
Dim Refresh as sub cdecl (buffer as any ptr)
dll = DYLIBLOAD("screenDLL.dll")
screen2 = DYLIBSYMBOL( dll, "screen2" )
refresh = dylibsymbol( dll, "refresh" )
screenres 400,400,32
screen2(300,300,32)
i2 = imagecreate(300,300)
line(0,0)-(400,400),RGB(255,0,0),BF
line i2,(0,0)-(300,300),RGB(0,255,0),BF
refresh(i2)
sleep
|
Hab im Prinzip einen Umweg benutzt:
Ich erzeuge im Hauptprogramm einen Buffer mit der größe des 2. Fensters.
Dieser Buffer wird dann in der Funktion "refresh" im 2. Fenster dargestellt.
Sonst ist der Code ja noch sehr übersichtlich... aber für fragen bin ich natürlich immer gerne da  |
|
Nach oben |
|
 |
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 31.08.2009, 17:36 Titel: |
|
|
Nur leider funktionieren Getmouse in Inkey in dem 2. Fenster nicht .. anscheinend wirklich nur gut um was zusätzliches anzuzeigen.. aber vielleicht hat ja noch jemand eine Idee wie man das auch hinbekommt? |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 31.08.2009, 18:12 Titel: |
|
|
OneCypher hat Folgendes geschrieben: | Wer ist Pebi und warum artet das hier grade so aus?.. ich kann gerne mal ein beispiel proggn wo man zumindest 2 fenster ansteuern kann... so schwierig ist es ja nicht ein paar grafik anweisungen in eine DLL zu packen und zu starten... |
Das könnte dir die Forensuche beantworten. pebi aka robbifan aka qbasicfan aka atari aka ............ ist ein troll, der hier hausverbot hat und sich trotzdem immer wieder anmeldet. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 31.08.2009, 18:27 Titel: |
|
|
ja danke für die Antworten auch wenn ich kein plan hab was ihr da über pebi qbasicfan oda so faselt aba auch egal...
@oneCypher die idee is eigentlich net schlecht.. und ich vermute mal, dass man jeden Befehl, den das neue (2te) fenster ausführen können soll, mit in die DLL packen muss.. also GetMouse und Inkey oda Multikey halt umgewandelt mit in die DLL oda so das werd ich gleich mal ausprobiern... is aba wie gesagt ziemlich umständlich aba eigentlich immernoch besser als ein Dateibuffer und 2 oder mehr EXEn
euer d1rty h4rrry _________________ "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 |
|
 |
|