|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Emporea1997
Anmeldungsdatum: 07.07.2011 Beiträge: 58
|
Verfasst am: 26.07.2011, 17:40 Titel: |
|
|
muss man um das entprodukt ausführen zu können irgend was installieren wie net framework bei visual basic? |
|
Nach oben |
|
|
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 26.07.2011, 17:59 Titel: |
|
|
Natürlich. Die entsprechende Runtime muss im %PATH% oder in einem anderen Suchpfad liegen. Üblicherweise würdest du also die wx-c Runtime (vermutlich sowas wie wx-c-versionsnummer.dll) mit deinem Programm mitliefern. |
|
Nach oben |
|
|
MOD Fleißiger Referenzredakteur
Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 26.07.2011, 18:01 Titel: |
|
|
Wenn du die 0.3er Version des Designers nutzt, brauchst du, wie im Thread beschrieben, den dazugehörigen Wrapper, der sich im Link dahinter verbirgt. Bei der 0.2er Version brauchst du nur die enthaltene wx-c.dll. |
|
Nach oben |
|
|
Emporea1997
Anmeldungsdatum: 07.07.2011 Beiträge: 58
|
Verfasst am: 26.07.2011, 18:09 Titel: |
|
|
und wie bringe ich diesen Wrapper ein?
ich habe echt keine ahnung von so einem zeug usw... |
|
Nach oben |
|
|
MOD Fleißiger Referenzredakteur
Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 26.07.2011, 18:18 Titel: |
|
|
Deswegen liegt da eine Readme bei. Du musst im Grunde den Ordner wx-c 0.9.2 in deinen inc-Ordner deiner FreeBASIC-Installation und die .lib.a aus dem Ordner /lib/win32 in die gleiche Ordnerstruktur deiner FreeBASIC-Installation kopieren. Danach kannst du die vom Designer erzeugten Codes ganz normal starten, sofern du die wx-c-0-9-0-2.dll im gleichen Ordner wie die erstellte Exe hast. |
|
Nach oben |
|
|
Emporea1997
Anmeldungsdatum: 07.07.2011 Beiträge: 58
|
Verfasst am: 26.07.2011, 18:25 Titel: |
|
|
das is mir zuviel . ich machs lieer mit der vorherigen version. aber is da was schlechter dran?? also zumindest hab ich gemerkt das man keine erstellten sachen erneut bearbeiten kann und das is echt doof... |
|
Nach oben |
|
|
MOD Fleißiger Referenzredakteur
Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 26.07.2011, 18:52 Titel: |
|
|
Die alte Version nutzt halt die alte Version vom Wrapper und da sind sicher einige Bugs mehr drin als in der neuen.
Der Designer spuckt im Moment nur Code aus, heißt du kannst die Positionen im Code auch noch anpassen. Ich werde jetzt aber an einer Methode arbeiten, damit man auch die Forms speichern kann, das wird aber einige Vorarbeit brauchen weil ich noch mehr plane, wird also noch etwas dauern. |
|
Nach oben |
|
|
Emporea1997
Anmeldungsdatum: 07.07.2011 Beiträge: 58
|
Verfasst am: 26.07.2011, 18:57 Titel: |
|
|
ja aber ich check das ned mit dem wrapper. kannsnte das nochmal ausführlich erklären?
und zweitens zumindest bei der alten version ist es so dass er wenn man menüs erstellt er in der bas datei die gleiche variable nimmt und somit das ding ned funzt. das kann man zwar per hand immer ändern aber sobald man es neu abspecihert überschreibt er es wieder |
|
Nach oben |
|
|
Emporea1997
Anmeldungsdatum: 07.07.2011 Beiträge: 58
|
Verfasst am: 26.07.2011, 19:17 Titel: |
|
|
ach und noch was . da steht wenn man das den vwx öffnen will dass die datei msvcr71.dll fehle. ich habe einfach mal auf meinem komplettem rechner gesucht und fand die datei 5 mal. einmal in java, einmal in einem computer spiel und noch in ein paar quellen. ich habe mir einfach die datei kopiert und es ging. aber ist das so richtig?! |
|
Nach oben |
|
|
MOD Fleißiger Referenzredakteur
Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 26.07.2011, 20:14 Titel: |
|
|
wx-c ist nicht die eigentliche Programmbibliothek für die Grafik sondern wxWidgets. Das ist aber in C++ geschrieben und zur Zeit kann FB das eben noch nicht direkt einbinden. wx-c ist der C-Wrapper dafür, er hüllt die C++ Funktionen in einfache C-Funktionen, die FB versteht. Der eigentliche Wrapper ist die dll. Um darauf zuzugreifen brauchst du sog. Header. Das sind die Dinger, die im Code ganz oben mit INCLUDE eingefügt werden. Darin sind die Funktionen definiert, so dass FB weiß, wo in der dll die entsprechende Funktion ist (bzw welche Funktionen darin sind). Der alte Designer baut auf dem alten Wrapper auf, auf der Versoin 0.7.2, der eneuauf der Version 0.9.2.
Der Menü-Bug ist ein Fehler des Designers und ist in der neuen Version schon lange behoben.
Da der Designer zur Zeit nur ausgibt, ist ihm natürlich egal was du da per Hand im Code machst, das wird sich auch nicht ändern.
Die msvcr71.dll ist die C Runtime von Microsoft und liegt für gewöhnlich in "%windir%\system32\". Da du sie extra besorgen musstest heißt, dass sie bei dir nicht dort liegt. |
|
Nach oben |
|
|
Emporea1997
Anmeldungsdatum: 07.07.2011 Beiträge: 58
|
Verfasst am: 26.07.2011, 21:12 Titel: |
|
|
ist das jetzt schlecht dass sie da nicht liegt? oer soll ich sie einfach mal reinkopieren? |
|
Nach oben |
|
|
Emporea1997
Anmeldungsdatum: 07.07.2011 Beiträge: 58
|
Verfasst am: 26.07.2011, 21:14 Titel: |
|
|
noch eine frage. kann man das fenster so einstellen dass wie bei gtk sich die größe verändern lässt und dabei das verhältnis sich automatisch anpasst?
wenn nicht dann muss ich doch wieder auf gtk umsteigen... denn diese funktion ist bei dem programm was ich vorhabe sehr wichtig |
|
Nach oben |
|
|
MOD Fleißiger Referenzredakteur
Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 26.07.2011, 22:01 Titel: |
|
|
Du musst sie nicht reinkopieren, bei so einer Lib würde es sich aber empfehlen.
Das geht schon, allerdings musst du das per Hand im Code machen. Wenn du z.B. beim wxFrame_Create() das "Xor wxRESIZE_BORDER" rausstreichst, kannst du das Fenster schon mal verändern, wenn du dann noch die Widgets der Größe anpassen willst, musst du das 'wxEvent_EVT_SIZE' vom Hauptfenster abfangen und dann deine Widgets neu zeichnen lassen mit angepassten Größen.
Das könnte dann so aussehen:
Code: | #Include "wx-c 0.9.2/wx.bi"
Declare Sub button0_event WXCALL ( event As wxEvent Ptr, iListener As wxInt )
Declare Sub eventsub ( event As wxEvent Ptr, iListener As wxInt )
Dim Shared As wxApp Ptr wx_app
Dim Shared As wxFrame Ptr wx_frame
Dim Shared As wxPanel Ptr wx_panel
Dim Shared As wxTextCtrl Ptr textctrl0
Dim Shared As wxButton Ptr button0
Dim Shared As wxStaticLine Ptr staticline0
Function App_OnInit WXCALL( ) As wxBool
wx_frame = wxFrame_ctor( )
wxFrame_Create(wx_frame, WX_NULL, -1, wxString_ctorUTF8("test01"), _
-1, -1, 390, 390, wxFRAME_DEFAULT_STYLE _
Or wxCLOSE_BOX _
Xor wxMAXIMIZE_BOX, NULL )
wx_panel = wxPanel_ctor2(wx_frame, _
-1, -1, -1 , -1, -1 , _
0, WX_NULL)
wxEvtHandler_proxy( wx_panel, Cast(EventListener, @eventsub) )
wxEvtHandler_Connect( wx_panel, wxEvent_EVT_SIZE( ), -1, -1, 0 )
''
'' create widget button0
''
button0 = wxButton_ctor()
wxButton_Create( button0, wx_panel, -1, wxString_ctorUTF8("button0"), _
70, 270, 250, 60 , 0, 0, WX_NULL )
wxEvtHandler_proxy(button0, @button0_event)
wxEvtHandler_Connect(button0, _
wxEvent_EVT_COMMAND_BUTTON_CLICKED(), _
-1, -1, 0)
''
'' create widget staticline0
''
staticline0 = wxStaticLine_ctor( )
wxStaticLine_Create(staticline0, wx_panel, -1, _
30, 250 , 330, 10, 0, WX_NULL)
''
'' create widget staticbox0
''
Dim As wxStaticBox Ptr staticbox0
staticbox0 = wxStaticBox_ctor( )
wxStaticBox_Create( staticbox0, wx_panel, -1, wxString_ctorUTF8("staticbox0"), _
10, 10 , 120, 90, 0, WX_NULL)
''
'' create widget checkbox0
''
Dim As wxCheckBox Ptr checkbox0
checkbox0 = wxCheckBox_ctor( )
wxCheckBox_Create(checkbox0, staticbox0, -1, wxString_ctorUTF8("checkbox0"), _
10, 20, -1, -1, 0, 0, WX_NULL)
wxCheckBox_SetValue( checkbox0, 0 )
''
'' create widget checkbox1
''
Dim As wxCheckBox Ptr checkbox1
checkbox1 = wxCheckBox_ctor( )
wxCheckBox_Create( checkbox1, staticbox0, -1, wxString_ctorUTF8("checkbox1"), _
10, 40 ,-1, -1 , 0, 0, WX_NULL)
wxCheckBox_SetValue( checkbox1, 0 )
''
'' create widget checkbox2
''
Dim As wxCheckBox Ptr checkbox2
checkbox2 = wxCheckBox_ctor( )
wxCheckBox_Create( checkbox2, staticbox0, -1, wxString_ctorUTF8("checkbox2"), _
10, 60 , -1, -1 , 0, 0, WX_NULL)
wxCheckBox_SetValue( checkbox2, 0 )
''
'' create widget textctrl0
''
'Dim As wxTextCtrl Ptr textctrl0
textctrl0 = wxTextCtrl_ctor( )
wxTextCtrl_Create( textctrl0, wx_panel, -1, wxString_ctorUTF8("textctrl0"), _
40, 220 , 310, 21 , 0, 0, WX_NULL)
wxWindow_Show( wx_frame, 1 )
wxApp_OnInit( wx_app )
Return 1
End Function
Function App_OnExit WXCALL As wxInt
Return wxApp_OnExit( wx_app )
End Function
Sub button0_event WXCALL (event As wxEvent Ptr, iListener As wxInt )
Select Case wxEvent_GetEventType( event )
Case wxEvent_EVT_COMMAND_BUTTON_CLICKED
wxTextCtrl_SetValue(textctrl0, wxString_ctorUTF8("Blabla"))
End Select
End Sub
Sub eventsub ( event As wxEvent Ptr, iListener As wxInt )
Static As wxInt last_w
Dim As wxInt w, h, panelw
Dim As wxSize Ptr temp = wxSize_ctor( -1, -1 )
Dim As wxSize Ptr paneltemp = wxSize_ctor( -1, -1 )
wxWindow_GetClientSize( wx_panel, paneltemp )
panelw = wxSize_GetWidth( paneltemp )
If last_w = 0 Then
last_w = panelw
wxEvent_Skip(event, 0)
EndIf
wxWindow_GetClientSize( textctrl0, temp )
w = wxSize_GetWidth( temp )
h = wxSize_GetHeight( temp )
wxWindow_SetClientSize( textctrl0, w-(last_w-panelw), h )
wxWindow_GetClientSize( button0, temp )
w = wxSize_GetWidth( temp )
h = wxSize_GetHeight( temp )
wxWindow_SetClientSize( button0, w-(last_w-panelw), h )
wxWindow_GetClientSize( staticline0, temp )
w = wxSize_GetWidth( temp )
h = wxSize_GetHeight( temp )
wxWindow_SetClientSize( staticline0, w-(last_w-panelw), h )
last_w = panelw
End Sub
''main
wx_app = wxApp_ctor()
wxApp_RegisterVirtual(wx_app, @App_OnInit, @App_OnExit)
wxApp_Run()
|
(Code für neuen Wrapper) |
|
Nach oben |
|
|
Emporea1997
Anmeldungsdatum: 07.07.2011 Beiträge: 58
|
Verfasst am: 26.07.2011, 22:18 Titel: |
|
|
wenn ich die komplimierte exe jetzt starten will , läuft es zwar aber es kommt die fehler meldung dass die datei comctl32.dll fehlt... was ist das? |
|
Nach oben |
|
|
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 26.07.2011, 22:34 Titel: |
|
|
Hast du Windows 3? Bei jedem Windows >= 95 sind die Common Controls vorinstalliert. |
|
Nach oben |
|
|
Emporea1997
Anmeldungsdatum: 07.07.2011 Beiträge: 58
|
Verfasst am: 26.07.2011, 22:36 Titel: |
|
|
ich habe windows 7. ist das jetzt was schlechtes??
is mein pc kaputt weil der soviele sachen nicht hat?? |
|
Nach oben |
|
|
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 26.07.2011, 22:41 Titel: |
|
|
Haha du hast die dein Windows nur mit hoher Wahrscheinlichkeit ausm Netz gezogen und der Cracker hat etwas übereifrig aufgeräumt D: oder du hast deinen %PATH% kaputt gebastelt |
|
Nach oben |
|
|
Emporea1997
Anmeldungsdatum: 07.07.2011 Beiträge: 58
|
Verfasst am: 26.07.2011, 22:42 Titel: |
|
|
nein flasch. ich habe mir legal im euronics windows 7 professional gekauft.. |
|
Nach oben |
|
|
Emporea1997
Anmeldungsdatum: 07.07.2011 Beiträge: 58
|
Verfasst am: 26.07.2011, 22:43 Titel: |
|
|
soll ich villeicht mein windows neu aufsetzen?? |
|
Nach oben |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 27.07.2011, 01:10 Titel: |
|
|
@28398 ... Es kann auch gut sein, da auf Win Vista & Win 7 die Common Controls garnicht mehr vorhanden sind. (Dank .NET) (aber, weis ich nicht genau) _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
|
|
|
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.
|
|