Вопрос № 23282: Здраствуйте уважаемые эксперты. Это продолжение вопроса номер 23195 про IP, чтото у меня ничего неполучилось, помогите пожалуйста еще раз и приведите более подробное описание и примеры, а то я совсем не могу разобратся с етим IP. Буду очень благодаре...Вопрос № 23296: Как можно сделать разный курсор на одной форме.
Верхняя - один вид курсоры.
Нижняя - другой вид курсора.
И можно ли в ресурсе создать несколько курсоров....
Вопрос № 23.282
Здраствуйте уважаемые эксперты. Это продолжение вопроса номер 23195 про IP, чтото у меня ничего неполучилось, помогите пожалуйста еще раз и приведите более подробное описание и примеры, а то я совсем не могу разобратся с етим IP. Буду очень благодарен за точный ответ. Заранее спасибо.
Отправлен: 10.07.2005, 00:04
Вопрос задал: Станислав (статус: Посетитель)
Всего ответов отправлено: 3
Отвечает: Tsechoev Bagaudin
Здравствуйте, Staskin!
procedure TForm1.Button1Click(Sender: TObject);
var
IP, NM: String;
begin
IP:= IdIPWatch1.LocalIP;
NM:= IdIPWatch1.LocalName;
end;
--------- Есть только одно зло - невежество, и только одно благо - знания
Ответ отправил: Tsechoev Bagaudin (статус: 7-ой класс)
Отправлен: 10.07.2005, 01:14 Оценка за ответ: 5
Отвечает: Denisss
Здравствуйте, Staskin!
Привожу Вам пример GetIP из книги "Delphi глазами Xakepa".
Находит до 4-х IP адресов компьютера (ну, мало ли там откуда их столько).
На форме лежат 4 Tedit'a и одна кнопка, при нажатии на которую в Edit'ы выводятся IP-адреса.
Приложение:
Ответ отправил: Denisss (статус: 9-ый класс)
Отправлен: 10.07.2005, 11:30 Оценка за ответ: 5
Отвечает: xXx
Здравствуйте, Staskin!
Я уже отвечал тебе на этот вопрос, попробую разлажить все по полкам.
Во первых на форме два компонента Кнопка и Edit.
Во вторых добавляешь модуль WinSock в Uses: Uses WinSock;
В третьих в событии Кнопки пишешь следующее, смотри ниже код:
Приложение:
Ответ отправил: xXx (статус: 3-ий класс)
Отправлен: 10.07.2005, 12:26 Оценка за ответ: 5
Вопрос № 23.296
Как можно сделать разный курсор на одной форме.
Верхняя - один вид курсоры.
Нижняя - другой вид курсора.
И можно ли в ресурсе создать несколько курсоров.
Отправлен: 10.07.2005, 15:01
Вопрос задал: Serhik_z (статус: Посетитель)
Всего ответов отправлено: 6
Отвечает: Denisss
Здравствуйте, Serhik_z!
Расположите на форме несколько панелей (TPanel), укажите каждой из них свой курсор. Для верхней укажите, например, Alighment = alTop; для нижней Alighment = alClient;. Укажите bevel = bvNone; вот, в общем-то, и все :)
Второй вариант:
В событии формы OnMouseMove делайте проверку на y, т.е. если y<100 (например), то один курсор, иначе другой (в этом случае, курсор лучше устанавливать Screen.Cursor:= crXXXXXXX, где ХХХХХХХ - название курсора).
Ответ отправил: Denisss (статус: 9-ый класс)
Отправлен: 10.07.2005, 16:49
Отвечает: streetcat
Здравствуйте, Serhik_z!
это ж какой такой "разный" курсор?
Из всего вопроса я понял только последнюю строку ;)
В файл ресурса можно запихивать скоко хочешь курсоров, битмапов, иконок короче, любых файлов.
А насчет всего остального, переключение между курсорами делается с помощью объекта Screen:
Screen.Cursor := crHandPoint;
эта строка установит курсором указательный палец :)
для справки открой Delphi Help на странице "TCursor type"
--------- streetcat_x@yahoo.com
Ответ отправил: streetcat (статус: 7-ой класс)
Отправлен: 10.07.2005, 21:52
Отвечает: Malish
Здравствуйте, Serhik_z!
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if(Y>Form1.Height/2) then
Form1.Cursor:= crHourGlass
else
Form1.Cursor:= crHandPoint;
end;
Вообще можно сделать массив TCursor (тип курсор), и перебирать какие хочешь.
Подробнее о типе можно прочитать в хелпе Delphi (F1).
Ответ отправил: Malish (статус: Студент)
Отправлен: 11.07.2005, 00:37
Отвечает: Ballon
Здравствуйте, Serhik_z!
Смотри позицию курсора и меняй.
Ответ отправил: Ballon (статус: 3-ий класс)
Отправлен: 11.07.2005, 07:30
Отвечает: Jadd
Здравствуйте, Serhik_z!
В ресурсе? Можно. Только нужно создать собственный файл ресурсов и прикрепить таким же способом, как и ресурсный файл проекта, к проекту. Теперь ор смене курсора. Делается это так. Я приведу пример кода для верхнего участка формы. Для остальных делаешь по аналогии. Итак. Сначала определяем глобальную переменную типа TRect (у меня это rctTop). Дальше пишем:
procedure TForm1.FormCreate(Sender: TObject);
begin
rctTop.Top := 0;
rctTop.Left := 0;
rctTop.Right := Form1.Width;
rctTop.Bottom := rctTop.Top + 50;
end;
Я сделал по всей ширине формы. Ты делай как тебе надо, но учти изменения размеров формы. Затем. Нужно поймать момент, когда курсор будет находиться в этой области. Поэтому, пишем:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if PtInRect(rctTop, Point(X, Y)) then
Form1.Cursor := crHandPoint
else
Form1.Cursor := crDefault;
end;
Все. Удачи.
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Студент)
Отправлен: 11.07.2005, 10:18
Отвечает: Полищук Владислав Игоревич
Здравствуйте, Serhik_z!
Первое, что приходит в голву - это поместить на форму 2 панели (а на них все остальное), и для каждой из них задать свой тип курсора.
Второе - в обработчике OnMouseMove анализировать положение указателя мыши и менять курсор
С уважением, Владислав
--------- Чтобы вчера не случилось, радуйся новому дню