Kjeksen Skrevet 2. mai 2005 Del Skrevet 2. mai 2005 (endret) Jeg skal åpne en exe fil ved hjelp av en knapp. Her er koden så langt. ( Jeg bruker FLTK ) #include <FL/Fl.H> #include <FL/Fl_Window.H> #include <FL/Fl_Button.H> #include <cstdlib> void exit(Fl_Widget *x, void *y) { exit(0); } void startCS(Fl_Widget *x, void *y) { system("C:\div.prog\CS\cstrike.exe"); } int main (int argc, char *argv[]) { Fl_Window* window; Fl_Button* button; Fl_Button* buttonStart; window = new Fl_Window(600, 400); button = new Fl_Button(260, 320, 80, 80, "EXIT"); buttonStart = new Fl_Button(260, 0, 50, 50, "CS"); button->labelsize(20); button->labelfont(FL_ITALIC); buttonStart->labelsize(20); buttonStart->labelfont(FL_ITALIC); button->callback(exit, NULL); buttonStart->callback(startCS, NULL); window-> end(); window-> show(argc, argv); return Fl::run(); } Her eg også en knapp som avslutter programmet. Men skjønner ikke helt hvorfor jeg ikke får åpnet den exe fila med "CS" knappen. takker for all hjelp. Endret 2. mai 2005 av Kjeksen Lenke til kommentar
kyrsjo Skrevet 2. mai 2005 Del Skrevet 2. mai 2005 Prøv å legg inn en printf i funksjonen "startCS". Da vet du i alle fall om prosedyren kjøres... Lenke til kommentar
Kjeksen Skrevet 2. mai 2005 Forfatter Del Skrevet 2. mai 2005 gjorde det, men det skjedde ikke akkurat noe. Det eneste jeg egentlig trenger er en enkel måte og kjøre exe fil på. Kanskje uten å bruke system også? Lenke til kommentar
Kjeksen Skrevet 4. mai 2005 Forfatter Del Skrevet 4. mai 2005 Noen som vet hvordan man lukker et spesifisert vindu i en annen funksjon i FLTK? for eks. visst man trykker på help, så kommer det opp vindu, og i help vinduet er det for eks. en ok knapp, dersom man trykker på den forsvinner help vinduet only. Det går ikke an og bruke exit(0) for da avslutter man jo hele programmet. Bruker fortsatt FLTK. Lenke til kommentar
☀ ❄ Skrevet 4. mai 2005 Del Skrevet 4. mai 2005 virtual void Fl_Window::hide() Remove the window from the screen. If the window is already hidden or has not been shown then this does nothing and is harmless. Lenke til kommentar
drall Skrevet 5. mai 2005 Del Skrevet 5. mai 2005 system("C:\div.prog\CS\cstrike.exe"); Nå bruker jeg så og si aldri system-funksjonen, men jeg vil anta du må bruke fremover skråstrek "/" selv i windows. Lenke til kommentar
Dead_Rabbit Skrevet 5. mai 2005 Del Skrevet 5. mai 2005 (endret) Nei.. Er ganske sikker på at man ikke må det. Edit: Men.. Må man ikke gjøre slik: system("C:\\div.prog\\CS\cstrike.exe"); ? Mener å huske at det var noe sånt noe, er ikke sikker.. Endret 5. mai 2005 av zirener Lenke til kommentar
☀ ❄ Skrevet 5. mai 2005 Del Skrevet 5. mai 2005 Om jeg husker rett skal begge deler ('/' og '\\') fungere. Lenke til kommentar
Kjeksen Skrevet 5. mai 2005 Forfatter Del Skrevet 5. mai 2005 men ikke '\' ? mener jeg har lest noe om det faktisk.. Lenke til kommentar
Kjeksen Skrevet 5. mai 2005 Forfatter Del Skrevet 5. mai 2005 virtual void Fl_Window::hide() Remove the window from the screen. If the window is already hidden or has not been shown then this does nothing and is harmless. Kan du vise meg et lite eksempel på hvordan man bruker den i en funksjon? Synst at dokumentasjonen til FLTK er heller dårlig, ivertfall på eksempel delen. Lenke til kommentar
drall Skrevet 5. mai 2005 Del Skrevet 5. mai 2005 (endret) Jeg synes dokumentasjonen er bra jeg. Fl_Window *window=new Fl_Window(x,y); ... ... //Når du vil gjemme vinduet: window->hide(); "\" er vel escape-key i tekst-strenger. Endret 5. mai 2005 av drall Lenke til kommentar
Kjeksen Skrevet 5. mai 2005 Forfatter Del Skrevet 5. mai 2005 (endret) Jeg synes dokumentasjonen er bra jeg. Fl_Window *window=new Fl_Window(x,y); ... ... //Når du vil gjemme vinduet: window->hide(); Ja, men her er et eksempel. Jeg har laget en meny, der jeg har blant annet disse tingene: File og help. Visst jeg trykker "help" skal det poppe opp et vindu. I dette vinduet er det også en "Ok" knapp, så jeg må bruke button->callback(funksjon); ( eller er det andre måter og gjøre dette på? ) når jeg har trykt på "ok" knappen skal help vinduet forsvinne. Visst jeg skal gjøre det med callback så hopper den til en funksjon, men da har ikke denne funksjonen tilgang til å gjøre noe med help vinduet. Endret 5. mai 2005 av Kjeksen Lenke til kommentar
drall Skrevet 5. mai 2005 Del Skrevet 5. mai 2005 (endret) Da bruker du Fl_Widget-pekeren som blir sendt med callback-funksjonen. Evt. kan du spare deg vinduet og bruke fl_message-funksjonen i stedet. Endret 5. mai 2005 av drall Lenke til kommentar
Kjeksen Skrevet 5. mai 2005 Forfatter Del Skrevet 5. mai 2005 Da bruker du Fl_Widget-pekeren som blir sendt med callback-funksjonen. Evt. kan du spare deg vinduet og bruke fl_message-funksjonen i stedet. Hm? kan du gi meg et eksempel? startet med FLTK for et par dager siden. Skal teste Fl_Message nå Lenke til kommentar
drall Skrevet 5. mai 2005 Del Skrevet 5. mai 2005 (endret) Det ble litt vagt må jeg inrømme. Slik jeg forstår det blir det sendt med en Fl_Widget-peker med callback-en. Denne peker til widgeten som utførte kallet. En Fl_Widget har også en parent-funksjon som returnerer en peker til gruppen widgeten hører til under (ofte et vindu). EDIT: La inn litt sikring så ingen brenner seg på copy/paste. void xyz_callback(Fl_Widget *w, void *data) { Fl_Group *parent=w->parent(); if(parent->type()==FL_WINDOW) ((Fl_Window*)parent)->hide(); } Noe slikt burde vel fungere, om jeg har forstått det rett. Ellers er det vel mulig å sende Fl_Window-pekeren med som void *data. Jeg anbefaler deg likevel å titte på fl_message() for en lettvint måte å gi en beskjed med ok-knapp. Endret 5. mai 2005 av drall Lenke til kommentar
Kjeksen Skrevet 5. mai 2005 Forfatter Del Skrevet 5. mai 2005 Testet fl_ask("Blabla"), da kom det fram også en yes og en no knapp. Lenke til kommentar
Kjeksen Skrevet 5. mai 2005 Forfatter Del Skrevet 5. mai 2005 Men takker! det funket. Nå har jeg en ok knapp, og når jeg trykker på den forsvinner help vinduet. Lenke til kommentar
Kjeksen Skrevet 5. mai 2005 Forfatter Del Skrevet 5. mai 2005 (endret) Noen som kan gi noen eksempler på hvordan man lagrer en tekst fra en Fl_Input til et for eks. char tekst[10] ? Kanskje Fl::input() er tingen? Endret 5. mai 2005 av Kjeksen Lenke til kommentar
☀ ❄ Skrevet 6. mai 2005 Del Skrevet 6. mai 2005 const char *Fl_Input::value() const int Fl_Input::value(const char*) int Fl_Input::value(const char*, int) The first form returns the current value, which is a pointer to the internal buffer and is valid only until the next event is handled. The second two forms change the text and set the mark and the point to the end of it. The string is copied to the internal buffer. Passing NULL is the same as "". This returns non-zero if the new value is different than the current one. You can use the second version to directly set the length if you know it already or want to put nul's in the text. ...jeg tror du må øve deg litt på å lese dokumentasjon Lenke til kommentar
Kjeksen Skrevet 6. mai 2005 Forfatter Del Skrevet 6. mai 2005 const char *Fl_Input::value() constint Fl_Input::value(const char*) int Fl_Input::value(const char*, int) The first form returns the current value, which is a pointer to the internal buffer and is valid only until the next event is handled. The second two forms change the text and set the mark and the point to the end of it. The string is copied to the internal buffer. Passing NULL is the same as "". This returns non-zero if the new value is different than the current one. You can use the second version to directly set the length if you know it already or want to put nul's in the text. ...jeg tror du må øve deg litt på å lese dokumentasjon Ja seff, men det jeg missliker sterkt er at det ikke er eksempler på ting og tang. Skal jo liksom lære det og da er det så koselig med eksempler som viser hvordan det faktisk fungerer. Og jeg er LAAANGT ifra stø på FLTK siden jeg startet med det for fullt for et par dager siden Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå