NWinApi 0.2

Sem vkládejte editovatelné kusy kódu a tutoriály.
Odpovědět
Uživatelský avatar
Nichar
Redaktor
Příspěvky: 435
Registrován: srpen 6, 2011, 1:51 pm
Facebook: http://www.facebook.com/nikolas.charalambidis
Bydliště: Praha

NWinApi 0.2

Příspěvek od Nichar » červenec 15, 2012, 2:52 pm

Hoj,
představuji vám svou .gex, která do GM přidá vzhled Win aplikací. Sice je ještě ve fázi vývoje, i přesto nabízí spoustu prvků. Některé z nich se také objeví v mé hře pro Letní soutěž VCH 2012!

Download
MIRROR 1
MIRROR 2

Screen
http://www.freeimagehosting.net/zy9gi

Jak to funguje?
Napřed musíte rozbalit .zip soubor a nainstalovat GEX knihovnu (jednoduché do 10 sec.)
  • GM -> Resources -> Select Extension Packages -> Vyberete NWinApi 0.2
Pak se musí vše nastavit:

Kód: Vybrat vše

nwa_define("nwa/data/"); // Deklarace všeho potřebného
nwa_set_background(); // Nastavení barvy pozadí
A potom se vytvoří vložením jednoho řádku kódu do create:

Kód: Vybrat vše

a=nwa_create_button(x,y,width,str,enable); // Vytvoří tlačítko
b=nwa_create_checkbox(x,y,text,check,enable); // Vytvoří checkbox (zaškrtávácí pole)
c=nwa_create_progressbar(x,y,width,value); // Vytvoří progressbar (ukazatel postupu)
d=nwa_create_radio(x,y,text,check,enable); // Vytvoří radiobutton (zaškrtávací pole)
e=nwa_create_textbox(x,y,width,text,limit,password,enable); // Vytvoří textové pole
f=nwa_create_trackbar(x,y,width,value,lines,enable); // Vytvoří trackbar
  • x,y - souřadnice prvku
  • width - šířka
  • str, text - popisný text
  • limit - "0" pro neomezenou délku textu,"1" pro délku až ke konci (jen u textbox)
  • check - 0,1 zaškrtnutí
  • password - skrytí textu (jen u textbox)
  • lines - pomocné čárky u trackbaru (počet)
  • enable - vždy je prvek viditelný, 0,1 určuje, jestli je aktivní
Po vytvoření prvku jedním řádkem kódu se stává funkčním. Můžete na něj dále klikat, tahat apod., avšak se nic nestane. Do stepu se pak přidá jiný kód, který zaručí, že se něco stane:

Kód: Vybrat vše

ww=nwa_get_clicked(id); // Vrací 1 po klinkutí na položku
qq=nwa_get_checked(id); // Vrací 1, jestliže je položka zaškrtnutá
xx=nwa_get_text(id); // vrací text položky
yy=nwa_get_value(id); // vrací hodnotu položky (progressbar)
zz=nwa_get_width(id); // vrací šířku položky
Za takto získanými hodnotami můžeme dále pracovat:

Kód: Vybrat vše

if nwa_get_clicked(but_1) {game_end();} // Jestliže se klikne na čudlík but_1, vypne se program
Obdobným způsobem můžeme nastavovat vlastnosti prvků za chodu:

Kód: Vybrat vše

nwa_set_position(id,x,y);
nwa_set_text(id,str);
nwa_set_enable(id,enable);
nwa_set_checked(id,check);
nwa_set_value(id,value);
nwa_set_width(id,width);
Vrátím se k tomu ID. Každému prvku je přiděleno ID, se kterým můžete pracovat podobně, jako je to u particles nebo surfaces:

Kód: Vybrat vše

CUDLIK=nwa_create_button(...)
nwa_set_text(CUDLIK,"This is button");
Doufám, že se vám bude líbit a že k něčemu bude. Snad je vše dobře popsané a jednoduše srozumitelné. Není to složité jak vypadá, naopak! :)
The Scarecrow - 2. místo v prestižní soutěži, online highscore!
Symphony of good and evil: Finding the end - Soutěžní kousek (3. místo)
NWinAPI 0.2.gex | nMath.dll | nBeep.dll - Moje DLL a GEX
Vektorová galerie - Začátek mých vektorů

Uživatelský avatar
hráč
Příspěvky: 225
Registrován: srpen 6, 2011, 8:52 am
Facebook: http://facebook.com/
Kontaktovat uživatele:

Re: NWinApi 0.2

Příspěvek od hráč » červenec 15, 2012, 5:54 pm

:D hezké něco jak winApi klasické jenom že tohle je podle mě všechny ty prvky jsou naprogramovány v gm že :D ale jo dobrá práce ;) taky mám něco podobného :D ale umě je i select box :)
P.S: mohl bys k inputu ještě přidat možnost kláves CTRL + V a CTRL + X ;)
Neposedný liškovlk!
Obrázek

Uživatelský avatar
Pelpet
Příspěvky: 734
Registrován: srpen 6, 2011, 12:03 am
Bydliště: Vsetín
Kontaktovat uživatele:

Re: NWinApi 0.2

Příspěvek od Pelpet » červenec 16, 2012, 11:22 pm

Taky mám něco podobného. Můj textbox umí nejen ctrl+V a +X a +C, ale i ctrl+Z, ctrl+Y a ctrl+A. Co jsem u vás ale neviděl jsou okna. Moje api má okna, co se řadí přes sebe, umí i dialogové okna. Když se vyhodí dialog, všechno zamrzne, dokud dialog nezmizí. ;) Mno a přidat cokoliv jen tak do prostoru taky není problém.

NicharCZ: Pěkné, taky jsem to řešil přes GM, ale asi jsou přecijen lepší ty api, které používají přímo .NET a ne (na tyto věci) pomalý GM engine. Já si s tím hrál do úplna, takže třeba při najetí na tlačítko se to prolne, neblikne to hned atd. Jestli chceš, můžu poslat funkční ukázku. ;) Co bych vytknul je textbox. Nejde v něm vybírat text, a ke všemu se nedá posouvat šipkama, ani myší. Jinak proč radio button funguje jako checkbox? No a radio button a checkbox by mohl reagovat, i když klikám na text. :P Jinak ale nemám co dodat.
Přílohy
scrn.png
Zatím mám (a zatím mi stačí): checkbox, radio button, textbox, button, progressbar, slider, select box, tab view, label a color-picker.
Obrázek Sunken Bridge | Obrázek Moje GM tutoriály | Come on son, let's go outside play Catch the Exception!

Uživatelský avatar
hráč
Příspěvky: 225
Registrován: srpen 6, 2011, 8:52 am
Facebook: http://facebook.com/
Kontaktovat uživatele:

Re: NWinApi 0.2

Příspěvek od hráč » červenec 17, 2012, 1:16 pm

Tak taky přihodím obrázek no :)
odkaz
A dialogová okna se tvořily takto třeba:

Kód: Vybrat vše

win=window_form_create("Upravit øetìzec",320,210,0,"","");
window_form_add_text(win,3,3,"Název hodnoty","");
window_form_add_textbox(win,3,30,"nazev",
   "width:300;value:"+string(vh[0])+";disabled:1");
window_form_add_text(win,3,60,"Ùdaj hodnoty","");
window_form_add_textbox(win,3,90,"udaj","width:300;value:"+string(polo));
window_form_add_check(win,3,120,"type","real","Reálné  èíslo","checked");
window_form_add_button(win,30,150,"buttonOK","OK","","uloz=1;");
window_form_add_button(win,180,150,"buttonStorno","Storno"
  ,"","with("+string(id)+"){winID=-1;};instance_destroy();");
winID=window_form_draw(win);
winID.button_buttonOK_click=0; 
a nebo klasické info okno

Kód: Vybrat vše

alert("Název","text");
Ovšem já tam mám další kupu funkcí ;) to moje už je jako OS akorát že game maker na tohle není :D
A samozřejmě se okna dají roztahovat ale dá se to vypnout tak jako že se dá nastavit i minimální velikost a dá se nastavit průhlednost okna...

Ale umě to žere všechno trochu víc já to totiž všechno vykresluji a nepoužívám k tomu sprity :D
Neposedný liškovlk!
Obrázek

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti