Помощь начинающему

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Leon
новенький
Сообщения: 65
Зарегистрирован: 30.03.2011 09:27:02

Сообщение Leon »

Ребята.кто знает.Я уже замаялся.Требуется сменить иконку в программе Лазаруса.Ну чтоб моя программа в папке была не с синим кошачьим ногтем,а с каким-нить цветком или еще чего там.Захожу в свойства проекта там где меняются иконки.Удаляю их коготь и даю ссылку на свою картинку.Вроде принимает.Проблемы начинаются при компиляции.Пишет "не могу скомпилировать ресурс".Выбрасываешь иконку вообще - дело идет.Пробовал уже разные форматы и размеры,разные папки с картинками.Все то же.Что за х..нь? Глюки Лазаруса или я что-то не так делаю? Спасибо.
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Сообщение Little_Roo »

Размер выдерживаем 32х32 ??? Или формат графики левый...или битый... :(
Leon
новенький
Сообщения: 65
Зарегистрирован: 30.03.2011 09:27:02

Сообщение Leon »

Размер дал уже 30х30.Пробовал форматы JPG,BMP,ICO,PNG.Кстати,загрузчик в строке перечисления допустимых форматов именно их и перечисляет.А под родным лазаровским лаптем в квадратике есть шкала с ползунком,которая позволяет растягивать эту иконку аж на 256х256.Кому нужны такие большие иконки? Кстати посмотрел файл ICO этого самого лазаровского лаптя программой MediaInfo. Так там оказался целый пакет иконок разных размеров.
А в моем случае я все вроде сделал правильно.И графика вроде не битая,вьюверы видят ее без вопросов.И не могут же все форматы быть битыми! Это нонсенс. Отладчик английским пишет,что проблема компиляции файла ресурсов.Для более полной информации воспользуйтесь -vt. Куда ее эту -vt сунуть? Еще напишу че-нибудь,что слетит даже то,что есть.Вобщем такая вот морока.
iskander
энтузиаст
Сообщения: 627
Зарегистрирован: 08.01.2012 18:43:34

Сообщение iskander »

Leon, можете показать текст файла проекта (*.lpr)?
Leon
новенький
Сообщения: 65
Зарегистрирован: 30.03.2011 09:27:02

Сообщение Leon »

Пожалуйста.

program project1;

{$mode objfpc}{$H+}

uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
{Interfaces,} // this includes the LCL widgetset
Forms, Unit1, unit2, Interfaces;

{$IFDEF WINDOWS}{$R project1.rc}{$ENDIF}

{$R *.res}

begin
Application.Title:='myprog';
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;
end.

На все это добро компилятор выдает вот что:

Compiling resource project1.or
project1.lpr(22,1) Error: Error while compiling resources. Compile with -vd for more details. Check for duplicates.
project1.lpr(22,1) Fatal: There were 1 errors compiling module, stopping

Поди-ка разберись чего он хочет.22-я строка как раз и есть end.
Ask
постоялец
Сообщения: 163
Зарегистрирован: 25.12.2008 02:51:37

Сообщение Ask »

Это какая-то старая версия Лазаруса, новые не пишут {$R project1.rc}
iskander
энтузиаст
Сообщения: 627
Зарегистрирован: 08.01.2012 18:43:34

Сообщение iskander »

Leon, попробуйте закомментировать строку

Код: Выделить всё

{$IFDEF WINDOWS}{$R project1.rc}{$ENDIF}
fpbt
новенький
Сообщения: 17
Зарегистрирован: 27.09.2011 21:48:35

Сообщение fpbt »

Здравствуйте.

Подскажите, модуль "TlHelp32" можно заменить на "JwaTlHelp32" или может чем-то другим? (сам TlHelp32 не нашел)
Leon
новенький
Сообщения: 65
Зарегистрирован: 30.03.2011 09:27:02

Сообщение Leon »

Да,действительно.Программу писал еще на старых Лазарусах.Поэтому код еще их.Теперь стоит 1.0.4 Вот он и выдает эти фокусы.Самое интересное,что буквально сегодня завел новый проект,сунул туда картинку 80х120 и все прошло как по-салу.Никто даже и не возмутился о каких-либо размерах.Программа сама переработала иконку под приемлемые размеры.А вот старая программа почему-то неспособна к сим трюкам.Ругается компилятор и все... :roll:
Leon
новенький
Сообщения: 65
Зарегистрирован: 30.03.2011 09:27:02

Сообщение Leon »

Здравствуйте.Такая вот задачка.Накатал я праздниками программку,которая обслуживает АЦП.Это определенная аппаратная заморочка: инициализация интерфейсов,портов и проч.Вобщем все работает,если ... Если вдругна пару секунд пропадет свет или даже пройдет сетевая помеха,аппарат зависает.Требуется заново перезапускать программу,чтобы все восстановить.
ВОПРОС: Нельзя ли как-то изнутри программы избежать этой напасти,т.е. делать рестарт этой же программы изнутри самой программы? Похоже на "масло масляное",ну а вдруг есть такой программный фокус... Подскажите,уважаемые эксперты.
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Этот "программный фокус" делается очень просто - Источник Бесперебойного Питания. Программирование в Вашем случае даже рядом не валялось. ;)
Leon
новенький
Сообщения: 65
Зарегистрирован: 30.03.2011 09:27:02

Сообщение Leon »

Увы я тоже ни к чему лучшему не догадался.Пришлось приобрести ИБП...

Теперь следующая задачка.Есть некоторые стандартные цвета С1 и С2.И есть цвет опытного образца ExColor.Все естественно TColor.Требуется программно определить (ну,скажем в %) к какому цвету из двух стандартных ближе опытный образец.Мои мысли:
1.Сравнивать десятичные числа цветов ExColor с С1 и С2.
2.Сравнивать по компонентам R c R,G c G,B c B. Но тогда как все свести воедино? Пропорции ведь окажутся разными,а как сделать вывод о схожести в цифровом виде?
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Надо вычислить среднеарифмитическое у цветов С1 и С2, и сравнивать с ним ExColor. По любому кто-то, С1 или С2 больше другдруга. Вот и смотрите, если ExColor меньше среднеарифметического, значит этот цвет ближе к меньшему цвету, если больше, то ближе к большему. ;)
Аватара пользователя
Vapaamies
постоялец
Сообщения: 292
Зарегистрирован: 24.07.2012 22:37:59
Откуда: Санкт-Петербург
Контактная информация:

Сообщение Vapaamies »

Почитать в Википедии, как делается квантование в GIF. Мне его как-то даже на SQL пришлось реализовывать.
nikolay61
новенький
Сообщения: 27
Зарегистрирован: 15.08.2012 16:58:46

Сообщение nikolay61 »

Где ошибка?
program pomylka;

uses crt;
var i,a:real;
BEGIN
clrscr;
for i:=8 to 10 do
a:=sin(i);
reADLN;
END.

Добавлено спустя 3 минуты 2 секунды:
Что то не так работает. Слово не выдает.
program for26;
{ Заданы 2 слова a и b. Можно ли получить из слова a,
вычеркивание некоторого кол-ва букв, слово b. }

uses crt;
var i,j,m,n : integer;
a,b,d,e : string;
begin
clrscr;
write('введите текст a=');readln(a);
write('введите текст b=');readln(b);
n:=length(a);m:=length(b);e:=b;
if n<m then halt;
for i:=1 to n do
for j:=1 to m do
if a[i]=b[j] then begin
d:=d+a[i];
delete(b,j,1);
end;
if d=e then write('Да')
else write('Нет');

readln;
end.
Ответить