Вопрос № 93297: Необходимо реализовать следующее:
Пользователь загрузил рисуонк в TImage. Кликнул по нему и понёс мышкой в нужное место. Нажал опять на имейдж когда тот оказался в нужной точке и имейдж пересталд идити за мышкой. как реализовать?...Вопрос № 93307: Здравствуйте уважаемые эксперты. Подскажите пожалуйста,
как проверить переменную s ( var s:string ) является ли она числом.
Пробовал пользоваться procedure Val(S:string; V:real; Code: Integer); ,
но не получаесять проверять большие ч...Вопрос № 93313: Здравствуйте, уважаемые Эксперты!
Дайте, пожалуйста, исходник получения текста web страницы.
С помощью Delphi7 стандартными компонентами.
Как я давал только что на вопрос
<a href=http://rusfaq.ru?Step=info&Action=Question&ID...Вопрос № 93343: Здравствуйте уважаемые эксперты. Подскажите пожалуйста как сохранить style (Курсив, жирный ...) шрифта в ini файле. Как изменить эти параметры не через диалоговое окно FontDialog....Вопрос № 93349: Здравствуйте всем. Вопрос следующий: Есть ADSL-подключение к инету с динамическим IP. Иногда происходит разрыв соединения и, соответственно, меняется
IP. Как программно узнать IP-адрес интернет-соединения? Это мне нужно для удаленного администрирован...
Вопрос № 93.297
Необходимо реализовать следующее:
Пользователь загрузил рисуонк в TImage. Кликнул по нему и понёс мышкой в нужное место. Нажал опять на имейдж когда тот оказался в нужной точке и имейдж пересталд идити за мышкой. как реализовать?
Отвечает: LanK
Здравствуйте, Тепленёв Максим Витальевич 2!
Таких примеров множество как и способов... в приложении ПОЛНЫЙ типичный код.
Приложение:
--------- Пусть все будет хорошо! Давайте жить дружно! :) И будет жить еще лучше!
Ответ отправил: LanK (статус: Студент)
Ответ отправлен: 29.06.2007, 08:37
Отвечает: Василенко Алексей Васильевич
Здравствуйте, Тепленёв Максим Витальевич 2!
один из вариантов решения
Переменные
move : boolean;
признак того, что изображение передвигается
top_s : integer;
left_s : intreger:
относительное положение мышки и верхней точки Имаджа.
процедура FormCreate устанавливает начальные значения переменных
процедура Image1MouseDown начинает перемещение
процедура Image1MouseMove выполняет движение
процедура Image1MouseUp заканчивает движение
т.е. Движение происходит при зажатой левой кнопке
процедура Image1ContextPopup загружает изображение через OpenPictureDialog1.
в приложении полный Unit1.pas
Приложение:
--------- Человек развивается только преодолевая трудности
Ответ удален и помещен для обсуждения на форум rusfaq.ru, т.к. функция приведенная в приложении будет давать ошибочные результаты: Удаленные ответы для обсуждения
Эксперт sir henry
Ответ отправил: BlackRaider (статус: 1-ый класс)
Ответ отправлен: 29.06.2007, 10:13 Оценка за ответ: 3 Комментарий оценки: Я не понял, что такое trim, но я понял ход ваших мыслей, и по моему вы не учли что проверяемая переменная sstr моюет быть к примеру такой: 123,,0 Все символы из сета, но значение не корректно.
Ответ удален как не соответствующий названию рассылки и помещен для обсуждения на форум rusfaq.ru: Удаленные ответы для обсуждения
Эксперт sir henry
Ответ отправил: Igor_ (статус: 3-ий класс)
Ответ отправлен: 29.06.2007, 10:29 Оценка за ответ: 4 Комментарий оценки: К сожалению ничего не понял но всё равно спасибо
Ответ отправил: Sandy (статус: 6-ой класс)
Ответ отправлен: 29.06.2007, 11:00
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Левадный Тимур Русланович!
Надо всего лишь убедиться, что строка состоит только из цифр и не более, чем одного десятичного разделителя. Символ используемый в системе в качестве десятичного разделителя, хранится в переменной DecimalSeparator, которая определяется в SysUtils.
Можно еще проверять, чтобы вначале не было нулей и не считать числами сторки типа "007" =)
А так код в приложении.
Приложение:
--------- Не узнаешь - не попробуешь.
Ответ отправил: Сухомлин Кирилл Владимирович (статус: Специалист)
Ответ отправлен: 29.06.2007, 13:18 Оценка за ответ: 5 Комментарий оценки: Спасибо за ваш ответ. Интересная информация о DecimalSeparator. Но всеже я воспользуюсь ответом Omickron'а.
Отвечает: Esi
Здравствуйте, Левадный Тимур Русланович!
Нужно сделать проверку, например сравнить с нулём.
try
if strtoint(s)>0 then label1.text:='s-число';
except
label1.text:='s не является числом';
end;
Ответ отправил: Esi (статус: 2-ой класс)
Ответ отправлен: 29.06.2007, 19:03 Оценка за ответ: 4 Комментарий оценки: Да, но число может быть и отицательным.
Мне вообще непонятно, почему у Вас не получается с Val, может быть что то просто делаете не так, ведь функция StrToInt, преобразует число именно с помощью него:
function StrToInt(const S: string): Integer;
var E: Integer;
begin
Val(S, Result, E);
if E <> 0 then {Здесь вызывается исключение (ошибка)}
end;
Если уж Вас устроил ответ Omickron'а, то предложу свой вариант, как я считаю более правильный.
Нет необходимости замарачиваться и использовать блоки try-except-end, достаточно написать так:
if TryStrToInt(s,i) then ShowMessage ('Число') else ShowMessage ('Не число');
Если Вам действительно нужны большие числа, то используйте тип int64, в нем доступны 19 знаков (если правильно посчитал), тогда Вам понадобиться функция TryStrToInt64.
Если Вам нужны вещественные числа (дробные), то используйте TryStrToFloat.
Главное помните, что если Вы пишите:
if TryStrToInt64(s,i) then {...},
то переменная i должна быть описана именно так:
var i: int64;
тип integer здесь не подойдет.
Для функции TryStrToFloat, нужна переменная типа Extended.
Удачи.
Ответ отправил: Louken (статус: 9-ый класс)
Ответ отправлен: 29.06.2007, 22:05 Оценка за ответ: 5 Комментарий оценки: Извиняюсь, длинная строк с числом была боьшая а не само число. В ответе Omickron'а я взял блоки try-except-end и заменил StrToInt на floattostr. Спасибо за ответ.
Отвечает: Василенко Алексей Васильевич
Здравствуйте, Левадный Тимур Русланович!
Если в строке записано десятичное число, то в строке кроме символов 0,1,2,3,4,5,6,7,8,9 и "," больше никаких символов не будет. исключение составит пробел как разделитель разрядов, что нежелательно.
Мое предложение - написать функцию посимвольной проверки строки.
--------- Человек развивается только преодолевая трудности
Ответ отправил: Василенко Алексей Васильевич (статус: 2-ой класс)
Ответ отправлен: 30.06.2007, 15:19 Оценка за ответ: 3
Вопрос № 93.313
Здравствуйте, уважаемые Эксперты!
Дайте, пожалуйста, исходник получения текста web страницы.
С помощью Delphi7 стандартными компонентами.
тестовая страница http://rusfaq.ru/index.php (например я точно не знаю какая у rusfaq но это не важно) мне ее потом надо будет обработать как тескт - вытащить ОДНО значение.
Спасибо!
Отправлен: 29.06.2007, 10:42
Вопрос задал: LanK (статус: Студент)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Omickron
Здравствуйте, LanK!
Вариантов решения задачи много. Я, в своё время использовал компоненты Indy. В частности, TIdHTTP.
Задаёте значения хоста, порта (80, по умолчанию), разрешаете cookies (AllowCookies:=true), если нужно поддерживать сессию, и пользуетесь методами GET и POST для отправки соответствующих запросов.
Для передачи данных в POST используется массив строк TStringList.
Приложение:
Ответ отправил: Omickron (статус: 3-ий класс)
Ответ отправлен: 29.06.2007, 10:52
Отвечает: Sattar
Здравствуйте, LanK!
Код в приложении взят с http:// swissdelphicenter.ch/
Приложение:
--------- Programming is like sex, one mistake and you have to support it for the rest of your life.
Ответ отправил: Sattar (статус: 3-ий класс)
Ответ отправлен: 29.06.2007, 18:15
Вопрос № 93.343
Здравствуйте уважаемые эксперты. Подскажите пожалуйста как сохранить style (Курсив, жирный ...) шрифта в ini файле. Как изменить эти параметры не через диалоговое окно FontDialog.
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Левадный Тимур Русланович!
ini-файл поддерживает стандартный набор данных.
Поэтому вы можете
создать свою процедуру для этого типа
Разбить стиль на несколько переменных стандартного типа
Для второго случая можно либо создать 4 булевских переменных, либо одну целого типа и использовать ее как массив битовых флагов.
--------- Не узнаешь - не попробуешь.
Ответ отправил: Сухомлин Кирилл Владимирович (статус: Специалист)
Ответ отправлен: 29.06.2007, 16:01 Оценка за ответ: 5 Комментарий оценки: Расскажите по подробнее как разбить стиль на 4 булевских перемынные.
Чтобы сохранять стиль шрифта - нужно сохранять каждый его параметр отдельно:
Шрифт, Размер, Цвет и тд..
Не совсем понял вторую часть вопроса...
Если изменять в самой программе пользователю - то соотвественно придется делать такой диалог самому..
Если вы програмно хотите изменить - то так же меняете каждый параметр
например: font.color := ...; font.size := ..; и тд..
--------- Все всегда делается к Лучшему!
Ответ отправил: ~Steep~ (статус: 9-ый класс)
Ответ отправлен: 29.06.2007, 16:03 Оценка за ответ: 4 Комментарий оценки: Шрифт, размер, цвет я изменил, а вот курсиы, жирный, подчёркнутый, зачёрктнутый нет.
Свойство Font.Style - это обычное множество и все действия над множествами применимы и к Font.Style.
Чтобы сделать шрифт жирным, напишите такую строчку:
Font.Style:=Font.Style+[fsBold];
Т.е. здесь к Font.Style добавляется флаг fsBold.
Если написать:
Font.Style:=[fsBold];
То шрифт будет жирным, но все остальные флаги (fsItalic, fsUnderline, fsStrikeOut) будут сняты со шрифта.
Можно вместо fsBold написать: fsItalic, fsUnderline, fsStrikeOut.
Можно и комбинировать:
Font.Style:=Font.Style+[fsBold, fsItalic];
Чтобы сделать шрифт не жирным:
Font.Style:=Font.Style-[fsBold];
Предлагаю Вам две процедуры для сохранения и загрузки параметров шрифта из ini файла (в приложении).
Чтобы их использовать:
LoadFont(ExtractFilePath(Application.ExeName)+'Config.ini', Form1.Font);
SaveFont(ExtractFilePath(Application.ExeName)+'Config.ini', Form1.Font);
где первый параметр - имя файла в той же директории, что и программа.
Удачи.
Приложение:
Ответ отправил: Louken (статус: 9-ый класс)
Ответ отправлен: 29.06.2007, 20:45 Оценка за ответ: 5 Комментарий оценки: Большое спасибо (6 бы поставил :)
Вопрос № 93.349
Здравствуйте всем. Вопрос следующий: Есть ADSL-подключение к инету с динамическим IP. Иногда происходит разрыв соединения и, соответственно, меняется IP. Как программно узнать IP-адрес интернет-соединения? Это мне нужно для удаленного администрирования компа, на котором Инет с динамическим IP.
Отправлен: 29.06.2007, 15:40
Вопрос задал: Idens (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Idens!
Вот несколько статей:
http://delphiworld.narod.ru/base/get_own_ip.html
http://delphiworld.narod.ru/base/get_own_ip2.html
http://delphiworld.narod.ru/base/get_my_ip.html
В чем вам будет проще разобраться, тот и используйте.
--------- Не узнаешь - не попробуешь.
Отвечает: Василенко Алексей Васильевич
Здравствуйте, Idens!
Ответ удален как неверный и помещен на форум Удаленные ответы для обсуждения Эксперт sir henry --------- Человек развивается только преодолевая трудности