Форум: "Прочее";
Текущий архив: 2013.10.27;
Скачать: [xml.tar.bz2];
ВнизСделать в один WHILE. Найти похожие ветки
← →
О-Сознание (2013-05-16 17:21) [0]Код железно скрывает курсор:
procedure SetShowCursor(Value: boolean);
begin
If Value
then while (ShowCursor(True) <= 0) do
else while (ShowCursor(False) >= 0) do;
end;
Как его переделать в один While?
procedure SetShowCursor(Value: boolean);
begin
while (ShowCursor(Value) ... do;
end;
← →
картман © (2013-05-16 17:26) [1]что не нравится?
← →
Ega23 © (2013-05-16 17:32) [2]
procedure SetShowCursor(Value: boolean);
const
cVal: array[Boolean] of integer = (-1, 1);
begin
while (ShowCursor(Value) * cVal[Value]) <= 0 do;
end;
так что-ли?
← →
"Добрый Сок" (2013-05-16 17:35) [3]Сыграть на том, что integer(boolean) = [1,0]
← →
Ega23 © (2013-05-16 17:37) [4]
> Сыграть на том, что integer(boolean) = [1,0]
Так нельзя. Во-первых, [0,1]. Во-вторых не Integer, а Ord
← →
Игорь Шевченко © (2013-05-16 17:38) [5]Феерично
← →
О-Сознание (2013-05-16 17:59) [6]
> картман © (16.05.13 17:26) [1]
>
> что не нравится?
Зачем 2, если можно 1?
Глаза режет.
> Игорь Шевченко © (16.05.13 17:38) [5]
>
> Феерично
Объясните.
← →
картман © (2013-05-16 18:02) [7]
> Глаза режет.
бывает. Я бы не смотрел
← →
О-Сознание (2013-05-16 18:03) [8]
> картман © (16.05.13 18:02) [7]
>
>
> > Глаза режет.
>
> бывает. Я бы не смотрел
Дык для меня же.
← →
Медвежонок Пятачок © (2013-05-16 18:14) [9]If Value
then while (ShowCursor(True) <= 0) do
else while (ShowCursor(False) >= 0) do;
while (ShowCursor(Value) <= 0) = Value do
плюс обработать ноль для второго случая
← →
Игорь Шевченко © (2013-05-16 18:19) [10]
> Объясните.
что именно объяснить ? Что код никуда не годится ? И без объяснений вроде очевидно, что бесконечный цикл тут ни к селу ни к городу.
← →
Игорь Шевченко © (2013-05-16 18:19) [11]пустой цикл, виноват
← →
clickmaker © (2013-05-16 18:21) [12]не смог О-Сознать для чего сей код? для 1-апр шуток вроде поздновато...
← →
О-Сознание (2013-05-16 18:27) [13]
> Игорь Шевченко © (16.05.13 18:19) [10]
>
>
> > Объясните.
>
>
> что именно объяснить ? Что код никуда не годится ? И без
> объяснений вроде очевидно, что бесконечный цикл тут ни к
> селу ни к городу.
Почему бесконечный цикл?
procedure SetShowCursor(Value: boolean);
begin
If Value
then while (ShowCursor(True) <= 0) do
else while (ShowCursor(False) >= 0) do;
end;
Устанавливаем счётчик пока не будет положительным, если
наоборот то пока не будет отрицательным.
Что не так?
Зачем этот счётчик там вообще?
← →
"Добрый Сок" (2013-05-16 22:24) [14]
> не Integer, а Ord
ShowMessageFmt("%d ",[Integer(Random(100)>50)]);
← →
clickmaker © (2013-05-16 22:32) [15]> Зачем этот счётчик там вообще?
это как раз понятно. Непонятно, зачем такая гламурная обертка
← →
"Добрый Сок" (2013-05-16 22:50) [16]then while (ShowCursor(True) <= 0) do
else while (ShowCursor(False) >= 0) do;
http://msdn.microsoft.com/en-us/library/windows/desktop/ms648396%28v=vs.85%29.aspx
This function sets an internal display counter that determines whether the cursor should be displayed. The cursor is displayed only if the display count is greater than or equal to 0. If a mouse is installed, the initial display count is 0. If no mouse is installed, the display count is –1.
then while (ShowCursor(True) < 0) do
else while (ShowCursor(False) >= 0) do;
← →
Ega23 © (2013-05-16 23:01) [17]
> ShowMessageFmt("%d ",[Integer(Random(100)>50)]);
Нет гарантии. False - ноль. True - не ноль. Ord - с гарантией.
← →
Дмитрий С © (2013-05-16 23:09) [18]
> Ord - с гарантией.
Классика :)
var
A: Boolean;
begin
A := Boolean(2);
← →
TUser © (2013-05-16 23:42) [19]Приведение типа boolean к integer есть зло. И обратно тоже. Всегда можно написать проще, цена - максимум три строчки кода. И при это становится понятнее (читатель не должен помнить языковые соглашения о соотношении этих типов), а также переносимее, так как кто его знает, что будет в слудующей версии компилятора.
← →
брат Птибурдукова (2013-05-17 00:03) [20]
> кто его знает, что будет в слудующей версии компилятора
та, "следующая версия"… вот помню, долго мучился, как это у меня A = true, B=true, A<>B. А в итоге выяснилось, что соответствующее поле в записи не инициализировалось и содержало случайный байт, который обычно интерпретировался как true. и это в довольно известном фреймворке… %-)
← →
"Добрый Сок" (2013-05-17 08:28) [21]В курсе, но:
А тут и надо 0 и не ноль
Даже именно не 0,
что-то вроде 1 - 2*(intger(boolean)) - т.е. или >0, или 0 и ниже
но думать надо :), а у меня 32 градуса уже в кабинете, и это уже с утра :(
← →
Inovet © (2013-05-17 08:38) [22]Циклы зачем? Где прятал, там и показывай. Или чужие счётчики сгоняешь?
← →
"Добрый Сок" (2013-05-17 08:53) [23]а зачем вообще прятать/ показывать?
← →
"Добрый Сок" (2013-05-17 09:11) [24]кстати, D7|w7, после прятания курсора, программа замерзает.
свернуть все окна - не сворачивается
После вызова с панели задач - появилась вторая копия (две кнопки на панельке стало) Одна копия нормальная, вторая замороженная.
> зачем вообще прятать/ показывать?
← →
Ega23 © (2013-05-17 10:19) [25]
> что-то вроде 1 - 2*(intger(boolean)) - т.е. или >0, или
> 0 и ниже
см [2]
← →
"Добрый Сок" (2013-05-17 10:26) [26]>> см [2]
см [3]
:)
many thousands of years ago in a galaxy far far away
>> см [X1]
см [X2]
← →
О-Сознание (2013-05-17 10:34) [27]
> Inovet © (17.05.13 08:38) [22]
>
> Циклы зачем? Где прятал, там и показывай. Или чужие счётчики
> сгоняешь?
Чужие счётчики?
Кто этим кроме меня ещё заведует?
> "Добрый Сок" (17.05.13 08:53) [23]
>
> а зачем вообще прятать/ показывать?
Для создания интерактивных приложений.
> TUser © (16.05.13 23:42) [19]
>
> Приведение типа boolean к integer есть зло.
Тогда уж делать через IfThen и не париться.
← →
О-Сознание (2013-05-17 10:36) [28]
> Inovet © (17.05.13 08:38) [22]
>
> Циклы зачем? Где прятал, там и показывай. Или чужие счётчики
> сгоняешь?
Тогда как мне убрать курсор не сбивая чужих счётчиков?
← →
clickmaker © (2013-05-17 10:40) [29]> Для создания интерактивных приложений.
вообще без курсора?
← →
О-Сознание (2013-05-17 10:52) [30]
> clickmaker © (17.05.13 10:40) [29]
>
> > Для создания интерактивных приложений.
>
> вообще без курсора?
Там свой курсор рисуется, какой хочешь.
← →
О-Сознание (2013-05-17 10:53) [31]Очевидно же.
← →
clickmaker © (2013-05-17 10:55) [32]> Там свой курсор рисуется, какой хочешь
а SetCursor() не?
← →
О-Сознание (2013-05-17 10:57) [33]Получаем положение курсора.
Туда и рисуем спрайт.
← →
О-Сознание (2013-05-17 10:57) [34]
> clickmaker © (17.05.13 10:55) [32]
>
> > Там свой курсор рисуется, какой хочешь
>
> а SetCursor() не?
Не всегда подходит.
← →
Inovet © (2013-05-17 11:08) [35]> [27] О-Сознание (17.05.13 10:34)
> Кто этим кроме меня ещё заведует?
Тогда пункт 1.
> [28] О-Сознание (17.05.13 10:36)
> Тогда как мне убрать курсор не сбивая чужих счётчиков?
Попросить автора исходников исправить ошибку, или найти и исправить самому.
← →
О-Сознание (2013-05-17 11:47) [36]
> Inovet © (17.05.13 11:08) [35]
>
> > [27] О-Сознание (17.05.13 10:34)
> > Кто этим кроме меня ещё заведует?
>
> Тогда пункт 1.
Тогда пункт 6.
>
> > [28] О-Сознание (17.05.13 10:36)
> > Тогда как мне убрать курсор не сбивая чужих счётчиков?
>
>
> Попросить автора исходников исправить ошибку, или найти
> и исправить самому.
Это мои исходники.
← →
Inovet © (2013-05-17 11:51) [37]> [36] О-Сознание (17.05.13 11:47)
> Это мои исходники.
Пункт 1
> [22] Inovet © (17.05.13 08:38)
> Где прятал, там и показывай.
Или объясни, что запрещает так делать, а то я не понимаю.
← →
Anatoly Podgoretsky © (2013-05-17 13:12) [38]Boolean ByteBool, WordBool, LongBool
False < True False <> True
Ord(False) = 0 Ord(False) = 0
Ord(True) = 1 Ord(True) <> 0
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2013.10.27;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.003 c