Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 822
от 27.05.2007, 16:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 472, Экспертов: 83
В номере:Вопросов: 5, Ответов: 17


Вопрос № 87931: Как в проге добавить такую штуку: нужно поставить ссылку на страничку автора. на нее щелкаешь и заходишь на страницу. ...
Вопрос № 87937: Здравствуйте эксперты. Среди печатных изданий по программированию на С++ почти во всех есть главы довольно подробно описывающие объектно-ориентированное программирование. В книгах Turbo Pascal тоже есть эти главы. По языку Object Pascal что-то не вст...
Вопрос № 87981: как мне создать отчет в delphi 7!! чтобы при нажатии нопки он выводил данные на печать!! данные я создал в таблице компонента DataBase Desktop??? я создал условие и он выводит данные на другую таблицу!! как мне эти данные вывести на печать??? Пришлит...
Вопрос № 88044: Здравствуйте. Delphi 7. Как сделать так, что каждый раз при нажатии батона, число инкрементируется в лабеле? Батон можно нажимать до бесконечности. Стартовое число=0;...
Вопрос № 88076: Здравствуйте! Я пытаюсь использовать в своей программе компонент ShellTreeView но в моих четырех книгах о нем сказано буквально 3 слова. Кое в чем я разобрался но куча глюков. Например,часто(не всегда!,не пойму при каких условиях)глю...

Вопрос № 87.931
Как в проге добавить такую штуку:
нужно поставить ссылку на страничку автора. на нее щелкаешь и заходишь на страницу.

Приложение:

Отправлен: 21.05.2007, 17:09
Вопрос задал: Колпаков Александр Константинович (статус: 1-ый класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Louken
Здравствуйте, Колпаков Александр Константинович!

Вот посмотрите:

procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle, 'open', 'http://www.rusfaq.ru', nil, nil, SW_SHOWNORMAL);
end;
Ответ отправил: Louken (статус: 2-ой класс)
Ответ отправлен: 21.05.2007, 17:31
Оценка за ответ: 5

Отвечает: Ерёмин Андрей
Здравствуйте, Колпаков Александр Константинович!
Для открытия URL можно применить модуль ShellAPI (нужно добавить в uses). А вот и сам код:
ShellExecute(0,'open','http://www','','',SW_SHOWNORMAL);
В качестве гиперссылки можно использовать обычный TLabel: сделать синий шрифт, включить подчёркивание, изменить курсор. А вышеприведённый код записать в обработчик события OnClick.
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на Delphi. Помощь, советы, обмен опытом.
ICQ: 286837644
----
Ответ отправлен: 21.05.2007, 17:31
Оценка за ответ: 5

Отвечает: Виктор Пырлик
Здравствуйте, Колпаков Александр Константинович!
Самый простой спосб - на форму кинуть лэйбочку (TLabel) - на писать на ней что надо (www.domen.ru, ftp.domen.ru myemail@mail.ru и т.д.) щелкнув на ней в дизайнере - определи событие OnClick - где и запищем вызов функции API на выполнение коммнды (это иожет быть любая коммнда!).
Что бы это сработало, надо подключить в разделе Uses модуль ShellApi;

Приложение:

---------
Надо пребывать господа, пребывать! Иначе ничего не получится!

Ответ отправил: Виктор Пырлик (статус: 3-ий класс)
Ответ отправлен: 21.05.2007, 21:05
Оценка за ответ: 5

Отвечает: Elpher2006
Здравствуйте, Колпаков Александр Константинович! Кидайте в окно Label, делайте синий подчеркнутый шрифт, установите нужный курсор и пишите обработчик для OnClick:

procedure TForm1.Label1Click(Sender:TObject);
begin
ShellExecute(Handle,PChar('Open'),PChar('http://www.microsoft.com'),nil,nil, SW_SHOWNORMAL);
end;

---------
Не делай другим того, чего сам не хочешь испытать!
Ответ отправил: Elpher2006 (статус: 1-ый класс)
Ответ отправлен: 25.05.2007, 06:25
Оценка за ответ: 5


Вопрос № 87.937
Здравствуйте эксперты. Среди печатных изданий по программированию на С++ почти во всех есть главы довольно подробно описывающие объектно-ориентированное программирование. В книгах Turbo Pascal тоже есть эти главы. По языку Object Pascal что-то не встречал. Вопрос: есть ли различия в ООП Object Pascal и Turbo Pascal. Если есть, то где почитать подробно (электронные и печатные издания) о ООП именно в Object Pascal? Спасибо за любую помощь.
Отправлен: 21.05.2007, 17:41
Вопрос задал: Beginner (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Анна Игоревна
Здравствуйте, Beginner!
Различия между Object Pascal и Turbo Pascal, если коротко сказать, заключаются в том, что в первом существуют объекты и классы. Построение обектов и классов в С++ и Object Pascal похоже.
НАсчет литературы, то я порекомендовала бы тебе Фаронов В.В. "Delphi 6" (хотя может уже есть и 7), также Шумаков более-менее понятно пишет ... выбор за тобой.
Может кто еще что посоветует...
Ответ отправила: Анна Игоревна (статус: 1-ый класс)
Ответ отправлен: 21.05.2007, 20:38

Отвечает: Виктор Пырлик
Здравствуйте, Beginner!
Object Pascal по определению является объектным языком программирования, наверно, поэтому отдельно для него мне не встречалась литература по ООП. Не смотря на это, Object Pascal не полностью поддерживает концепции ООП - понятие объектно ориентированный язык и объектно ориентированное программирование разные вещи, это важно понять. Турбо Паскаль - процедурный язык, в котором можно реализовать элементы ООП очень ограничено. Основные концепции ООП - полиморфизм, инкапсуляция и наследование не применимы в Паскале в полной мере в обоих языках, в Турбо меньше, в Объектном чуть больше. Объектный Паскаль характерен для Delphi - в этом его можно сравнить в чем-то с Бейсиком - компонентно-ориентированным языком.
Если хотите работать в ООП – используйте, например С++
Иначе если требуется писать событийно ориентированное приложение - пользуйтесь объектно- компонентным подходом (ObjectPascal)
Иначе используете линейную логику на процедурном Turbo Pascal

---------
Надо пребывать господа, пребывать! Иначе ничего не получится!
Ответ отправил: Виктор Пырлик (статус: 3-ий класс)
Ответ отправлен: 21.05.2007, 20:55


Вопрос № 87.981
как мне создать отчет в delphi 7!! чтобы при нажатии нопки он выводил данные на печать!! данные я создал в таблице компонента DataBase Desktop??? я создал условие и он выводит данные на другую таблицу!! как мне эти данные вывести на печать??? Пришлите копию ответа на почту PEHTik@mail.ru!! Заранее благодарен!!
Отправлен: 21.05.2007, 23:29
Вопрос задал: Мухаметшин Ренат Гаязович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Dragon
Здравствуйте, Мухаметшин Ренат Гаязович!
Перенесено в мини-форум! эксперт sir henry
Ответ отправил: Dragon (статус: 2-ой класс)
Ответ отправлен: 21.05.2007, 23:50


Вопрос № 88.044
Здравствуйте. Delphi 7. Как сделать так, что каждый раз при нажатии батона, число инкрементируется в лабеле? Батон можно нажимать до бесконечности. Стартовое число=0;
Отправлен: 22.05.2007, 12:40
Вопрос задал: Rosmag (статус: Посетитель)
Всего ответов: 9
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Rusland
Здравствуйте, Rosmag!
См. приложение.

PS. Сначала присвоить 0 лейблу.

Приложение:

Ответ отправил: Rusland (статус: Профессионал)
Россия, Казань
Адрес: Мой адрес не дом и не улица, мой адрес советский союз
WWW: Логотипы для сотовых телефонов
----
Ответ отправлен: 22.05.2007, 12:46
Оценка за ответ: 4

Отвечает: Архангельский Андрей Германович
Здравствуйте, Rosmag!

Это просто - код в приложении

Приложение:

---------
Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО

Ответ отправил: Архангельский Андрей Германович (статус: Специалист)
Ответ отправлен: 22.05.2007, 12:49
Оценка за ответ: 5

Отвечает: Владимир Коваленко
Здравствуйте, Rosmag!
Примерно так. Label1.Caption присваиваем 0 и ...

Приложение:

Ответ отправил: Владимир Коваленко (статус: 1-ый класс)
Ответ отправлен: 22.05.2007, 12:51
Оценка за ответ: 5

Отвечает: Gsa
Здравствуйте, Rosmag!

Ответ удален, по одной из указанных причин:
- пустой;
- неверный;
- вредный;
- не соответствует вопросу
и помещен для обсуждения в ветку форума
"О деятельности экспертов и работе портала/Удаленные ответы для обсуждения".

-~= Gh0stik =~-
Ответ отправил: Gsa (статус: 3-ий класс)
Ответ отправлен: 22.05.2007, 13:48

Отвечает: Чрнавин Е. А.
Здравствуйте, Rosmag!
В модуле в секции var объявляешь переменную x : Integer = 0;

в обработчике на батон делаешь инкремент:
procedure TForm.Button1Click(Sender: TObject);
begin
x := x + 1;
label.caption := inttostr(x);
end;
Бесконечности конечно не будет но кликать точно запаришься.
Ответ отправил: Чрнавин Е. А. (статус: 1-ый класс)
Ответ отправлен: 22.05.2007, 14:22

Отвечает: Анна Игоревна
Здравствуйте, Rosmag!
До бесконечности не получится по моему.
а так можно сделать следующим образом.
в начале Label.Caption := '0'; (это лучше сделать в конструкторе или в обработчике события создания формы FormCreate)
у меня это выглядет так:
procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.Caption:='0';
end;

в обработчике события OnClick для кнопки Button пишем следующее
i:=StrToInt(Label1.Caption); //берем текст из Label и преобразуем его в целое число
inc(i);// прибавляем 1
Label1.Caption:=IntToStr(i) ; // записываем новое число
у меня это выгляжет так:
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
i:=StrToInt(Label1.Caption);
inc(i);
Label1.Caption:=IntToStr(i) ;
end;
* удалены комментарии в неизвестной кодировке(edited by Ерёмин А.)
Ответ отправила: Анна Игоревна (статус: 1-ый класс)
Ответ отправлен: 22.05.2007, 14:46

Отвечает: Виктор Пырлик
Здравствуйте, Rosmag!
Если свойство Tag у лэйбы не занято:

procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Tag := Label1.Tag+1;
Label1.Caption := IntToStr(Label1.Tag);
end;
иначе
1. гобально (или в классе) обявляем целочисленную переменную val_lable:integer
а дальше...

procedure TForm1.FormCreate(Sender: TObject);
begin
val_lable:= 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
inc(val_lable);
Label1.Caption := IntToStr(val_lable);
end;
---------
Надо пребывать господа, пребывать! Иначе ничего не получится!
Ответ отправил: Виктор Пырлик (статус: 3-ий класс)
Ответ отправлен: 22.05.2007, 21:28

Отвечает: Овчинников Николай Владиславович
Здравствуйте, Rosmag!
Ответ удален, по одной из указанных причин:
- пустой;
- неверный;
- вредный;
- не соответствует вопросу
и помещен для обсуждения в ветку форума
"О деятельности экспертов и работе портала/Удаленные ответы для обсуждения".
И совет - прежде чем ответить, старайтесь проверять код.

-~= Gh0stik =~-
Ответ отправил: Овчинников Николай Владиславович (статус: 1-ый класс)
Ответ отправлен: 23.05.2007, 10:56

Отвечает: Elpher2006
Здравствуйте, Rosmag!
procedure TForm1.Button1Click(Sender:TObject);
begin
Label1.Caption := IntToStr(StrToInt(Label1.Caption) + 1);
end;

---------
Не делай другим того, чего сам не хочешь испытать!
Ответ отправил: Elpher2006 (статус: 1-ый класс)
Ответ отправлен: 25.05.2007, 06:25


Вопрос № 88.076
Здравствуйте!
Я пытаюсь использовать в своей программе компонент ShellTreeView
но в моих четырех книгах о нем сказано буквально 3 слова.
Кое в чем я разобрался но куча глюков.
Например,часто(не всегда!,не пойму при каких условиях)глючит в этом месте:
procedure TmForm.TreeChange(Sender: TObject; Node: TTreeNode);
begin
try if not tree.SelectedFolder.IsFolder then
begin...
end; except end;
...
end;
Может надо предварительно что-то проверить?
Подскажите пожалуйста где есть подробное описание этого компонента и примеры использования.
С уважением Ефремов Илья.
Отправлен: 22.05.2007, 15:37
Вопрос задал: Efremov Iliya (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Igor_
Здравствуйте, Efremov Iliya!

скорее всего, просто нет выбранных элементов и когда вызывается функция
tree.SelectedFolder.IsFolder, то самого объекта tree.SelectedFolder просто нет

Т.е. нужно так
if Assigned(tree.SelectedFolder) then begin
if not tree.SelectedFolder.IsFolder then begin
...
end;
end;

Ответ отправил: Igor_ (статус: 2-ой класс)
Ответ отправлен: 22.05.2007, 16:04


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное