powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / if-endif
14 сообщений из 14, страница 1 из 1
if-endif
    #32788569
sasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dobriy den! Pomoqite pojalusta!
Yest 10 knopka i 1 texstoviy pole. V tekstoviy pole nabiraetsa tsifri o1 1 do 10.
Nado chtobi yesli v tekstoviy pole nabiraetsa 1, 1 -ya knopka doljen visible=.t.
yesli v tekstoviy pole nabiraetsa 2, 2 -ya knopka doljen visible=.t.
Ya eto sdelayu s pomoshi 10 'if-endif', kak eto v tsikle delat?
if k=1
form1.image1.visible=.t.
zer='1'
I=I+1
endif

if k=2
form1.image1.visible=.t.
zer='2'
I=I+1
endif

.....
if k=10
form1.image1.visible=.t.
zer='10'
I=I+1
endif
...
Рейтинг: 0 / 0
if-endif
    #32788592
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
procedure text1.lostfocus()
do case
case this.value='1'
.......
otherwise

endcase
endproc
...
Рейтинг: 0 / 0
if-endif
    #32788602
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
procedure text1.interactivechange()
do case
case Ltrim(this.value)==' 1'
.......
otherwise

endcase
endproc
...
Рейтинг: 0 / 0
if-endif
    #32788603
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
swtoroni poputal
procedure text1.interactivechange()
do case
case rtrim(this.value)==' 1'
.......
otherwise

endcase
endproc
...
Рейтинг: 0 / 0
if-endif
    #32788902
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leafswtoroni poputal
procedure text1.interactivechange()
do case
case rtrim(this.value)==' 1'
.......
otherwise

endcase
endproc

А я бы сделал немого по-другому:
procedure text1.LostFocus()
Local znach
old_zer=zer
zer=alltrim(text1.Value)
znach=val(zer)

if between(znach,1,10)
Form1.image1.Visible=.t.
l=l+1
else
zer=old_zer
endif
endproc
...
Рейтинг: 0 / 0
if-endif
    #32789077
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если придерживаться некоторых стандартов в присвоении имени объектам формы, то можно это решить через макроподстановку.

Например, кнопки имеют имена Cmd1, Cmd2, Cmd3 и т.п., тогда можно так:

Событие ThisForm.TextBox.Valid()

Код: plaintext
1.
2.
3.
4.
5.
LOCAL lcCmdName
lcCmdName = "Cmd"+TRANSFORM(This.Value)
IF TYPE("ThisForm."+m.lcCmdName+".visible")="L"
	* Если кнопка с таким именем существует, то меняю ее видимость
	ThisForm.&lcCmdName..visible=.T.
ENDIF

Если имена и расположение (вложенность) кнопок произвольные, то где-то в методе Init-формы надо записать все имена в массив

Код: plaintext
1.
2.
3.
ThisForm.AddProperty("aCmdName[10]")
aCmdName[ 1 ] = "Cmd1"
aCmdName[ 2 ] = "Container1.Cmd1"
...

И тогда в событии TextBox.Click() примерно так

Код: plaintext
1.
2.
3.
4.
IF BETWEEN(This.Value, 1 ,ALEN(ThisForm.aCmdName))
	LOCAL lcCmdName
	lcCmdName = ThisForm.aCmdName[This.Value]
	ThisForm.&lcCmdName..visible=.T.
ENDIF

Здесь 2 точки подряд после символа макроподстановки - это не опечатка. Именно так и надо писать макроподстановку
...
Рейтинг: 0 / 0
if-endif
    #32789103
sasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Izvenite, ya kod ne pravilno napisal:
V kajdiy if otdelnaya knopka ili (risunok) yest i dlya nix doljno
form1.imagek.visible=.t.

if k=1
form1.image1.visible=.t.
zer='1'
I=I+1
endif

if k=2
form1.image2.visible=.t.
zer='2'
I=I+1
endif

.....
if k=10
form1.image10.visible=.t.
zer='10'
I=I+1
endif
...
Рейтинг: 0 / 0
if-endif
    #32789128
sasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Knopki imeet imena kak:cmd1,cmd2,...cmd10.
to VladimirM :
lcCmdName = "Cmd"+TRANSFORM(This.Value)
v etoy stroke "sintaksiceskaya oshibka" poluchaetsa .Umenya foxpro 5.0 mojet bit po etomu?
...
Рейтинг: 0 / 0
if-endif
    #32789154
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда вместо TRANSFORM() - alltrim(str(This.Value))
...
Рейтинг: 0 / 0
if-endif
    #32789248
sasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vsem sposibo, poluchilos!
...
Рейтинг: 0 / 0
if-endif
    #32789854
karly™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ
ThisForm.&lcCmdName..visible=.T.

В подобных случаях я вместо макроподстановки использую именное выражение
Код: plaintext
Store .T. To ("ThisForm" + lcCmdName)
...
Рейтинг: 0 / 0
if-endif
    #32789865
karly™
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Н-да, ошибочка Правильно так
Код: plaintext
Store .T. to ("ThisForm." + lcCmdName + ".Visible")
...
Рейтинг: 0 / 0
if-endif
    #32791542
XAndy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или так:
Код: plaintext
1.
oCmdName = eval("ThisForm."+lcCmdName)
oCmdName.Visible = .t.
...
Рейтинг: 0 / 0
if-endif
    #32792452
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi XAndy!

Тогда уж лучше
loCmd = GETPEM(ThisForm, lcCmdName)

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / if-endif
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]