Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obsluga konfiguracji
Konnekt | Forum > Developerzy > Tworzenie wtyczek
Stron: 1, 2
Olórin
Działa.... checkboxy są w konfigu (patrz: screenshot), oczywiście dotyczy wersji z bety ;]

Załączniki

KoSiarzPL
A no chyba że. Najświeższa wtyczka oraz źródła do pobrania tego nie maja. U mnie nadal nie działa. Również nie chce działać ręczne wyłączania(odznaczanie) tych przycisków :/
dulek000
QUOTE
#define ACTT_RADIO  0x190000 

  Przycisk typu "radio".

Listę przycisków tworzą kolejne akcje typu ACTT_RADIO. Ostatnia akcja z listy musi mieć ustawiony status ACTSRADIO_LAST. Akcje grupowane są wg. atrybutu p1 , lub parametru AP_RADIOGRP przekazanego w txt. Wartość (wczytywana/zapisywana do bazy) jest dla grupy akcji ta sama i równa wartości przypisanej do zaznaczonej akcji z grupy. Wartość akcji pobierana jest z parametru AP_VALUE, lub z kolejności akcji w grupy gdy ustawiony jest status ACTSRADIO_BYPOS


Cytat wprost z SDK.
Olórin
A wink.gif Bajer jest na 100% w tej wersji: http://olorin.info/wp-content/beta/TemaciK.zip
KoSiarzPL
QUOTE(Olórin @ 4.12.2005 - 11:44)
A wink.gif Bajer jest na 100% w tej wersji: http://olorin.info/wp-content/beta/TemaciK.zip

Może i fajnie ale dll mi nic nie pomoże a ja się męcze z tymi przyciskami niesamowicie.

Mam:
CODE
UIActionAdd( cfg_glowne , 0 , ACTT_GROUP , "Grupa  " );
{
UIActionCfgAdd( cfg_glowne, 0, ACTT_RADIO|ACTSRADIO_BYPOS|ACTR_STATUS|ACTR_SHOW|ACTR_CHECK|ACTR_INIT|ACTSC_INLI
NE, "opcja 1", cfg_radio, 0, 0, 130 );
UIActionCfgAdd( cfg_glowne, 0, ACTT_RADIO|ACTSRADIO_BYPOS|ACTR_STATUS|ACTR_SHOW|ACTR_CHECK|ACTR_INIT|ACTSRADIO_
LAST, "opcja 2", cfg_radio, 0, 0, 130 );
}
UIActionAdd( cfg_glowne , 0 , ACTT_GROUPEND);


1. Może mi ktoś powiedzieć dlaczego nie mogę jako drugi parametr funkcji UIActionCfgAdd(), podać "IMIB_CFG"? Jeśli to zrobię kontrolki się dziwnie zachowują
2. Dałem tyle tych ACTR_, żeby móc przechwycić jakiekolwiek zdzarzenie od tej akcji:
CODE
case cfg_radio:
IMessage(IMI_INFORM , 0 , 0 , (int)"check");
break;

Wynik jest żaden.
3. Może i w sdk jest napisane co trzeba zrobić ale ja nie potrafię tego zrozumieć.
QUOTE
Wartość akcji pobierana jest z parametru AP_VALUE, lub z kolejności akcji w grupy gdy ustawiony jest status ACTSRADIO_BYPOS

Z parametru czego? Jakiej funkcji?
Jak chcę pobrać wartość tej akcji (chcę wiedzieć która opcja jest wybrana) i robię tak:
CODE
int war = (int)UIActionCfgGetValue( sUIAction(cfg_glowne, cfg_metoda_szukania), 0, 0);

To zawsze dostaję zero.

Bez przesady, żeby siedzieć cały dzień nad zwykłymi przyciskami i nic nie uzyskać. Olórin podał byś kawałek kodu chociaż.
Olórin
Tam naprawde nie ma nic więcej.

Wartość wybranej opcji (mówie o kodzie temacika) zapisywana jest do kolumny konfigu CFG_ICOS. Jeżeli chcesz przechwytywać zdarzenia do dla każdej opcji musisz nadać osobne id akcji (czego ja wogóle nie robię i za id podaje 0).

Wartości BYPOS to znaczy że pierwsza dodana kontrolka ma wartość 0, druga 1, trzecia 2. Jeżeli tego ustawiasz, musisz dodać wartość do napisu kontrolki czyli np.
CODE
UIActionCfgAdd(OPEN_WND,0,ACTT_RADIO|ACTSRADIO_LAST,"Tekst" AP_VALUE "100", CFG_ICOS);


QUOTE
1. Może mi ktoś powiedzieć dlaczego nie mogę jako drugi parametr funkcji UIActionCfgAdd(), podać "IMIB_CFG"? Jeśli to zrobię kontrolki się dziwnie zachowują

Każda akcja (w obrębie grupy) musi mieć unikalne ID. Każda opcja = osobna akcja. Możesz co najwyżej IMIB_CFG dokleić do id akcji (IMIB_CFG|id_akcji).
bulanh
To możę ja się tu dokleję z pytanie co by nowego wątku nie zakładać. Podczas zapisu swojej karty w konfiguracji sprawdzam, czy checkboxy są pozaznaczane. Robię to takim kodem:

CODE

int Checked(int CFG)
{
return ( UIActionGetStatus( sUIAction(IMIG_CFG_4C, IMIB_CFG|CFG) ) & ACTS_CHECKED );
}

int CfgChangedProc(void) // Podpięte pod IM_CFG_CHANGED
{
int i;
for (i = CFG_ENABLE_KEYWORS; i <= CFG_KEY_WORDS_UNDERLINE; i++)
{
 if ( Checked(i) ) rob_cos; else rob_cos_innego;
}
return 0;
}


Problem w tym, że funkcja Checked() zawsze zwraca 0, nawet jeżeli kontrolki są pozaznaczane.

2. Jaki typ kolumny jest najlepszy do zapisywania wartości boolean? DT_CT_INT?
Olórin
1. UIActionCfgGetValue
2. Tak.
KoSiarzPL
A ja dalej z tym samym.

1. Jak odczytać ktory radiobutton jest wybrany
2. Jak ustawić by radiobutton o numerze X byl zaznaczony

Aha i dodam, że na razie nie mam powiazanej kolumny z ta akcja. Czyli nie mam wywolanego SetColumn(). Czy to cos zmienia? wink.gif
hao
1) UIActionCfgGetValue
2) UIActionCfgSetValue

Nie wiem po raz który to piszemy smile.gif

Ustaw unikalny ID tylko ostatniemu radio-buttonowi, i na ten ID kieruj powyższe funkcje. W GEt/Set dostaniesz/ustawiasz albo wartość zaznaczoneg buttona którą przypisałeś mu przez AP_VALUE, albo liczbę porządkową jeżeli używasz ACTSRADIO_BYPOS.

Wszystkie radio buttony muszą mieć ten same parametr p1, żeby były traktowane jako "jeden". Z tego też powodu zalecane jest na wszystkich poza ostatnim dać status ACTR_NODATASTORE)

CODE

UIActionAdd(IMIG_CFG_UI_DOCK, 0 , ACTT_RADIO|ACTR_NODATASTORE ,"To ma wartość 100" AP_VALUE "100", CFG_UIDOCKHIDE);

UIActionAdd(IMIG_CFG_UI_DOCK, 0 , ACTT_RADIO|ACTR_NODATASTORE|ACTSRADIO_BYPOS ,"To ma wartość 1 (bo pozycja 1", CFG_UIDOCKHIDE);

UIActionAdd(IMIG_CFG_UI_DOCK, IMIB_CFG , ACTT_RADIO|ACTSRADIO_LAST ,"To ma wartość Lalala" AP_VALUE "Lalala", CFG_UIDOCKHIDE);


Zauważ, że tylko ostatni element ma IMIB_CFG. Ustawiając jako wartość przez UIActionCfgSetValue "Lalala", zostanie zaznaczony ostatni, bo ma przypisaną akurat taką wartość...


3) Nie powinno to mieć znaczenia
KoSiarzPL
Czy da się w jakiś sposób przychwycić zdarzenie utworzenia wszystkich kontrolek w grupie.
Podczas rejestracji kontrolek w konfiguracji nie mogę ustawić domyślnych parametrów, jak np: czy ma być widoczny, włączony itp. Więc chiałbym otrzymać taki okmunikat by móc te domyślne ustawienia przydzielać.
Nie chcę dodawać na końcu kontrolki by podcas jej tworzenia zrobić to co chcę. Pewnie nie ma takiej możliwości co?
Olórin
QUOTE
Podczas rejestracji kontrolek w konfiguracji nie mogę ustawić domyślnych parametrów, jak np: czy ma być widoczny, włączony itp.
Dlaczego nie ?
KoSiarzPL
Bo akcje nie są utworzone?
Innego wyjaśnienia nie mam. Jeśli tak zrobię to po otworzeniu konfiguracji wszsytkie akcje dla których użyłem ACTS_DISABLED i tak są włączone.
skolima
Hmm... A ustawianie domyślnych wartości dla kolumn to nie to?
KoSiarzPL
QUOTE(skolima @ 2.01.2006 - 23:00)
Hmm... A ustawianie domyślnych wartości dla kolumn to nie to?
*


Kontrolki nie mają własnych kolumn w konfiguracji.
Nawet jeśli by miały, wtyczka mogła by chcieć ustawiać domyślne ustawienia w zależności od sytuajci.
KoSiarzPL
Czy istnieje jakas możliwość aby zmienić (odświeżyć) napis na przycisku w konfiguracji? Podczas wywoływania UIActionSetText() na przycisku jego napis się nie zmieni dopóki go czymś nie przykruję.
Aule
Co do poprzednich pytań, to przecież możesz ustawić disabled itd. dla kontrolki którą tworzysz poprzez ustawienie statusu jeszcze przed jej dodaniem.
KoSiarzPL
i Olórin tak myślał i ja tak myślałem. Dzisiaj znowu też tak pomyślałem i okazuje się, że mieliśmy rację smile.gif Zapomniałem o dodaniu IMIB_CFG.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2012 Invision Power Services, Inc.