• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

проблема с координатами мыши

  • Автор темы Автор темы Blood Pepper
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
B

Blood Pepper

Народ, помогите, пожалуйста, умоляю, помилуйте новичка-чайника, у меня возникла серьезная проблема, мне срочняк нужно сделать фишку: нормальный рабочий стол, все путёво, никаких с виду изменений нет, но стоит пользователю навести курсор мыши к самому верху, как оттудова выезжает вниз форма. Я знаю как такую прогу сделать, изначально задать отрицательный top форме и потом организовать цикл, чтобы форма выезжала, но подскажите плиз, где и что именно надо писать, чтобы определялись координаты мыши на рабочем столе, а не на форме?? Прошу помощи Вашей<_<
 
Blood Pepper
подскажите плиз, где и что именно надо писать, чтобы определялись координаты мыши на рабочем столе, а не на форме??
Вот тебе пероцедурки.

mouse.CursorPos.X:integer //Координата курсора по горизонтали
mouse.CursorPos.Y:integer //Координата курсора по вертикали

Пример:
Код:
if mouse.CursorPos.Y=0 then
begin
  //Тут пишешь то, что тебе надо сделать когда курсос находится вверху рабочего стола.
end;
А еще можно сделать по другому. Можно форму не полностью спрятать, а оставить маленькую линию выглядывающую сверху экрана. Когда пользователь наведет на нее форма выедет вниз. В этом случае сразу видно, что там есть какая-то панелька или менюшка и тебе не надо узнавать позицию курсора на рабочем столе, а просто в событие OnMouseMove прописать выезд твоей формы.
 
Artexoid, спасибо огромное за совет=) А второй способ я уже пробовал использовать, но мне надо именно чтобы не было ничего видно. Спасиб, друган.
 
Blood Pepper
Рад что смог помоч :unsure: :unsure: :blink: :blink: :huh:
 
Artexoid, кстати, заодно не подскажешь, как сделать фишку, чтобы можно было все элементы из listbox1 перенести в listbox2 нажатием одной кнопки? Как перенести по отдельности я знаю, а вот как чтобы все вместе?
 
Blood Pepper
В смысле перенести все записи??
Вот так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  form1.ListBox2.Items:=form1.ListBox1.Items;
end;
 
Ну да. Вообще то задание моё состоит в следующем: на форме имеются 2 листо бокса, между ними 4 до боли знакомые всем кнопки: перевсти одну выбранную запись из первого лист бокса во второй, из второго в первый, и перевести все записи из первого во второй и из второго в первый. Причем когда переводишь записи, из родительского лист бокса они должны удаляться. С кнопками, добавляющими по одной записи я разобрался, вот код:

procedure TForm1.Button1Click(Sender: TObject);
begin
if listbox2.Items.IndexOf(listbox1.Items[listbox1.itemindex])=-1
then listbox2.items.add(listbox1.items[listbox1.itemindex]);
listbox1.items.Delete(listbox1.ItemIndex);
end;

А вот как грамотно описать операцию со всеми записями, а то чё-то я там намудрил, он снова ошибки выдает?
 
Как насчёт:

Код:
for I := 0 to ListBox1.Items.Count - 1 do
ListBox2.Items.Add(ListBox2.Items[I]);

ListBox1.Items.Clear;
 
Blood Pepper
А что разве мой код не переносить все записи с Listbox1 в Listbox2 ???
 
Blood Pepper
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
 form1.ListBox2.Items:=form1.ListBox1.Items;
 form1.ListBox1.Clear; //вот это подпиши и все удалиться в ListBox1
end;
По моиму самый быстрый способ вот этот и без цыклов
 
А если в ListBox2 уже были записи до этого .. то что с ними будет? :unsure:
 
Artexoid, слушай, Barmutik дело говорит, ты просто присваиваешь все значения первого лист бокса второму, а потом чистишь первый, так ведь что если во втором уже есть значения после добавления одинарной кнопкой? Снова посыпятся ошибки или в лучшем случае добавятся 2 одинаковых записи, а мне надо чтобы все разные были.
 
Blood Pepper
Barmutik
А как вам такая комбинация !!??? :unsure:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  form1.ListBox2.Items.AddStrings(form1.ListBox1.Items);
  form1.ListBox1.Clear;
end;
Вот тут все работает нормально и записи в listbox2 которые были не теряются! :unsure: :blink:
 
Ну можно еще так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox2.Items.AddStrings(ListBox1.Items);
ListBox1.Items.Clear;
end;
 
zubr
Ну ты черт!! :unsure: :unsure: :blink: :blink: :huh: :huh: :( :( :lol: :lol: :lol: :lol:
Ты с кем-то еще там 2 раза ответил :lol: :lol: :lol: :lol: :lol:
 
кстати, с координатами мыши чё-то не работает
 
Blood Pepper
Короче вот. Я тут тебе написпл примерчик, как я понял : 2 Listbox 4 Кнопки (Перемещают записи ил 1-го Listbox в другой и назад), Кнопка выхода, Все это на форме которая выезжает когда курсор вверху экрана. Конечно код можно сократить немного, продумать получше, но общий смысл поймеш.
 
Blood Pepper
Кстате когда скачаеш посмотриш скажи помогло или нет !!)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab