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

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

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

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

Выпуск № 1097
от 21.03.2008, 04:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 443, Экспертов: 58
В номере:Вопросов: 4, Ответов: 7

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 127397: Помогите пожалуйста,есть код на С++,нужно его сделать на Делфи,очень надо,зарание благодарен всем....
Вопрос № 127422: Здравствуйте, уважаемые эксперты. Доброго вам времени суток. Такой вот у меня вопрос есть по Delphi: Написал я программку, на форму расположил 3 кнопки (Speedbutton1,2,3), рисунок, и текст (Memo1). По нажатию на speedbutton1 запускается exe-фай...
Вопрос № 127448: Здравствуйте. Подскажите как сделать, чтобы при наведении курсора кнопки подсвечивались, как это сделано в программах под Windows XP? И как сделать, чтобы сами кнопки прорисовывались в соответствии с о стилем Windows....
Вопрос № 127513: Здравствуйте, у меня такой вопрос: На форме у меня есть кпокпа с маленьким рисунком (TbitnButton), при нажатии на нее, открываеться форма, с этим рисунком но уже на всю форму, но форма должна быть например 800*600, или 1024*768, и мне нужно сделать т...

Вопрос № 127.397
Помогите пожалуйста,есть код на С++,нужно его сделать на Делфи,очень надо,зарание благодарен всем.

Приложение:

Отправлен: 15.03.2008, 09:58
Вопрос задал: Arias (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Denisss

Здравствуйте, Arias!

В приложении находится текст переведенного в Delphi кода.

В примере добавлены 2 функции:
1. cls: очистка экрана.
В c++ используется system("cls"), аналога которой, насколько мне известно, в Delphi нет.
Код функции cls взят отсюда: ссылка.
2. toDOS: преобразование строки в OEM кодировку (т.е. в кодировку командной строки).
Показывает пример преобразования строки из кодировки cp1251 (Windows-1251) в cp866, чтобы можно было писать в командной строке используя буквы кириллицы. При этом, в самом проекте Вы также видите, что и где пишется.

Обе функции используют WinAPI.

Удачи!

Приложение:

---------
Будь осторожен, когда молишься ради чего-то, потому что можешь это получить...

Ответ отправил: Denisss (статус: Профессионал)
Россия, Москва
ICQ: 281599577
----
Ответ отправлен: 15.03.2008, 11:47
Оценка за ответ: 5

Отвечает: Delph
Здравствуйте, Arias!

Если Вас устроит переход от консольного приложения к обычному оконному, то предлагаю Вам такой вот простенький вариант: Скачать. В приложении - реализация основного модуля программы CalcUnit.pas. Программа написана на Delphi 7.

Если у Вас другая версия Delphi и Вы не сможете открыть в ней проект, то на главной форме выложены компоненты Nmb1Edit, Nmb2Edit, ResultEdit: TLabeledEdit, а также AddButton, SubButton, MulButton, DivButton, SqrtButton, PowerButton: TSpeedButton. К кнопкам подцеплены приведённые в тексте приложения обработчики нажатия.

Приложение:

---------
Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.

Ответ отправил: Delph (статус: Студент)
Ответ отправлен: 15.03.2008, 11:48
Оценка за ответ: 5


Вопрос № 127.422
Здравствуйте, уважаемые эксперты. Доброго вам времени суток. Такой вот у меня вопрос есть по Delphi:
Написал я программку, на форму расположил 3 кнопки (Speedbutton1,2,3), рисунок, и текст (Memo1). По нажатию на speedbutton1 запускается exe-файл. При нажатии на Speedbutton2 запускается Web-страница. SpeedButton3 – это «выход». Создал еще одну форму (пустую). Естественно, расположил на ней несколько кнопок. Что еще надо расположить на форме, что написать в обработчиках TForm2.SpeedButtonClick, чтобы сделать так, чтобы на этой форме пользователь мог сам менять заголовок первой формы (Caption), менять адрес Web-страницы, менять названия кнопок (Caption), менять рисунок, менять текст (в Memo 1)? И как сделать, чтобы пользователь мог сохранить такую конфигурацию?
Очень буду рад подробным инструкциям. Извиняюсь, если нечетко выразил вопрос. Если что, пожалуйста, в мини-форуме скажите, какую еще надо дать информацию.
С уважением, Георгий.

Приложение:

Отправлен: 15.03.2008, 12:24
Вопрос задал: Чечин Георгий Александрович (статус: 3-ий класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 7)

Отвечает: Marked One
Здравствуйте, Чечин Георгий Александрович!
Во-первых, добавляем в раздел uses второй формы имя модуля первой.
В модуль первой формы после "public {Public declarations}" добавим переменную sWebSite типа string. В ней мы будем хранить адрес сайта. После этого переделаем SpeedButton2Click вот так:

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
ShellExecute(Handle, nil, sWebSite, nil, nil, SW_SHOW);end;
end.

На вторую форму ложем TEdit и TSpeedbutton. В edit мы будем записывать адрес сайта, а по нажатию на SpeedButton-сохранять.
Вот обработчик этой кнопки:

procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
Form1.sWebSite:=Edit1.text;
end;

Ложим на вторую форму еще Tmemo и TSpeedButton. В обработчике кнопки пишем:

form1.memo1.lines:=memo1.lines;

Ложим TEdit и кнопку. В этот edit вводится имя файла с рисунком. Обработчик кнопки:

form1.image1.Picture.LoadF romFile(PictureEdit.text);

Думаю, изменить заголовок формы и кнопок сможешь изменить сам.

А теперь про сохранение конфигурации.
Будем использовать TIniFile. О нем прочитаете здесь. Я приведу лишь один пример работы с TiniFile.
Добавьте кнопку, по нажатию которой мы будем сохранять адрес сайта. Обработчик:

var
IniFile:TIniFile;
begin
IniFile:=TIniFile.create('conf.ini');
IniFile.WriteString('conf', 'WebSite', edit1.text);
IniFile.free;
end;

Чтобы при запуске программы адрес сайта загружался в sWebSite, создадим обработчик OnCreate у первой формы:

var
IniFile:tinifile;
begin
IniFile:=TIniFile.create('conf.ini');
IniFile.WriteString('conf', 'WebSite', 'http://site.ru/');
IniFile.free;
end;

Надеюсь этого достаточно.
Удачи!!!

исправлена длинная ссылка.
-----
∙ Отредактировал: Николай Владимирович / Н.В. (Профессионал)
∙ Дата редактирования: 16.03.2008, 11:25

Ответ отправил: Marked One (статус: 8-ой класс)
Ответ отправлен: 15.03.2008, 14:57
Оценка за ответ: 5
Комментарий оценки:
Спасибо большое. Действительно хороший ответ. Такая еще есть просьба: пожалуйста, если несложно, загляните еще в мини-форум завтра. У меня наверняка будут еще вопросы. И пожалуйста дайте другую ссылку на сайт и информацией, а то та не работает. Заранее спасибо.
Георгий.


Вопрос № 127.448
Здравствуйте. Подскажите как сделать, чтобы при наведении курсора кнопки подсвечивались, как это сделано в программах под Windows XP? И как сделать, чтобы сами кнопки прорисовывались в соответствии с о стилем Windows.
Отправлен: 15.03.2008, 15:49
Вопрос задал: Хукаленко Дмитрий (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Genia007
Здравствуйте, Хукаленко Дмитрий!
Чтобы сами кнопки прорисовывались в соответствии со стилем Windows, нужно к проекту подключить модуль XPMan, который находится на вкладке Win32.

исправлена опечатка.
-----
∙ Отредактировал: Николай Владимирович / Н.В. (Профессионал)
∙ Дата редактирования: 16.03.2008, 11:39
Ответ отправил: Genia007 (статус: 8-ой класс)
Ответ отправлен: 15.03.2008, 16:06
Оценка за ответ: 5
Комментарий оценки:
XPMan не нашёл, нашёл XPManifest - работает. Спасибо.

Отвечает: Selya
Здравствуйте, Хукаленко Дмитрий!
В Delphi7 бросьте на форму TXPManifest.
Ответ отправил: Selya (статус: 9-ый класс)
Ответ отправлен: 15.03.2008, 17:50
Оценка за ответ: 5
Комментарий оценки:
Сасибо. Всё работает. Но есть проблема. О ней в мини форуме.


Вопрос № 127.513
Здравствуйте, у меня такой вопрос: На форме у меня есть кпокпа с маленьким рисунком (TbitnButton), при нажатии на нее, открываеться форма, с этим рисунком но уже на всю форму, но форма должна быть например 800*600, или 1024*768, и мне нужно сделать так чтобы её размер нельзя было изменить(расширить, или развернуть) тогда просто когда окно разворачиваеться получаеться не красиво, рисунок опреденного размера и свободное место получаеться.

2. Можно ли задать координаты, где на мониторе я хочу видеть форму(т.е её расположение)

Заранее спасибо.
Отправлен: 16.03.2008, 01:21
Вопрос задал: Makavely (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Николай Владимирович / Н.В.
Здравствуйте, Makavely!
По первому вопросу: необходимо задать параметры ClientWidth (ширина) и ClientHeight (высота) для формы, на которой должен показываться рисунок. И изменить свойство BorderStyle на bsSingle, чтобы нельзя было менять ее размеры. Также надо отключить кнопку разворота на весь экран. Для этого в Object Inspector найдите свойство BorderIcons, нажмите на плюсик слева от него - развернется список с возможными кнопками. В этом списке находите свойство biMaximize и меняете его на False. Также можно отключить возможность свернуть данное окно - для этого поменяйте biMinimize на False.

Координаты формы можно задавать через свойства Top - расстояние от верха экрана и Left - расстояние слева.
Если хотите, чтобы форму нельзя было перетаскивать, можно убрать у нее заголовок: надо изменить свойство BorderStyle на bsNone, но в таком случае надо продумать, как форма будет закрываться.

Поскольку картинки у Вас разного размера и Вам надо будет при загрузке каждой из них менять размер формы, то советую также у компонента TImage (если Вы на него выводите картинку) установить свойство Align в alClient - тогда он автоматически растянется на весь размер формы при смене ее размеров.

Если будут еще вопросы, пишите в мини-форум.

Удачи!
Ответ отправил: Николай Владимирович / Н.В. (статус: Профессионал)
Россия, Москва
WWW: nvsoft.org
ICQ: 420720
----
Ответ отправлен: 16.03.2008, 11:03
Оценка за ответ: 5
Комментарий оценки:
большое спасибо !

Отвечает: Genia007
Здравствуйте, Makavely!
1. Что - бы нельзя было развернуть форму, нужно в свойствах формы указать BorderIcons biMaximize:= False, чтобы нельзя было растянуть мышкой - BorderStyle:= bsDoalog.
2. Задать координаты формы можно функцией:
SetWindowPos(Form1.Handle, 0, 100, 200, 400, 500, SWP_SHOWWINDOW); где
100 - позиция окна от левого края экрана,
200 - позиция окна от верха экрана,
400 - длинна формы,
500 - высота формы.
Ответ отправил: Genia007 (статус: 8-ой класс)
Ответ отправлен: 17.03.2008, 12:57


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

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

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

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

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

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


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


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

В избранное