Вопрос № 40085: Здравствуйте! Подскажите, плиз, как сделать неактивной кнопку "Развернуть"/"Свернуть" вверху формы и запретить юзера изменять размеры формы? Заранее благодарен!...Вопрос № 40086: Здравствуйте! Подскажите, пожалуйста хороший сайт с иконками для использования в приложениях! Буду очень признателен!...Вопрос № 40119: Привет.
Пишу программку, что-то вроде help'a. И мне нужно, чтобы по ходу текста были ссылочки, нажав на которые открывалась бы форма.
Подскажите как реализовать идею. ...Вопрос № 40127: Здраствуйте уважаемые эксперты. Возник вопрос как в StringGrid
вставить текст из буфера обмена и соответственно скопировать выделенную клетку в буфер обмена....Вопрос № 40151: Здравствуйте! Подскажите, плиз, как сделать, чтобы в статус-баре все время отображался определенный текст, в зависимости от выбранной радио-кнопочки? Заранее спасибо!...Вопрос № 40157: Здраствуйте, эксперты! Помогите, пожалуйста, с такой проблемой:
написал для кафедры программу-тест. Вопросы, варианты ответов и правильный вариант хранятся в Ini-файле (прада, расширение я сделал *.dat). Т.е. вполне реально, что особо одаренные с...Вопрос № 40162: Уважаемые эксперты. Подскажите, как можно в Delphi создать приложение для управления удаленным компьтером (перезагрузка, выключение). ...Вопрос № 40163: Здравствуйте, эксперты!
Подскажите, можно ли организовать вывод записей в ListBox разными цветами. Меняю ListBox1.Font.Color для определённых записей. Выводится всё одним цветом....
Вопрос № 40.085
Здравствуйте! Подскажите, плиз, как сделать неактивной кнопку "Развернуть"/"Свернуть" вверху формы и запретить юзера изменять размеры формы? Заранее благодарен!
Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Андрющенко Вячеслав Васильевич!
Запретить изменять размеры можно выбрав Borderstyle="bsSingle" и
BorderIcons biMinimize=false biMaximize=false
Отвечает: Рубан Николай Николаевич
Здравствуйте, Андрющенко Вячеслав Васильевич!
Для запрта кнопок выбери в свойствах формы BorderIcons и поставь соответственно false для того чтобы кнопка была не активна
Для запрета изменения разменра формы нужно изменить свойство BorderStyle на bsSingle
--------- Мыслю - занчит существую (Декарт)
Ответ отправил: Рубан Николай Николаевич (статус: 3-ий класс)
Ответ отправлен: 12.04.2006, 13:11
Отвечает: Проходящий Мимо
Здравствуйте, Андрющенко Вячеслав Васильевич!
Вам нужно свойство формы BorderIcons.biMaximize в инспекторе объектов выставить в false или Form1.BorderIcons := Form1.BorderIcons - [biMaximize].
Для запрета изменений размеров формы можно выставить свойство Form1.BorderStyle := bsSingle;
Обработка собщений Windows дает больше возможностей, например разрешить изменять размер окна не более или не менее какого-то значения:
//добавить в объявление класса формы
protected
procedure WMGetMinMaxInfo(var Message: TMessage); message WM_GETMINMAXINFO;
end;
//в реализации
procedure TForm1.WMGetMinMaxInfo(var Message: TMessage);
type
PTMinMaxInfo = ^TMinMaxInfo;
begin
with PTMinMaxInfo(Message.LParam)^.ptMinTrackSize do
begin
//окно будет не меньше 750х550, больше - может
x := 750;
y := 550;
end;
inherited;
end;
--------- Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 2-ой класс)
Ответ отправлен: 12.04.2006, 13:12
Вопрос № 40.086
Здравствуйте! Подскажите, пожалуйста хороший сайт с иконками для использования в приложениях! Буду очень признателен!
Отвечает: Рубан Николай Николаевич
Здравствуйте, Андрющенко Вячеслав Васильевич!
Вот посмотрите на эту ссылочку
http://www.megarelax.ru/download/icons.html
или
http://www.capa.ru/2006/02/20/Tech-Icons-tehnicheskie-ikonki.html
--------- Мыслю - занчит существую (Декарт)
Ответ отправил: Рубан Николай Николаевич (статус: 3-ий класс)
Ответ отправлен: 12.04.2006, 13:31
Отвечает: Проходящий Мимо
Здравствуйте, Андрющенко Вячеслав Васильевич!
посмотрите на:
http://iheartny.com//icons.html
http://sweb.ws/ico/1.html
Очень много ссылок на коллекции иконок http://doci.nnm.ru/icons
--------- Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 2-ой класс)
Ответ отправлен: 12.04.2006, 13:50
Отвечает: Brutaller
Здравствуйте, Андрющенко Вячеслав Васильевич!
Вот сайт http://npix.ru , тоже есть ссылки на всякие иконки и прочие украшательства.
Ответ отправил: Brutaller (статус: 1-ый класс)
Ответ отправлен: 14.04.2006, 08:14
Вопрос № 40.119
Привет.
Пишу программку, что-то вроде help'a. И мне нужно, чтобы по ходу текста были ссылочки, нажав на которые открывалась бы форма.
Подскажите как реализовать идею.
Отправлен: 12.04.2006, 20:06
Вопрос задал: Denton (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Delphin
Здравствуйте, Denton!
1. Использовать веб-браузер в своем приложении и обрабатывать ссылки. (есть событие)
2. Использовать RxRichEdit и отлавливать ссылки. (есть событие)
3. Написать свой собственный редактор или использовать сторонний. На torry.net я даже нашел несколько порядочных редакторов, который могли сделать то, что ты хочеш.
--------- Обращаться в ICQ: 66550088 (Ally) или E-Mail: AvePassion@GMail.Com
Ответ отправил: Delphin (статус: Студент)
Ответ отправлен: 12.04.2006, 21:17
Вопрос № 40.127
Здраствуйте уважаемые эксперты. Возник вопрос как в StringGrid
вставить текст из буфера обмена и соответственно скопировать выделенную клетку в буфер обмена.
Отвечает: Проходящий Мимо
Здравствуйте, Костя Симанович!
Попробуйте так через пункты меню "Копировать" и "Вставать":
procedure TForm1.Paste1Click(Sender: TObject);
begin
SendMessage(GetFocus, WM_PASTE, 0, 0);
end;
procedure TForm1.Copy1Click(Sender: TObject);
begin
SendMessage(GetFocus, WM_COPY, 0, 0);
end;
Эти методы посылают сообщение окну с текущим фокусом.
Автор: Kurt Barthelmess
--------- Carpe diem!
Ответ отправил: Проходящий Мимо (статус: 2-ой класс)
Ответ отправлен: 13.04.2006, 11:43
Отвечает: Рубан Николай Николаевич
Здравствуйте, Костя Симанович!
На сколько я понял вы пытались скопировать текст просто выделив ячейку.
Но если свойство Options.goEditing=true то при выделении ТЕКСТА ячейки все прекрастно копируется и в ставляется из буфера.
--------- Мыслю - занчит существую (Декарт)
Ответ отправил: Рубан Николай Николаевич (статус: 3-ий класс)
Ответ отправлен: 13.04.2006, 13:15
Вопрос № 40.151
Здравствуйте! Подскажите, плиз, как сделать, чтобы в статус-баре все время отображался определенный текст, в зависимости от выбранной радио-кнопочки? Заранее спасибо!
Ответ отправил: Рубан Николай Николаевич (статус: 3-ий класс)
Ответ отправлен: 13.04.2006, 12:20
Вопрос № 40.157
Здраствуйте, эксперты! Помогите, пожалуйста, с такой проблемой:
написал для кафедры программу-тест. Вопросы, варианты ответов и правильный вариант хранятся в Ini-файле (прада, расширение я сделал *.dat). Т.е. вполне реально, что особо одаренные студенты откроют этот файл через Блокнот и все сдадут!:)) Если какие-нибудь варианты защиты данных (как-нибудь прикомпилировать к екзешнику, положить в DLL и т.д) - при этом, чтобы принцип работы с INI остался - прога уже ведь написана! Хотелось бы, конечно, чтобы файл могли редактировать преподаватели - Менять список вопросов и
т.д. Помогите, пожалуйста! Заранее спасибо!
Отправлен: 13.04.2006, 07:01
Вопрос задал: Neiroman (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Полховский Александр Владимирович
Здравствуйте, Neiroman!
Хорошо было бы шифровать вариант ответа, используя системное время или какую-нибудь математическую фенкцию. Сейчас что-нибудь простенькое наваяю...
var
ThisTime: TDateTime;
DecryptStr, CryptStr: string;
Multiplier:byte;
RandChar: char; begin
ThisTime:=now;
Multiplier:=random(200)+1;
RandChar:=chr(ord('A')+random(50));
CryptStr:=ansireversestring(inttostr(datetimetofiledate(thistime)))+RandChar+inttostr(Multiplier)+'|'+inttostr(Multiplier*datetimetofiledate(ThisTime)*strtoint(edit1.Text)+ord(RandChar));//edit1.Text - шифруемое число (в текстовом виде, естественно)
Тут использовалась простейшая линейная функция. Все её параметры мы записали в строку (в модификации участвовало системное время, его мы записали превым в перевёрнутом виде). Расшифровать, конечно, можно, на надо наверняка знать результат, понимать многие вещи в программировании и быть гением :) Если расшифруют - можно смело ставить 5 ! Шучу, конечно.
надеюсь, расшифровать Вы сами сможете.
Ещё посоветую базу держать в Тмутаракани, чтоб её попросту никто не нашёл :)
Отвечает: sir henry
Здравствуйте, Neiroman!
Реальная защита в Вашем случае - только шифрование, т.к. файл у Вас текстовый. Можно применить простейший алгоритм XOR, данные при этом в текстовом редакторе читаться не будут, точнее там будет бессмыслица. Естественно редактировать этот файл можно будет только средствами самой программы, т.е. после расшифровки.
Просто прикомпилировать к экзешнику тоже не выход, поскольку у Вас алгоритм для работы с INI-файлом, при запуске программы нужно будет этот INI выгрузить на диск.
DLL - та же проблема, что и просто с текстовым файлом. В текстовом редакторе там будут видны ответы открытым текстом.
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 13.04.2006, 07:33
Отвечает: AnD1
Здравствуйте, Neiroman!
Необходимо использовать шифорвание. Например, в приложении алгоритм RC4 (достатоно стойкий ;) ). И теперь операции r/w Вашего файла происходят так:
CryptFile; // разшифровали
{чтение/запись ini-шника}
CryptFile; //зашифровали
Приложение:
Ответ отправил: AnD1 (статус: 3-ий класс)
Ответ отправлен: 13.04.2006, 10:03
Отвечает: Diman_A
Здравствуйте, Neiroman!
Вы не уточнили, каким образом вам нужно шифровать информацию: можно шифровать стоки, в которых содержатся правильные ответы, либо шифровать весь файл.
Шифрование всего файла:
http://www.noil.pri.ee/downloads/component/Security/Crypting/aeslib.zip - шифрование по алг. AES
http://www.pssoft.ru/files/vcl/dcpcrypt.exe - отличный набор компонентов для реализации шифрования по самым известным алгоритмам. (размер 188 Kb).
Ну, а строки можно шифровать с помощью алгоритмов XOR или DES. Примеры этих и других алгоритмов есть в DelphiWorld http://delphiworld.narod.ru/ в разделе синтаксис-шифрование. Советую скачать саму базу DelphiWorld (~20 мб) - если программируете, будет очень полезно.
По теме вашей программы.
В 55 номере журнала "Хакер" (качайте с www.wisesoft.ru) есть статья Delphi: Тест для Большого Дяди на все 100! В ней как раз и рассмотрено создание тестирующей программы и редактора вопросов к ней. Только там основой является не INI, а XML файл. По моему, намного удобней.
Ответ отправил: Diman_A (статус: 8-ой класс)
Ответ отправлен: 13.04.2006, 10:51
Вопрос № 40.162
Уважаемые эксперты. Подскажите, как можно в Delphi создать приложение для управления удаленным компьтером (перезагрузка, выключение).
Отвечает: Злоумышленник
Здравствуйте, Сапожников Владимир Алексеевич!
В Инете можно взять книжку (а лучше купить в магазине, не пожалеешь) М. Флёнов "Программирование в Delphi глазами ][акера". Там на стр. 176-186 есть раздел 4.9. Троянский конь. Это то, что тебе надо.
--------- No admins!
Ответ отправил: Злоумышленник (статус: 6-ой класс)
Ответ отправлен: 13.04.2006, 10:05
Отвечает: AnD1
Здравствуйте, Сапожников Владимир Алексеевич!
Это называется клиент-серверная архитектура. Создаете две программы - первая серевер ("висит" на удаленном компе) вторая - клиент (ей вы управляете удаленным компом). Подробное создание такой проги описано здесь:
http://www.realcoding.net/article/view/250?ShmID=c8e98affb9edf6ad2effb2ed66f2ac93
Ответ отправил: AnD1 (статус: 3-ий класс)
Ответ отправлен: 13.04.2006, 10:15
Вопрос № 40.163
Здравствуйте, эксперты!
Подскажите, можно ли организовать вывод записей в ListBox разными цветами. Меняю ListBox1.Font.Color для определённых записей. Выводится всё одним цветом.
Отправлен: 13.04.2006, 09:40
Вопрос задал: Ramil (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ерёмин Андрей
Здравствуйте, Ramil!
Поставьте для ListBox: style="lbOwnerDrawFixed" и перерисовывайте каждую строку по своему усмотрению через событие OnDrawItem. Вот самый простой вариант:
Отвечает: Рубан Николай Николаевич
Здравствуйте, Ramil!
Ответ такой:
Изменяем сначало свойтво Style объекта ListBox примерно так:
ListBox1.Style:=lbOwnerDrawVariable;
А затем пишем такой обработчик на событие OnDrawItem:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with (Control as TListBox).Canvas do
begin
case Index mod 3 of
0: Font.Color := clBlue;
1: Font.Color := clRed;
2: Font.Color := clGreen;
end;
FillRect(Rect);
TextOut(Rect.Left, Rect.Top, (Control as TListBox).Items[Index]);
end;
end;
В данном примере строки перекрашиваются с периодим 3. (Blue,Red,Green,Blue,Red,Green,..........)
--------- Мыслю - занчит существую (Декарт)
Ответ отправил: Рубан Николай Николаевич (статус: 3-ий класс)
Ответ отправлен: 13.04.2006, 13:06
Отвечает: Diman_A
Здравствуйте, Ramil!
Установите свойство ListBox1.Style равным lbOwnerDrawFixed, а в обработчик OnDrawItem напишите код, приведенный в приложении.
Приложение:
Ответ отправил: Diman_A (статус: 8-ой класс)
Ответ отправлен: 13.04.2006, 14:36