| Delphi:Вопрос-Ответ |
| karuy | Дата: Суббота, 04.02.2012, 19:10 | Сообщение # 201 |
|
постоянный участник
Сообщений: 389
Сейчас на сайте
| Quote (Spider_System) Я нашел что-то про .res-файлы, но по-моему это не совсем то, что нужно. Ошибаешься, как раз то.
++++++++++[>++++++++++>++++++++++>+++++++++++>++++++++++++>++++++++++++<<<<<-]>+++++++.>---.>++++.>---.>+. Для замечаний по поводу грамотности есть репутация.
|
| |
| | |
| Spider_System | Дата: Суббота, 04.02.2012, 19:11 | Сообщение # 202 |
Злой прогер-пьяница
Сообщений: 221
Сейчас нет на сайте
| Quote (karuy) Ошибаешься, как раз то. а, отлично, просто подумал, что это что-то вроде архивов, которые таскать с прогой надо. Ну значит покопаемся в этом деле.
Маньяк. Убийца. Социопат. Анархист. Мой проект: Spider System Исходники Spider System
|
| |
| | |
| GameMix | Дата: Воскресенье, 05.02.2012, 13:03 | Сообщение # 203 |
старожил
Сообщений: 1591
Сейчас нет на сайте
| TimKruz, работа кода впечатляет. Много возможностей у Windows, но их пока изучишь... LunarPixel, твой вариант выглядит просто и работает. Но, так же, не понятно, что за функция.
Спасибо вам за помощь! Буду разбираться .
Но вот появилась проблема касательно Application: Что я такого там сделал, что появляется такая ошибка при обращении к формам?
Steel Standoff - 2D аркада. Мои статьи MTA сервер [GCUP.RU] - RusPlay
Сообщение отредактировал GameMix - Воскресенье, 05.02.2012, 13:08 |
| |
| | |
| karuy | Дата: Воскресенье, 05.02.2012, 13:21 | Сообщение # 204 |
|
постоянный участник
Сообщений: 389
Сейчас на сайте
| GameMix, А на каком ивенте выполняется этот участок кода? - Правильно нинакаком. Либо так делай: Code procedure TForm1.FormCreate(Sender: TObject); begin ShowMessage('ПРИВЕТ'); Close; end;; Либо так: Code procedure aaa; begin ShowMessage('ПРИВЕТ'); Form1.Close; end;
procedure TForm1.FormCreate(Sender: TObject); begin aaa; end; Хотя на онкриейт по идее форма не закроется.
++++++++++[>++++++++++>++++++++++>+++++++++++>++++++++++++>++++++++++++<<<<<-]>+++++++.>---.>++++.>---.>+. Для замечаний по поводу грамотности есть репутация.
|
| |
| | |
| GameMix | Дата: Воскресенье, 05.02.2012, 13:44 | Сообщение # 205 |
старожил
Сообщений: 1591
Сейчас нет на сайте
| karuy, спасибо, теперь ошибка не появляется. Ставил закрытие формы в события onActivate/onShow - форма закрывается не сразу.
Можно как-нибудь сделать, чтобы она закрывалась сразу, не успев отобразиться на панели задач?
Steel Standoff - 2D аркада. Мои статьи MTA сервер [GCUP.RU] - RusPlay
Сообщение отредактировал GameMix - Воскресенье, 05.02.2012, 14:19 |
| |
| | |
| TimKruz | Дата: Воскресенье, 05.02.2012, 16:26 | Сообщение # 206 |
старожил
Сообщений: 1588
Сейчас нет на сайте
| Quote (GameMix) TimKruz, работа кода впечатляет. Много возможностей у Windows, но их пока изучишь... Литературу можно почитать... На Microsoft'ском сайте есть онлайн-справочник (официальный, с примерами на C++ и Delphi), правда, на английском... Есть похожие и на русском... Quote (GameMix) LunarPixel, твой вариант выглядит просто и работает. Но, так же, не понятно, что за функция. Да всё просто. GetAsyncKeyState(код_клавиши) (константы можешь также глянуть в модуле Windows.pas со строчки 18157) возвращает 0, если кнопка не нажата... Вот тут можешь глянуть... или вот описание от Microsoft...
Quote (GameMix) Что я такого там сделал, что появляется такая ошибка при обращении к формам? Код вида «implementation begin blablabla end.» в модулях Delphi выполняется как инициализирующий модуль. Т.е. в нём можно, например, задавать значения переменным, создавать динамические переменные и т.п. Этот код выполняется сразу после подключения к основному коду или другому модулю. Так что в коде project1.dpr, куда подключается твой unit1.pas, этот код будет стоять выше создания и инициализации объектов TApplication и TForm1, следовательно, обращаться к ним нельзя. Quote (GameMix) karuy, спасибо, теперь ошибка не появляется. Ставил закрытие формы в события onActivate/onShow - форма закрывается не сразу. Можно как-нибудь сделать, чтобы она закрывалась сразу, не успев отобразиться на панели задач? Если тебе это окно вообще нафиг не надо, просто удали строчку «Application.CreateForm(TForm1, Form1)» из кода программы. Если тебе нужно сразу закрыть программу, не инициируя формы, можешь заменить в твоём первом варианте кода "form1.close" на "halt(0)". Но благоразумнее удалить форму совсем, если она тебе просто ненужна. Например, ты хочешь просто вывести окошко с сообщением, можешь начать новый консольный проект, удалить из него всё и вставить следующее: Code uses dialogs; begin showmessage('Привет!'); end.
Сообщение отредактировал TimKruz - Воскресенье, 05.02.2012, 16:42 |
| |
| | |
| berzegov | Дата: Воскресенье, 04.03.2012, 14:00 | Сообщение # 207 |
участник
Сообщений: 166
Сейчас нет на сайте
| Подскажите пожалуйста тип данных, чтобы совмещал integer и string.
|
| |
| | |
| LunarPixel | Дата: Воскресенье, 04.03.2012, 14:14 | Сообщение # 208 |
старожил
Сообщений: 2707
Сейчас нет на сайте
| berzegov, в каком смысле совмещал!? переводи из стринга в интеджер и обратно. intotostr(int) и strtoint(str)
Набор в команду по развитию сайта GiGatun.ru
Уроки по GM от LunarPixel
Мой сайт "Лунный Пиксель"
|
| |
| | |
| berzegov | Дата: Воскресенье, 04.03.2012, 16:39 | Сообщение # 209 |
участник
Сообщений: 166
Сейчас нет на сайте
| Quote (LunarPixel) в каком смысле совмещал!?
Например в Edit вводится слово с цифрами и мне надо записать их в одну переменную.
|
| |
| | |
| sk0rpi0n | Дата: Воскресенье, 04.03.2012, 17:41 | Сообщение # 210 |
Tiberium
Сообщений: 478
Сейчас нет на сайте
| Quote Например в Edit вводится слово с цифрами и мне надо записать их в одну переменную. Гм, ну запиши в строку, а если тебе нужны числа, то не быдлокодь, и убери записывание символов(кроме цифр) из Edit.
Занимаюсь моддингом игр и программированием на Delphi/Java/Java Script.
|
| |
| | |
| tracer07 | Дата: Воскресенье, 04.03.2012, 18:01 | Сообщение # 211 |
участник
Сообщений: 156
Сейчас нет на сайте
| berzegov, var s:string; begin s:=edit1.text; end;
в переменную запишутся все символы включая числа и прочие знаки. Никакой другой тип данных для этого не нужен
|
| |
| | |
| TimKruz | Дата: Воскресенье, 04.03.2012, 18:20 | Сообщение # 212 |
старожил
Сообщений: 1588
Сейчас нет на сайте
| berzegov, можешь разделить буквы от цифр, пройдясь по строке, например (исправленный код): Code var str,buf:string; x:longword; i,n:byte; begin str:=edit1.text; n:=length(str); i:=1; while i<=n do begin if str[i] in ['0'..'9'] then begin buf:=buf+str[i]; delete(str,i,1); dec(n); end else inc(i); end; x:=strtoint(buf); end; Этот код поместит в X (целое положительное 32-битное число) число, "зашифрованное" в строке str, переданной из поля Edit1, а в строке str останется строка без цифр. Например, строка "абвгд342клмн09-57ы" будет разбита на число 3420957 и строку "абвгдклмн-ы". Но, можно разбивать иначе, скажем, выделяя отдельные числа, разделённые буквами, или выделять дробные и отрицательные числа. Стандартных средств для этих целей в Delphi нет.
Сообщение отредактировал TimKruz - Воскресенье, 04.03.2012, 20:13 |
| |
| | |
| berzegov | Дата: Воскресенье, 04.03.2012, 18:45 | Сообщение # 213 |
участник
Сообщений: 166
Сейчас нет на сайте
| Quote (sk0rpi0n) Гм, ну запиши в строку, а если тебе нужны числа, то не быдлокодь, и убери записывание символов(кроме цифр) из Edit. Спасибо Quote (sk0rpi0n) в переменную запишутся все символы включая числа и прочие знаки. Никакой другой тип данных для этого не нужен Спасибо, но ты меня чуть не понял
Quote (TimKruz) Этот код поместит в X (целое положительное 32-битное число) число, "зашифрованное" в строке str, переданной из поля Edit1, а в строке str останется строка без цифр. Например, строка "абвгд342клмн09-57ы" будет разбита на число 3420957 и строку "абвгдклмн-ы". Но, можно разбивать иначе, скажем, выделяя отдельные числа, разделённые буквами, или выделять дробные и отрицательные числа. Стандартных средств для этих целей в Delphi нет. Спасибо, это тоже подойдет.
|
| |
| | |
| TimKruz | Дата: Воскресенье, 04.03.2012, 20:10 | Сообщение # 214 |
старожил
Сообщений: 1588
Сейчас нет на сайте
| Quote (berzegov) Спасибо, это тоже подойдет. berzegov, я там ошибся немного (с циклом и множеством цифр), вот исправил, теперь работает правильно: Code var str,buf:string; x:longword; i,n:byte; begin str:=edit1.text; n:=length(str); i:=1; //счётчик while i<=n do //FOR не подойдёт, т.к. длина строки меняться будет if str[i] in ['0'..'9'] then begin buf:=buf+str[i]; delete(str,i,1); dec(n); //уменьшаем длину строки, а счётчик не трогаем end else inc(i); //если не цифра, то просто увеличим счётчик x:=strtoint(buf); end;
Сообщение отредактировал TimKruz - Воскресенье, 04.03.2012, 20:15 |
| |
| | |
| Ivas1256 | Дата: Пятница, 06.04.2012, 14:54 | Сообщение # 215 |
|
был не раз
Сообщений: 6
Сейчас нет на сайте
| я пишу 2D игру, нужно ль на форму кидать какие-либо объекты и если да то какие
Сообщение отредактировал Ivas1256 - Пятница, 06.04.2012, 15:06 |
| |
| | |
| TimKruz | Дата: Пятница, 06.04.2012, 16:04 | Сообщение # 216 |
старожил
Сообщений: 1588
Сейчас нет на сайте
| Ivas1256, всё зависит от того, как (с помощью чего) ты её пишешь. Ты можешь использовать стандартные компоненты (например, кнопки, надписи), а можешь рисовать прямо на канву формы. С использованием DirectX или OpenGL тебе ничего не потребуется (кроме соответствующих модулей; хотя по-прежнему можешь добавлять стандартные компоненты). Как использовать - ищи в поисковиках уроки, лучше книги-самоучители. Есть инкапсулированные в компоненты движки (например, DelphiX, но он давно закрыт и не развивается), для использования которых нужно "кинуть на форму" соответствующий компонент, обычно не визуальный; но игровые движки не идут в комплекте с Delphi, их нужно скачивать и устанавливать отдельно.
Короче, ищи уроки/книги про программирование игр (или, например, использование OpenGL) на Delphi.
Сообщение отредактировал TimKruz - Пятница, 06.04.2012, 16:07 |
| |
| | |
| sk0rpi0n | Дата: Пятница, 06.04.2012, 17:07 | Сообщение # 217 |
Tiberium
Сообщений: 478
Сейчас нет на сайте
| Quote я пишу 2D игру, нужно ль на форму кидать какие-либо объекты и если да то какие Немного не по теме, но можешь попробовать движки ZenGL и GLScene.
Занимаюсь моддингом игр и программированием на Delphi/Java/Java Script.
|
| |
| | |
| Ivas1256 | Дата: Суббота, 07.04.2012, 09:30 | Сообщение # 218 |
|
был не раз
Сообщений: 6
Сейчас нет на сайте
| TimKruz, а вот если мне надо чтоб при нажатии мышкой выполнялось какое-нибудь событие, это через DirectX, через движок или это средствами delphi делается?
|
| |
| | |
| sk0rpi0n | Дата: Суббота, 07.04.2012, 10:11 | Сообщение # 219 |
Tiberium
Сообщений: 478
Сейчас нет на сайте
| Quote а вот если мне надо чтоб при нажатии мышкой выполнялось какое-нибудь событие, это через DirectX, через движок или это средствами delphi делается? Через Delphi
Занимаюсь моддингом игр и программированием на Delphi/Java/Java Script.
|
| |
| | |
| Ivas1256 | Дата: Суббота, 07.04.2012, 18:34 | Сообщение # 220 |
|
был не раз
Сообщений: 6
Сейчас нет на сайте
| Спасибо, буду разбираться
|
| |
| |
|