Вопрос № 59030: Здравствуйте!
Каким образом в определённой ячейке StrigDrid вывести текст под углом 90 градусов?
Если невозможно, то какой компонент посоветуете?
Спасибо!...Вопрос № 59031: Уважемые эксперты, помогите решить проблемму.
В переменную s:string; читаю параметры запуска, очищаю от мусора. остается путь к файлу который надо открыть. Вызываю ShellExecute(...PChar(s)...); и получаю ошибку что файл не найден и путь начинающи...Вопрос № 59073: Уважаемы Эксперты!
Подскажите, как значение S:Extended вывестив TEdit.
Заранее благодарен, Ustas...Вопрос № 59096: Как можно загрузить любые фалы (не только текстовые, но и видео, аудио и исполняемые, но в знаковой форме) в Memo?...Вопрос № 59110: Уважаемы Эксперты!
Подскажите, с помощью какой команды можно скопировать поле ввода TEdit в буфер обмена?
Как тоже проделть с переменной?
Заранее благодарен, Ustas....Вопрос № 59113: Здравствуйте уважаемые эксперты! У меня к вам такой вопрос:
Можно ли как-нибудь в Delphi из нескольких объектов-родителей сделать один дочерний (т.е. как в С++ друзья). Если да, то желательно бы с примером.
...Вопрос № 59117: Доброго времени суток всем!
У меня возникла такая проблема: Есть MDI приложение на Child форме которого создан RichEdit, а на главной форме создана кнопка SpeedButton при нажатии которой текст из RichEdit должен сохраняться в файл. Однако по...Вопрос № 59119: Здравствуйте.
У меня такая проблема:
Я делаю игру - гонки вид сверху, где машинка - images2, карта под ней images1 (на images1 нарисована дорога и дома рядом стоящие), мне надо сделать так, чтобы машинка ездила только по дорогам и не выхо...Вопрос № 59120: Добрый вечер, уважаемые!
У меня вопрос по компонентам JEDI, в частности ControlBar.
На ControlBar имеется четыре ToolBar-а, вопрос - как сохранить
в ini-файле их позиции и потом их в эти позиции вывести? Нет,
собственно сам процесс со...Вопрос № 59135: Здравствуйте!!! В текстовом файле имеется текст:
admin:admin/adm2/asd2
user:12345/1111/12321/
pol:2222/3333/5555/
www:wwww/eeee/
kool:9999/
kkk:9999/
Набор символов до двоеточия соответствует логину пользователя, после дво...Вопрос № 59137: Вопрос по dll. Как можно использовать глобальную переменную внутри dll но так чтоб её значение можно было изменить в runtime из вызывающей программы....Вопрос № 59158: Здравствуйте! Подскажите, пожалуйста, как отправить строку в COM порт и получить ответ. Спасибо.
..
Вопрос № 59.030
Здравствуйте!
Каким образом в определённой ячейке StrigDrid вывести текст под углом 90 градусов?
Если невозможно, то какой компонент посоветуете?
Спасибо!
Отправлен: 15.10.2006, 22:16
Вопрос задал: Zoof (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Zoof!
Посмотрите, может это поможет Вам (см. второй пример).
Удачи!
--------- Ответы на все вопросы - на сайте www.ya.ru ☺
Отвечает: Александр Викторович Анкудинов
Здравствуйте, Zoof!
Перерисовывайте содержимое определённых ячеек по событию DrawCell StringGrid'а. Собственно для вывода текста под углом создайте свой собственный шрифт с определёнными параметрами. В приложении находится функция для вывода текста под углом снабженная коментариями. Параметры шрифта берутся от старого шрифта.
Уважемые эксперты, помогите решить проблемму.
В переменную s:string; читаю параметры запуска, очищаю от мусора. остается путь к файлу который надо открыть. Вызываю ShellExecute(...PChar(s)...); и получаю ошибку что файл не найден и путь начинающийся с пути к моей программе как "C:Program filesprog C:program filesadobePhotoshop.exe" в точке прерывания перед вызовом путь был нормальным.
Отправлен: 15.10.2006, 22:38
Вопрос задал: Monah (статус: 5-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 21)
Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Monah!
Работает все ОК.
Перед ShellExecute выполните ShowMessage(s); и посмотрите, что выводится в окне.
Если не получается - присылайте что Вы делаете с s и строку ShellExecute.
--------- Ответы на все вопросы - на сайте www.ya.ru ☺
Ответ отправил: Устинов Сергей Евгеньевич (статус: Студент)
Ответ отправлен: 15.10.2006, 23:06 Оценка за ответ: 3 Комментарий оценки: Вы не внимательно читали. Перед вызовом ShellExecute стоит точка прерывания. Там значение вполне корректное. Возможно причина в преобразованиия PChar(s) ShellExecute(application.Handle, 'open', PChar(s), nil, nil, SW_SHOWNORMAL);
Отвечает: Lev
Здравствуйте, Monah!
Не, тут без исходного текста не разобраться. Только что прогнал Ваш пример (учел даже не стоящий у Вас после 'C:' слэш). Все равно работает железобетонно.
Ответ отправил: Lev (статус: 1-ый класс)
Ответ отправлен: 16.10.2006, 00:35
Вопрос № 59.073
Уважаемы Эксперты!
Подскажите, как значение S:Extended вывестив TEdit.
Заранее благодарен, Ustas
Отправлен: 16.10.2006, 09:01
Вопрос задал: Ustas (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Monah
Здравствуйте, Ustas!
var e: extended;
Edit1.text:=FloatToStr(E); Или
Edit1.text:=FormatFloat('Формат', E);
Формат такой
'#' - цифра если есть
'0' - цифра если есть или ноль, если пусто.
Например e:=3.141526 формат = '00.0#' выведет '03.14'
Ответ отправил: Monah (статус: 5-ый класс)
Ответ отправлен: 16.10.2006, 09:14 Оценка за ответ: 5 Комментарий оценки: Спасибо.Ответ составлен отлично, плюсь пример.Ещё раз Спасибо!
Отвечает: Andronik
Здравствуйте, Ustas!
var a: TEdit
...
a.Text := FloatToStr (s[, формат])
Примерно так
--------- Запрограммировать можно все... кроме собственного поведения
Ответ отправил: Andronik (статус: 1-ый класс)
Ответ отправлен: 16.10.2006, 09:15 Оценка за ответ: 5
Отвечает: Gh0stik
Здравствуйте, Ustas!
Есть еще один не менее эффективный способ форматированного вывода вещественного числа:
Edit1.text:=Format('%8.2d',[e]); //выводит число с двумя знаками после запятой
Удачи!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Практикант)
Ответ отправлен: 16.10.2006, 10:31 Оценка за ответ: 5 Комментарий оценки: Спасибо.
Отвечает: Н.В.
Здравствуйте, Ustas!
Почему-то все забыли про процедуру str().
Вот её описание:
str(x,s) - переводит числов строку.
Перевод целого числа: str(5,s); // s = '5'
Перевод вещественного числа: str(5.3,s); // s = 5.30000...E+000
Это не красиво и не всегда нужно.
Форматированный перевод чисел:
a) целые: str(5,3,s); // s = ' 5'
б) вещественные:
str(число:всего символов в строке:кол-во символов после точки, s);
str(5.3:6:2,s); // s = ' 5.30'
str(1000.3:6:2,s); // s = '1000.30' - Delphi не обрезает строку, а увеличивает длину выводимой строки.
Удачи!
--------- http://TheDelphi.Ru
Ответ отправил: Н.В. (статус: 7-ой класс)
Ответ отправлен: 16.10.2006, 18:09 Оценка за ответ: 5 Комментарий оценки: Большое спасибо, учтём!
Вопрос № 59.096
Как можно загрузить любые фалы (не только текстовые, но и видео, аудио и исполняемые, но в знаковой форме) в Memo?
Отвечает: Monah
Здравствуйте, Томша Павел!
Очень просто, но вы увидите только отображаемые знаки с ASCII кодом<32
memo1.list.loadFromFile(имя файла);
Если Вам не обязательно видеть, а только обрабатывать то лучше воспользоваться потоком - см. приложение
Приложение:
Ответ отправил: Monah (статус: 5-ый класс)
Ответ отправлен: 16.10.2006, 13:13
Вопрос № 59.110
Уважаемы Эксперты!
Подскажите, с помощью какой команды можно скопировать поле ввода TEdit в буфер обмена?
Как тоже проделть с переменной?
Заранее благодарен, Ustas.
Отправлен: 16.10.2006, 14:23
Вопрос задал: Ustas (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Werewolf
Здравствуйте, Ustas!
попробуй
edit1.CopyToClipboard; =)
либо смотри на
http://delphiworld.narod.ru/_os_.html
раздел "Буфер обмена"
Удачи.
Ответ отправил: Werewolf (статус: Студент)
Ответ отправлен: 16.10.2006, 14:32 Оценка за ответ: 5
Отвечает: Bcd
Здравствуйте, Ustas!
1.edit1.CutToClipboard
2.clipboard.AsText := Edit1.Text;
В uses надо добавить Clipbrd.
Ответ отправил: Bcd (статус: 1-ый класс)
Ответ отправлен: 16.10.2006, 20:44 Оценка за ответ: 5 Комментарий оценки: Спасибо большое.
Вопрос № 59.113
Здравствуйте уважаемые эксперты! У меня к вам такой вопрос:
Можно ли как-нибудь в Delphi из нескольких объектов-родителей сделать один дочерний (т.е. как в С++ друзья). Если да, то желательно бы с примером.
Отправлен: 16.10.2006, 14:38
Вопрос задал: Ram (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Mexes
Здравствуйте, Ram!
В Delphi нет множественного наследования.
Правда, можно реализовывать несколько интерфейсов.
Дружественных классов тоже нет, просто классы в одном модуле имеют полный доступ к полям друг друга.
Ответ отправил: Mexes (статус: 4-ый класс)
Ответ отправлен: 16.10.2006, 14:45
Отвечает: Sattar
Здравствуйте, Ram!
TMyClass = class(TFirstClass,TSecondClass,....)
public
//Всі необхідні властивості створеного класу. які були описані в класах
//TFirstClass,TSecondClass,....
end;
Ответ отправил: Sattar (статус: 1-ый класс)
Ответ отправлен: 17.10.2006, 00:21
Отвечает: Monah
Здравствуйте, Ram!
Можно создать класс содержаший в себе несколько других.
Но дочернии слассы надо создовать самому в конструкторе основного, и уничтожать в его деструкторе.
Приложение:
Ответ отправил: Monah (статус: 5-ый класс)
Ответ отправлен: 17.10.2006, 09:30
Вопрос № 59.117
Доброго времени суток всем!
У меня возникла такая проблема: Есть MDI приложение на Child форме которого создан RichEdit, а на главной форме создана кнопка SpeedButton при нажатии которой текст из RichEdit должен сохраняться в файл. Однако получаю ошибку обращения к адресу памяти...... что весьма удивляет!!!
Делал так:
procedure TMainForm.spSkinSpeedButton4Click(Sender: TObject);
var
formi,spisok,l: integer;
s: string;
Child: TMDIChild;
begin
formi:=MainForm.MDIChildCount;
While formi <> 0 Do
begin
spisok:=MainForm.ListBox1.Items.Count-1;
while spisok<>-1 do
begin
s:=MainForm.ListBox1.Items[spisok];
If MainForm.MDIChildren[formi].Caption = s Then
begin
l:=formi;
MainForm.MDIChildren[formi].Show;
MainForm.SynEdit1.Lines.SaveToFile(s);
Child(l).Memo1.Modified:=false;
//здесь ошибка компиляции а если я не указываю индекс к Child то все компилирует, но ошибка о которой говорилось вверху!!!
end;
Отвечает: Monah
Здравствуйте, Melnikovpa!
Естественно ошибка ведь Child это не массив, а дочерняя форма.
MainForm.MDIChildren[i].Memo1.Modified:=false; И все должно заработать.
Ответ отправил: Monah (статус: 5-ый класс)
Ответ отправлен: 17.10.2006, 09:43
Вопрос № 59.119
Здравствуйте.
У меня такая проблема:
Я делаю игру - гонки вид сверху, где машинка - images2, карта под ней images1 (на images1 нарисована дорога и дома рядом стоящие), мне надо сделать так, чтобы машинка ездила только по дорогам и не выходила за её пределы (чтоб она не ездила по домам) + самое главное - как сделать чтоб машинка двигалась нормально, с траекторией поворота и т.д. чтоб управляя с клавиатуры она не просто двигалась вперед, назад, влево и вправо, а при полном повороте разварачивалась на 90 градусов. При этом при каждом малейшем повороте
картинка менялась на другую. Как сделать?
И еще вопрос - как сделать чтоб скорость управлялась, т.е. чем дольше жмеш вперед тем скорость становилась больше, а при отпускании кнопки постепенно уменьшалась до 0. Почему картинка мигает при движении, как это исправить? Как сделать чтоб при нажатии вперед и влево, она ехала вперед и влево, а не только вперед, или только влево.
Вобщем - как сделать правдоподобное движение машинки.
Заранее благодарен.
Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, Pashenin Mihail Evgenevich!
Во-первых, статьи про программирование игр есть на www.dtf.ru
Алгоритм поворота картинки... именно по таком словосочетанию и ищется где-дь в сети.
Чтобы скорость управлялась - ввести скорость.
И в основном цикле игры, если кнопка нажата, то не
if key = VK_UP then
x := x + 0.01;
делать, а так:
if key = VK_UP then
vx := vx + 0.01;
x := x + vx;
vx := vx * 0.95; // затухание
if abs(vx) < 0.0001 then vx := 0; // до нуля
Чтобы картинка не мигала, нужна двойная буфферизация. Т.е. перед тем нарисовать изображение на экране, надо целиком подготовить его в памяти, а потом уже рисовать.
Для обработки одновременных нажатий клавиатуры надо либо отлавливать события onKeyDown/onKeyUp, либо (что более правильно) работать через DirectX (а именно DirectInput)
Чтобы машина не ездила по домам, надо либо распознавать карту, чтобы программа "отличала" дома от дороги, либо задавать к карте дополнительно ей эту информацию.
Даже учитывая, что вы решили сделать не очень сложную и большую игру, так сходу это будет довольно непросто и надо будет много чему научиться.
--------- Не узнаешь - не попробуешь.
Ответ отправил: Сухомлин Кирилл Владимирович (статус: Практикант)
Ответ отправлен: 16.10.2006, 16:51 Оценка за ответ: 4 Комментарий оценки: Спасибо, для начала хватит, надож попробывать и своими мозгиками подумати! Феникью!оК.
Вопрос № 59.120
Добрый вечер, уважаемые!
У меня вопрос по компонентам JEDI, в частности ControlBar.
На ControlBar имеется четыре ToolBar-а, вопрос - как сохранить
в ini-файле их позиции и потом их в эти позиции вывести? Нет,
собственно сам процесс сохранения проходит нормально, но иногда
они выводятся не в ту позицию, в которую по идее должны. Например,
располагаем ToolBar-ы по порядку их номеров друг под другом в четыре строки, сохраняем их позиции в файл:
Все нормально. Но если переместить, например, ToolBar1 в четвертую строку, то он никогда там не появится, а будет во второй строке вторым, а строк всего будет, соответственно, три. А это не есть хорошо. Так вот как из положения выйти? Подскажите, пожалуйста.
Отвечает: Werewolf
Здравствуйте, Савенко Вадим Иванович!
Используйте свойство Constraints ToolBar'ов
установленное значении MinWidth не даст ToolBar'у свернуться до минимального размера или стать рядом с другим toolbar'ом.
PS:пользуюсь последней версией jvcl
Ответ отправил: Werewolf (статус: Студент)
Ответ отправлен: 16.10.2006, 16:24
Вопрос № 59.135
Здравствуйте!!! В текстовом файле имеется текст:
admin:admin/adm2/asd2
user:12345/1111/12321/
pol:2222/3333/5555/
www:wwww/eeee/
kool:9999/
kkk:9999/
Набор символов до двоеточия соответствует логину пользователя, после двоеточия (через /) идут пароли под которыми
данный пользователь может войти в программу(не более 3) тоесть при открытии программа запрашивает логин(в Edit1) и пароль(в Edit2).
1 )Как организовать доступ только для тех пользователей, которые есть в файле???
2) Как сделать так чтобы использованный пароль удалялся из файла после входа в систему??
3)Как сделать чтобы только admin мог добавить, удалить пользователя и изменить пароль любого пользователя
Отправлен: 16.10.2006, 18:00
Вопрос задал: Rewer8 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Sattar
Здравствуйте, Rewer8!
var
Users:array[1..10] of String; //для 10 користувачів
F:textfile;
I:integer;
S:string;
procedure TForm1.FormCreate(Sender: TObject);
begin
AssignFile(F,'c:pasw.txt');
if FileExists('c:pasw.txt')=False then ShowMessage('Вхід не можливий!!!')
else
begin
reset(F);
For I:=1 to 10 do
begin
readln(F,S);
Users[I]:=S;
end;
end;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
rewrite(F);
for i:=1 to 10 do
if Users[i]<>'' then
writeln(F,Users[i]);
CloseFile(F);
end;
procedure TForm1.EnterClick(Sender: TObject);
begin
for i:=1 to 10 do
if pos(Login.Text+':',Users[i])<>0 then
if pos(Pasw.Text+'/',Users[i])<>0 then
begin
Delete(Users[i],pos(Pasw.Text+'/',Users[i]),Length(Pasw.Text)+1);
Showmessage('Доступ заборонений!!!');
end;
Login.Text:='';
Pasw.Text:='';
end;
Ответ отправил: Sattar (статус: 1-ый класс)
Ответ отправлен: 17.10.2006, 00:07 Оценка за ответ: 5
Отвечает: Кулаков Антон Сергеевич /SandroNec
Здравствуйте, Rewer8!
Я бы посоветовал бросить вам эту затею и воспользоваться ini файлами, вот ссылки по данной теме:
http://code-code.narod.ru/art/ini.html
http://www.excode.ru/art189.html#start
http://code.pp.ru/forum/index.php?showtopic=123
http://hyyuducom.narod.ru/santer/articles/2.html
http://z-ol.chat.ru/reestr.htm
http://delphiworld.narod.ru/base/kol_lesson9.html
--------- Настоящий программист на вопрос - "можешь ли ты это сделать", всегда ответит - "да", а потом подумает как
Отвечает: Werewolf
Здравствуйте, Negruzzi Cristian!
глобальную переменную можно использовать в любом модуле либо в файле проекта DLL, если в модуле, то надо будет указывать его во всех других модулях, использующих эту переменную.
Чтобы значение можно было изменить:
Надо эпортировать функцию, которая будет изменять значение переменной по параметру
и
вызвать её.
Удачи.
Ответ отправил: Werewolf (статус: Студент)
Ответ отправлен: 16.10.2006, 19:01 Оценка за ответ: 5
Вопрос № 59.158
Здравствуйте! Подскажите, пожалуйста, как отправить строку в COM порт и получить ответ. Спасибо.