Вторник, 07 Мая 2024, 01:46

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Программирование » Delphi/Pascal/Object Pascal » Delphi:Вопрос-Ответ (Спросил - получил ответ)
Delphi:Вопрос-Ответ
DestroyДата: Среда, 10 Октября 2012, 17:39 | Сообщение # 241
постоянный участник
Сейчас нет на сайте
Code
reset (f1); { открыть файл для чтения }

вот на эту строчку указывает
karuyДата: Среда, 10 Октября 2012, 17:55 | Сообщение # 242
заслуженный участник
Сейчас нет на сайте
=)) Ты назвал файл 111.txt, тоисть это имя. Вместе з разширениям это 111.txt.txt))) Переназови файлы или измени имена искомых в программе, все отлично работает.
DestroyДата: Четверг, 11 Октября 2012, 18:24 | Сообщение # 243
постоянный участник
Сейчас нет на сайте

да что такое, теперь выдает эту ошибку

Добавлено (11.10.2012, 18:24)
---------------------------------------------
всего лишь поменял имя файл .тхт убрал

karuyДата: Четверг, 11 Октября 2012, 18:46 | Сообщение # 244
заслуженный участник
Сейчас нет на сайте
Учись анализировать ошибки, компилятор тебе говорит, что строка "12_"(двенадцать пробел) не валидное число и не подлежит конвертации в инт.
Цитата из сообщения №236
Quote (karuy)
Создай текстовый файл 111.тхт с двумя произвольными числами через запятую без лишних символов
. Само собой решения проблемы - убрать пробел после 12 в файле 111.тхт
DestroyДата: Четверг, 11 Октября 2012, 18:55 | Сообщение # 245
постоянный участник
Сейчас нет на сайте
Вот блин, просто в англе не так силен. Все теперь все правильно робит.
Спасибо тебе большое, я уж почти отчаялся.
Все теперь полностью понятно smile
karuyДата: Четверг, 11 Октября 2012, 18:57 | Сообщение # 246
заслуженный участник
Сейчас нет на сайте
Quote (Destroy)
Спасибо тебе большое, я уж почти отчаялся.

Да не за что.
TimKruzДата: Пятница, 12 Октября 2012, 22:58 | Сообщение # 247
старожил
Сейчас нет на сайте
Quote (karuy)
readln (f1, st); {читаем строку из файла f1 }
i := StrToInt(Copy(st, 1, Pos(',', st)-1)); { первое число }
j := StrToInt(Copy(st, Pos(',', st)+1, length (st))); { второе }

Значительно проще сделать так:
Quote
readln(f1, i, j);

При этом числа i и j должны быть записаны в файле f1 через пробел, а система сама их разобьёт на отдельные числа, и не придётся лишний раз мучиться с запятыми, лишними пробелами и тому подобным...
Кстати, Destroy просил "без всяких процедур Delphi", а StrToInt - дополнительная функция, содержится в модуле SysUtils. Если нужно использовать только стандартные функции, StrToInt нужно заменить на Val, но код будет выглядеть ещё сложнее; просто не имеет смысла (в решении конкретной задачи) обрабатывать строку из файла, отдельно выделять запятые и всё такое, когда можно сделать проще...
Quote (karuy)
=)) Ты назвал файл 111.txt, тоисть это имя. Вместе з разширениям это 111.txt.txt))) Переназови файлы или измени имена искомых в программе, все отлично работает.

Destroy, в настройках папок Windows разреши показывать расширения файлов. Если ты программист, почти всегда приходится контролировать полное имя каждого файла...


DestroyДата: Пятница, 19 Октября 2012, 13:27 | Сообщение # 248
постоянный участник
Сейчас нет на сайте
Quote (TimKruz)
Значительно проще сделать так:

спасибо, учту)).

Добавлено (19.10.2012, 13:27)
---------------------------------------------
опять вопрос уже по дельфи:
как сделать чтобы при перетаскивания одного маленького изображения по другому большому( фон), маленьких не выходил за границу большого и не лез на форму
вот исходник http://rghost.ru/41024833


Сообщение отредактировал Destroy - Пятница, 19 Октября 2012, 20:18
TimKruzДата: Суббота, 20 Октября 2012, 21:53 | Сообщение # 249
старожил
Сейчас нет на сайте
Quote (Destroy)
как сделать чтобы при перетаскивания одного маленького изображения по другому большому( фон), маленьких не выходил за границу большого и не лез на форму

В событии перемещения мыши (OnMouseMove) ограничиваешь перемещение границами, типа
Code
if (x - смещение) >= левая_граница then <смещение_влево>
if (x + смещение) <= (правая_граница - ширина_картинки) then <смещение_вправо>
if (y - смещение) >= верхняя_граница...
if (y + смещение) <= (нижняя_граница - высота_картинки)...

Или можно так:
Code
if (требуется_смещение_влево) and ((x - смещение) > левая_граница) then <смещение_влево>
...




Сообщение отредактировал TimKruz - Суббота, 20 Октября 2012, 21:55
FerasetДата: Воскресенье, 28 Октября 2012, 17:10 | Сообщение # 250
Издание игр
Сейчас нет на сайте
Как сделать так, чтобы жеёсткие рамки формы исчезли? Я имею ввиду положение от нулевых координат верхнего левого угла. Тоесть нужно чтобы можно было ллицезреть не только плюсовые но и минусовые координаты smile . А лучше как убрать эти рамки совсем?

Спасибо пользователю TimCruz, за то что научил меня спокойствию, терпимости и вере в цели.

karuyДата: Воскресенье, 28 Октября 2012, 22:16 | Сообщение # 251
заслуженный участник
Сейчас нет на сайте
Лучше задачу нарисуй, а то для меня это пока не имеет никакого смысла.
FerasetДата: Воскресенье, 28 Октября 2012, 22:27 | Сообщение # 252
Издание игр
Сейчас нет на сайте

smile вот тут. Вопрос в том как видеть за формой.


Спасибо пользователю TimCruz, за то что научил меня спокойствию, терпимости и вере в цели.



Сообщение отредактировал Feraset - Воскресенье, 28 Октября 2012, 22:35
TimKruzДата: Понедельник, 29 Октября 2012, 17:12 | Сообщение # 253
старожил
Сейчас нет на сайте
Quote (Feraset)
Как сделать так, чтобы жеёсткие рамки формы исчезли? Я имею ввиду положение от нулевых координат верхнего левого угла. Тоесть нужно чтобы можно было ллицезреть не только плюсовые но и минусовые координаты smile . А лучше как убрать эти рамки совсем?

Рамку и заголовок окна можно убрать, установив параметр BorderStyle формы TForm в значение bsNone.
Окна в Windows считают верхнюю левую точку за (0;0), и изменить это никак нельзя. Если хочешь увидеть изображение, вылезающее за левый верхний угол - смещай это изображение сам.
Quote (Feraset)
smile вот тут. Вопрос в том как видеть за формой.

Доступ к изображению запрещён (403). sad


FerasetДата: Понедельник, 29 Октября 2012, 22:05 | Сообщение # 254
Издание игр
Сейчас нет на сайте
Нельзя ли в таком случае сделать форму динамически, поставив нулевую координату в центре формы?

Спасибо пользователю TimCruz, за то что научил меня спокойствию, терпимости и вере в цели.

karuyДата: Понедельник, 29 Октября 2012, 22:18 | Сообщение # 255
заслуженный участник
Сейчас нет на сайте
Quote (Feraset)
поставив нулевую координату в центре формы?

А что тебе мешает добавлять вручную смещения? Х+Width/2, Y+Height/2
TimKruzДата: Понедельник, 29 Октября 2012, 22:21 | Сообщение # 256
старожил
Сейчас нет на сайте
Quote (Feraset)
поставив нулевую координату в центре формы?

Читай внимательно:
Quote (TimKruz)
Окна в Windows считают верхнюю левую точку за (0;0), и изменить это никак нельзя.

Если тебе нужна точка отсчёта в центре, либо рассчитывай её вручную, ко всем координатам прибавляя половину длины/ширины, либо используй OpenGL для вывода графики, там (0;0) в центре.


FerasetДата: Понедельник, 29 Октября 2012, 22:51 | Сообщение # 257
Издание игр
Сейчас нет на сайте
Quote (TimKruz)
либо используй OpenGL

Интересный вариант буду пробовать


Спасибо пользователю TimCruz, за то что научил меня спокойствию, терпимости и вере в цели.

DestroyДата: Четверг, 01 Ноября 2012, 23:01 | Сообщение # 258
постоянный участник
Сейчас нет на сайте
надо чтобы при нажатии в одной форме на изображение, изображение в другой форме менялось на это( на которое нажали).
что то типо переменной для изображения.
karuyДата: Четверг, 01 Ноября 2012, 23:45 | Сообщение # 259
заслуженный участник
Сейчас нет на сайте
Destroy, а в чем собственно проблема?
Code

Uses
        Unit2;

procedure TForm1.Image1Click(Sender: TObject);
begin
   Form2.Image1.Picture.Bitmap.Assign(Form1.Image1.Picture.Bitmap);
end;
DestroyДата: Понедельник, 05 Ноября 2012, 11:57 | Сообщение # 260
постоянный участник
Сейчас нет на сайте
да я еще не эксперт в дельфи)

а как сделать тоже самое только на одной форме вводится, на другой выводится текст

примерно так?
Code

procedure TForm1.editChange(Sender: TObject);
begin
    Form2.label.caption.PCharpstring(Form1.edit.text);
end;  

вот что за место PCharpstring должно быть?

Добавлено (02.11.2012, 12:38)
---------------------------------------------
а не надо
все сам разобрался)

Добавлено (04.11.2012, 14:19)
---------------------------------------------
еще вопрос. как сделать чтобы при при перетаскивании одного изображения на другое( неважно, даже если касается маленькая часть) вылазило сообщение или новая форма или еще что нибудь( это не так важно). Опишите сам процесс столкновения

Добавлено (05.11.2012, 11:57)
---------------------------------------------
up!!

Сообщение отредактировал Destroy - Пятница, 02 Ноября 2012, 12:35
Форум игроделов » Программирование » Delphi/Pascal/Object Pascal » Delphi:Вопрос-Ответ (Спросил - получил ответ)
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг