Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» умельцам Delphi

Автор: Bad_BoY
Дата сообщения: 03.01.2003 08:39
Всем привет! Я хочу сделать прогу и она должна иметь такие функция как: есть любой сайт но мне надо чтобы моя прога брала определённый кусок и постоянно обновляло его при нажатии на кнопку!
Автор: moonrise
Дата сообщения: 04.01.2003 13:35
придется тебе каждый сайт(точнее страницу как я понял) преобразовывать в хтмл при нажатии на каппу куда-то грузить саму страницу и обновлять (читай отображать) преобразованный обратно хтмл в заданном диапазоне.
Автор: avr555
Дата сообщения: 04.01.2003 18:17
Нужно воспользоваться HTML-парсерами (www.torry.net), разобрать страницу на составляющие и выбрать только то, что тебе нужно.
Автор: sailor
Дата сообщения: 04.04.2003 15:59
Господа, такой маленький вопросик: есть ли в Дельфи (Паскале) функция, которая показывает - хранится в строке числовое значение или нет?
Автор: Guderian
Дата сообщения: 04.04.2003 16:16
Bad_BoY
Определенный чем кусок?

sailor

Код:
var
R,E: Integer;
begin
Val('бла-бла-бла', R, E);
...
Автор: Mamay
Дата сообщения: 04.04.2003 19:06
Проще

Цитата:
R := StrToIntDef('бла-бла-бла', -1);


Если R -1 значит промахнулись либо строка в натуре равна -1
Автор: JeanM
Дата сообщения: 04.04.2003 19:45
Mamay - клево!!! у меня была парочка подобных ситуевин И, надо сказать, решение, как и все гениальное - проще не придумаешь
Автор: Sleepwalker
Дата сообщения: 05.04.2003 01:19
JeanM
RTFM рулит

а не пробовали, если в строке несколько цифр.. разделенных буквами, че получится?
Автор: Mamay
Дата сообщения: 05.04.2003 02:09
-1 получится!
Автор: Pupsik
Дата сообщения: 05.04.2003 06:38
Так про прогу: получи страницу TcpClient'ом,
найди начало того места которое надо выкусить через
Pos, и делай с ним, что хочешь... Работы на два часа...
Автор: aarrtteemm
Дата сообщения: 05.04.2003 07:32
Немоного меньше возьни с выдиранием интересующего фрагмента будет, если подключишь какую-нибудь библиотечку с регулярными выражениями, благо, что их существует до кучи.
Автор: IntenT
Дата сообщения: 05.04.2003 11:44
Mamay

Цитата:
-1 получится!

[исправлено]
СОри, это про ВАЛ
ПОлучится только первое число до первой буквы.
Еррор будет содержать индекс буквы в строке
Автор: sailor
Дата сообщения: 05.04.2003 11:54
Решение с Val'ом меня устроило (тем более я когда-то знал эту функцию, когда ещё Turbo-Pascal юзал). Следущий маленький вопросик - как считать в дельфи значение клавиши, которая была нажата. Ну аналог readkey есть или нет?
Автор: merlkerry
Дата сообщения: 05.04.2003 14:31

Цитата:
Ну аналог readkey есть или нет?

нет - отсутствует - тут у тебя event-driven applications - но вот если через wm_keydown ???
Автор: sailor
Дата сообщения: 05.04.2003 14:50
merlkerry
Благодарю за помощь...
Автор: sailor
Дата сообщения: 06.04.2003 10:34
Т.к. специальной темы для новичков Delphi на Ру-Борде вроде как пока нет, буду задавать свои вопросики тут. Вот и очередной:
Допустим, у меня проект представляет собой 2 окна. 1-е с некими свойствами (выплывающие списки, едит-тексты и т.п.), 2-е - маленькое окошко, которое вызывается из первого и в котором можно эти свойства (1-го окна) изменить. При нажатии кнопки "назад" у меня срабатывает Form1.Show (где Form1 - форма 1-го окна), а в первом окне создание свойств объектов на форме находится в TForm1.FormShow(..). Я так думал, что при вызове Form1.Show все объекты обновятся... не тут то было. Дело в том, что когда я вызываю второе окошко, первое в это время не закрыто (если его закрывать - Form1.Close, а потом открывать о5 - Form1.Show, то всё путём - свойства обновляются, но мне то надо, чтобы окно №1 не закрывалось!!). Вот такой вот простенький вопросик.

Добавлено
Догадываюсь, что дело скрыто в event'ах.. надо, наверное использовать не OnShow, а что-то другое. Но что?
Автор: UncoNNecteD
Дата сообщения: 06.04.2003 14:34

Цитата:
Допустим, у меня проект представляет собой 2 окна. 1-е с некими свойствами (выплывающие списки, едит-тексты и т.п.), 2-е - маленькое окошко, которое вызывается из первого и в котором можно эти свойства (1-го окна) изменить. При нажатии кнопки "назад" у меня срабатывает Form1.Show (где Form1 - форма 1-го окна), а в первом окне создание свойств объектов на форме находится в TForm1.FormShow(..). Я так думал, что при вызове Form1.Show все объекты обновятся... не тут то было. Дело в том, что когда я вызываю второе окошко, первое в это время не закрыто (если его закрывать - Form1.Close, а потом открывать о5 - Form1.Show, то всё путём - свойства обновляются, но мне то надо, чтобы окно №1 не закрывалось!!). Вот такой вот простенький вопросик.


Нифига не понял... что не обновляется? Откуда должно обновлятся?
Если ты напишешь в обработке событий второй формы
Form1.Edit1.Text:='blah blah'
то оно само сразу обновится.
Если тебе надо обновлять через FormShow - так и вызывай эту функцию сразу после закрытия второго окна.
(для запуска второго окна юзай Form2.ShowModal)
Автор: sailor
Дата сообщения: 06.04.2003 15:35
UncoNNecteD

Цитата:
Если ты напишешь в обработке событий второй формы
Form1.Edit1.Text:='blah blah'  
то оно само сразу обновится.

Так дублируется код... Но я пока так и сделал.


Кстати, а можно как-нибудь автоматически выравнивать элементы на форме, аки в HTML Align=center и т.п.?
Автор: UncoNNecteD
Дата сообщения: 06.04.2003 16:00

Цитата:
Так дублируется код

Вынеси в отлельную функцию и вызывай ее!


Цитата:
Кстати, а можно как-нибудь автоматически выравнивать элементы на форме, аки в HTML Align=center и т.п.?

У каждого (почти) объекта есть свойство align, а у самой формы много чего еще - эксперементируй
Автор: sailor
Дата сообщения: 06.04.2003 16:01
Такой вопрос: как обрабатывать исключения? Вроде синтаксис: try (....) exept (....) end;
Где в случае ошибки в первых скобках обрабатываются операторы во вторых скобках? Или не так?

UncoNNecteD

Цитата:
Вынеси в отлельную функцию и вызывай ее!

Пробовал.. DOAшные функции внутри моих "невидимы" почему-то....


Цитата:
эксперементируй

Этим только и занимаюсь
Автор: Mamay
Дата сообщения: 06.04.2003 18:50
sailor

Цитата:
Кстати, а можно как-нибудь автоматически выравнивать элементы на форме, аки в HTML Align=center и т.п.?

Выделяешь компоненты какие хочешь выровнять, бьеш мыш по правой почке, и получаешь менюшку в которой выбираешь Position\Allign... - имеешь форму для выравнивания выбранных компонентов!


На будущее - создавай отдельный топик!


Добавлено
Для обработки исключений в Делфи существуют конструкции

try
...
except
...
end;

и

try
...
finally
...
end;


Первая предназначена, восновном, для обработки ошибки.
Вторая - для выполнения некоторых действий, независимо от того произошла ли исключительная ситуация в блоке try.
Автор: vserd
Дата сообщения: 07.04.2003 09:45
sailor

Цитата:
Вынеси в отлельную функцию и вызывай ее!
Пробовал.. DOAшные функции внутри моих "невидимы" почему-то....

А как ее создавал?
Как отдельную процедуру, или как метод Объекта (формы)?

P.S. Настоятельно рекомендую прочитать книжку по Delphi. Если нет доступа к книжке, тогда доку и Help. Уж очень ты вопросы легкие задаешь. Ответы на них есть в книжке по языку. Еще пара вопросиков, и отвечать будут RTFM.


Автор: Pinocchio
Дата сообщения: 07.04.2003 12:50
[cite]
обновляются, но мне то надо, чтобы окно №1 не закрывалось!!). Вот такой вот простенький вопросик. [/cite]
У каждой формы есть событие OnClose. В параметре события передаётся переменная CloseAction. Ей нуджно присвоить значение caNone.
Для того, чтобы узнать код нажатой клавиши, нужно обрабатывать события формы OnKeyDown и OnKeyUp. Они получают в параметрах значения клавиш.
Автор: A3
Дата сообщения: 10.04.2003 07:18
С помощью какой функции/процедуры можно сделать так, чтобы твоя программа запускала другую?! (Delphi)
Автор: merlkerry
Дата сообщения: 10.04.2003 12:58
Есть такая функция в Win32API - CreateProcess()
Автор: oio
Дата сообщения: 10.04.2003 15:13
A3
или ещё проще
ShellExecute(Self.Handle, 'open', PChar(FileName), nil, nil, SW_SHOWNORMAL);
хотя CreateProcess() гибче
Автор: A3
Дата сообщения: 11.04.2003 19:01
Спасибо!
Еще вопрос: как узнать путь, откуда твоя программа запускается?

Автор: vserd
Дата сообщения: 12.04.2003 09:05
A3
GetCurrentDir, иногда может помочь Application.Exename
Автор: BoBaH
Дата сообщения: 12.04.2003 11:43
vserd
ИМХО это не может помочь только с случае, если нет экземпляра класса TApplication
Автор: mcs
Дата сообщения: 12.04.2003 12:59
sailor
try (...)//если произошло исключение,
except(...)//то выполняем этот код
//Но почему-то не все Exceptions отлавливаются
end;

Про exception'ы неплохо написано в родном дельфовском хелпе

Страницы: 12

Предыдущая тема: openGL vs. DIRECT3D


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.