forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   как сделать элемент Choise выбраным по умолчанию (http://forum.boolean.name/showthread.php?t=3321)

MotoMustanger 08.05.2007 17:13

как сделать элемент Choise выбраным по умолчанию
 
У меня в програмее есть Choise типа CH_EXCLUSIVE и там 3 елемента. Но вначале выбранным стоит первый в независимости от данных (считываются из rms). Даже новом английском хелпе есть процедуры только для считывания выбранного елемента, а для обозначения выбранным одного из них вначале нет. Есть только для textField и Gauge. Каким образом можно выбрать тот элемент, который мне надо (не вручную, а программой).

Piligrim 08.05.2007 17:18

Re: как сделать элемент Choise выбраным по умолчанию
 
я добавлял такую возможность в библиотеке ui

MotoMustanger 08.05.2007 18:03

Re: как сделать элемент Choise выбраным по умолчанию
 
uses ui;
....
id5:=formaddchoice(fraza,CH_EXCLUSIVE);
id51:=choiceappendstring(id5,'English');
id52:=choiceappendstring(id5,'Русский');
id53:=choiceappendstring(id5,'Deutch');
ui.list_set_selected(id52);
Все равно выбирает первый. Что я сделал не так?

Piligrim 10.05.2007 11:36

Re: как сделать элемент Choise выбраным по умолчанию
 
ui.list_set_selected(3); - нужно указывать именно номер пункта, а не его идентификатор

MotoMustanger 16.05.2007 18:52

Re: как сделать элемент Choise выбраным по умолчанию
 
Не работает все равно, ставит первый. Да и вобще MidletPaskal у меня еще ни с одной библиотекой не работал хотя ставил точно по мануалу. Спасибо, я уже другим способом сделал.

om2804 07.06.2007 20:32

Re: как сделать элемент Choise выбраным по умолчанию
 
itemId := formAddChoice('выберите диск', 1); ch1 := choiceAppendString(itemId, 'a'); ch2 := choiceAppendString(itemId, 'c'); ui.list_set_selected(3); Всё равно первый выделен

ARV 28.09.2007 12:36

Re: как сделать элемент Choise выбраным по умолчанию
 
И все-таки, как сделать элемент списка выделенным по умолчанию? лично у меня при попытке вызвать ui.list_set_selected мидлет просто зависает... :(
Цитата:

Сообщение от MotoMustanger
я уже другим способом сделал.

каким же?!

MotoMustanger 30.09.2007 00:50

Re: как сделать элемент Choise выбраным по умолчанию
 
Проблема видно уже решилась в соседней теме но все же напишу, как я решил эту проблему. Я ставил на первое место тот элемент choice, который и есть выбранный. Например я считал из ресурса и знаю какой язык стоит по умолчанию(для 3х элементов):
Код:

id5:=formaddchoice(fraza,CH_EXCLUSIVE);
dlang:=false;
for ik:=1 to 2 do
begin
if (lang='English') xor (dlang=true) and (id51=0) then
begin id51:=choiceappendstring(id5,'English');
dlang:=true;end;
if (lang='Russian') xor (dlang=true) and (id52=0) then
begin id52:=choiceappendstring(id5,'Русский');
dlang:=true;end;
if (lang='Ukrainian') xor (dlang=true) and (id53=0) then
begin id53:=choiceappendstring(id5,'Українська');
dlang:=true;end;
end;


ARV 30.09.2007 12:18

Re: как сделать элемент Choise выбраным по умолчанию
 
Этот метод неплох, если варианты выбора равнозначны, но совсем неудачен, если варианты ранжированные: маленький-средний-большой... в порядке средний-маленький-большой как-то нет логики :(

MotoMustanger 30.09.2007 20:35

Re: как сделать элемент Choise выбраным по умолчанию
 
Как кому. Мне например всеравно, в каком порядке они стоят, главное, что выбрано правильный.

Piligrim 01.10.2007 11:14

Re: как сделать элемент Choise выбраным по умолчанию
 
этот вариант не сработает если нужно выбрать несколько опций в одной группе

ARV 01.10.2007 11:47

Re: как сделать элемент Choise выбраным по умолчанию
 
Я пока что не вижу варианта, который бы вообще сработал... ;(

MotoMustanger 01.10.2007 17:39

Вот накатал. У меня работает:
Код:

program NewProject3;
var id5,id51,id52,id53,i:integer;
        dlang:boolean;
        lang:string;
begin
showform;
lang:='Russian';
id5:=formaddchoice('Language',CH_EXCLUSIVE);
dlang:=false;
for i:=1 to 2 do
begin
if (lang='English') xor (dlang=true) and (id51=0) then
begin id51:=choiceappendstring(id5,'English');
dlang:=true;end;
if (lang='Russian') xor (dlang=true) and (id52=0) then
begin id52:=choiceappendstring(id5,'Русский');
dlang:=true;end;
if (lang='Ukrainian') xor (dlang=true) and (id53=0) then
begin id53:=choiceappendstring(id5,'Українська');
dlang:=true;end;
end;
repaint;
delay(3000);
end.



Часовой пояс GMT +4, время: 23:08.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot