Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2018, 20:44   #31
Devil9313
Пользователь
 
Регистрация: 06.05.2013
Сообщений: 27
По умолчанию

Что-то у меня не создается ресурсный файл пишет error

так Icon.rc создал ResLib.bat положил рядом с этими двумя файлами my.ico и brcc32.exe

в Icon.rc прописал RCDATA ICON "my.ico"

в ResLib.bat прописал brcc32 Icon.rc

запускаю батник и он выдает ошибку что не так делаю ?
Devil9313 вне форума Ответить с цитированием
Старый 17.08.2018, 20:45   #32
Devil9313
Пользователь
 
Регистрация: 06.05.2013
Сообщений: 27
По умолчанию

файл res не создается
Devil9313 вне форума Ответить с цитированием
Старый 18.08.2018, 01:41   #33
JoLan
Delphi XE7
Пользователь
 
Аватар для JoLan
 
Регистрация: 26.07.2010
Сообщений: 74
По умолчанию

Цитата:
Сообщение от Devil9313 Посмотреть сообщение
файл res не создается
Project -> Resources and Images...
Изображения
Тип файла: png resources.png (7.1 Кб, 64 просмотров)
JoLan вне форума Ответить с цитированием
Старый 18.08.2018, 07:17   #34
Devil9313
Пользователь
 
Регистрация: 06.05.2013
Сообщений: 27
По умолчанию

Сделал но почему то в программе на заголовке та иконка которую ставил на программу а ярлык программы поменял свою иконку на тц которую добавил как вернуть назад

просто мне нужно что бы у программы была одно иконка а у файла настроек программы другая
Devil9313 вне форума Ответить с цитированием
Старый 18.08.2018, 07:48   #35
Devil9313
Пользователь
 
Регистрация: 06.05.2013
Сообщений: 27
По умолчанию

Спасибо проблема с иконкой решена. Только вопрос а путь до иконки можно указат допустим рядом с программой есть папка ICON в этой папке есть допустим 3 иконки можно какую нибудь из них указать и чтобы она присваивалась к расширению файла настроек именно из папки ICON которая лежит рядом с программой
Devil9313 вне форума Ответить с цитированием
Старый 18.08.2018, 21:19   #36
JoLan
Delphi XE7
Пользователь
 
Аватар для JoLan
 
Регистрация: 26.07.2010
Сообщений: 74
По умолчанию

Цитата:
Сообщение от Devil9313 Посмотреть сообщение
Спасибо проблема с иконкой решена. Только вопрос а путь до иконки можно указат допустим рядом с программой есть папка ICON в этой папке есть допустим 3 иконки можно какую нибудь из них указать и чтобы она присваивалась к расширению файла настроек именно из папки ICON которая лежит рядом с программой
Суть этого способа в том, что указывать нужно путь именно к самому приложению, которое содержит в ресурсах другую иконку. И индексом в реестре указывается оффсет этой иконки. Если указать 0, то будет иконка приложения, если указать 1 и есть в ресурсах ещё одна иконка, то будет использована уже она.
JoLan вне форума Ответить с цитированием
Старый 19.08.2018, 08:53   #37
Devil9313
Пользователь
 
Регистрация: 06.05.2013
Сообщений: 27
По умолчанию

Все спасибо со всем разобрался! У меня еще вопрос у меня две формы в программе одна основная вторая форма где собственно сохраняются настройки то есть на второй форме указываешь имя сохраняемых настроек программы и кнопка сохранить

вопрос как мне в цикле на второй форме указать на компоненты ChecBox которые находятся на первой форме вот код

Код:
procedure TForm2.InitVR (SRC,Delimeter: string);
var
 S,SUB : string;
 P: Integer;
 SL: TStringList;
begin
 SL := TStringList.Create;
 S := SRC;
 P := Pos(Delimeter,S);
 while P>0 do
  begin
   SL.Add(Copy(S,1,P-1));
   Delete(S,1,P);
   P := Pos(Delimeter,S);
  end;
   SL.Add(S);
 //edit1.Text:=sl[0];
 Form1.CheckBox1.Checked := StrToBool2(SL[1]); 
 Form1.CheckBox2.Checked := StrToBool2(SL[2]); 
 Form1.CheckBox3.Checked := StrToBool2(SL[2]); 
 Form1.CheckBox4.Checked := StrToBool2(SL[4]); 
 Form1.CheckBox5.Checked := StrToBool2(SL[5]);
 Form1.CheckBox6.Checked := StrToBool2(SL[6]);
 Form1.CheckBox7.Checked := StrToBool2(SL[7]);
 Form1.CheckBox8.Checked := StrToBool2(SL[8]);
 Form1.CheckBox9.Checked := StrToBool2(SL[9]);
 Form1.CheckBox10.Checked := StrToBool2(SL[10]);
 Form1.CheckBox11.Checked := StrToBool2(SL[11]);
 Form1.CheckBox12.Checked := StrToBool2(SL[12]);
 Form1.CheckBox13.Checked := StrToBool2(SL[13]);
 Form1.CheckBox14.Checked := StrToBool2(SL[14]);
 Form1.CheckBox15.Checked := StrToBool2(SL[15]);
 Form1.CheckBox16.Checked := StrToBool2(SL[16]);
 Form1.CheckBox17.Checked := StrToBool2(SL[17]);
 Form1.CheckBox18.Checked := StrToBool2(SL[18]);
 Form1.CheckBox19.Checked := StrToBool2(SL[19]);
 Form1.CheckBox20.Checked := StrToBool2(SL[20]);
 Form1.CheckBox21.Checked := StrToBool2(SL[21]);
 Form1.CheckBox22.Checked := StrToBool2(SL[22]);
 Form1.CheckBox23.Checked := StrToBool2(SL[23]);
 Form1.CheckBox24.Checked := StrToBool2(SL[24]);
 Form1.CheckBox25.Checked := StrToBool2(SL[25]);
 Form1.CheckBox26.Checked := StrToBool2(SL[26]);
 Form1.CheckBox27.Checked := StrToBool2(SL[27]);
 Form1.CheckBox28.Checked := StrToBool2(SL[28]);
 Form1.CheckBox29.Checked := StrToBool2(SL[29]);
 Form1.CheckBox30.Checked := StrToBool2(SL[30]);
 Form1.CheckBox31.Checked := StrToBool2(SL[31]);
 Form1.CheckBox32.Checked := StrToBool2(SL[32]);
 Form1.CheckBox33.Checked := StrToBool2(SL[33]);
 Form1.CheckBox34.Checked := StrToBool2(SL[34]);
 Form1.CheckBox35.Checked := StrToBool2(SL[35]);
 SL.Free;
end;
Код:
procedure TForm10.SpeedButton1Click(Sender: TObject);
var
 SL: TStringList;
 S: string;
begin
 //Save  vr если задано имя
 if Edit1.Text = '' then Exit;
 SL := TStringList.Create;
 S := Edit1.Text + '|' +
 BoolToStr2(Form1.CheckBox1.Checked) + '|' +
 BoolToStr2(Form1.CheckBox2.Checked) + '|' +
 BoolToStr2(Form1.CheckBox3.Checked) + '|' +
 BoolToStr2(Form1.CheckBox4.Checked) + '|' +
 BoolToStr2(Form1.CheckBox5.Checked) + '|' +
 BoolToStr2(Form1.CheckBox6.Checked) + '|' +
 BoolToStr2(Form1.CheckBox7.Checked) + '|' +
 BoolToStr2(Form1.CheckBox8.Checked) + '|' +
 BoolToStr2(Form1.CheckBox9.Checked) + '|' +
 BoolToStr2(Form1.CheckBox10.Checked) + '|' +
 BoolToStr2(Form1.CheckBox11.Checked) + '|' +
 BoolToStr2(Form1.CheckBox12.Checked) + '|' +
 BoolToStr2(Form1.CheckBox13.Checked) + '|' +
 BoolToStr2(Form1.CheckBox14.Checked) + '|' +
 BoolToStr2(Form1.CheckBox15.Checked) + '|' +
 BoolToStr2(Form1.CheckBox16.Checked) + '|' +
 BoolToStr2(Form1.CheckBox17.Checked) + '|' +
 BoolToStr2(Form1.CheckBox18.Checked) + '|' +
 BoolToStr2(Form1.CheckBox19.Checked) + '|' +
 BoolToStr2(Form1.CheckBox20.Checked) + '|' +
 BoolToStr2(Form1.CheckBox21.Checked) + '|' +
 BoolToStr2(Form1.CheckBox22.Checked) + '|' +
 BoolToStr2(Form1.CheckBox23.Checked) + '|' +
 BoolToStr2(Form1.CheckBox24.Checked) + '|' +
 BoolToStr2(Form1.CheckBox25.Checked) + '|' +
 BoolToStr2(Form1.CheckBox26.Checked) + '|' +
 BoolToStr2(Form1.CheckBox27.Checked) + '|' +
 BoolToStr2(Form1.CheckBox28.Checked) + '|' +
 BoolToStr2(Form1.CheckBox29.Checked) + '|' +
 BoolToStr2(Form1.CheckBox30.Checked) + '|' +
 BoolToStr2(Form1.CheckBox31.Checked) + '|' +
 BoolToStr2(Form1.CheckBox32.Checked) + '|' +
 BoolToStr2(Form1.CheckBox33.Checked) + '|' +
 BoolToStr2(Form1.CheckBox34.Checked) + '|' +
 BoolToStr2(Form1.CheckBox35.Checked) + '|';
 S := Base63(s,0);
 Sl.Add(S);
 Sl.SaveToFile(ExtractFilepath(Application.ExeName) + 'VR\' + Edit1.Text + '.vr');
 SL.Free;
 showmessage('Сохранено ' + Edit1.Text + '.vr');
 Form1.clearT();
 Form1.MainMenu1.Items[3].Clear;
 Form1.MainMenuAdd();
end;
Просто код слишком огромный получается хочу это в цикле чтобы перебор CheckBox-ов itk в цикле как при сохранении так и при загрузки за ранее спасибо

Последний раз редактировалось Devil9313; 19.08.2018 в 08:56.
Devil9313 вне форума Ответить с цитированием
Старый 19.08.2018, 17:27   #38
JoLan
Delphi XE7
Пользователь
 
Аватар для JoLan
 
Регистрация: 26.07.2010
Сообщений: 74
По умолчанию

Код:
 while P>0 do
  begin
   SL.Add(Copy(S,1,P-1));
   Delete(S,1,P);
   P := Pos(Delimeter,S);
  end;
   SL.Add(S);
Это можно сделать вот так:
Код:
SL.Text := S.Replace(Delimeter, #13#10);
Если версия Delphi ещё не поддерживает хелперы и доп. функционала у стандартных типов нет, тогда вот так:
Код:
SL.Text := StringReplace(S, Delimeter, #13#10, [rfIgnoreCase, rfReplaceAll]);
А теперь про чекбоксы:
Код:
var
  foundCheck: TCheckBox;
  SL: TStringList;
begin
  //...
  SL.Text := S.Replace(Delimeter, #13#10);
  for i := 0 to SL.Count - 1 do
  begin
    foundCheck := Form1.FindComponent(Format('CheckBox%d', [i+1])) as TCheckBox;
    if (foundCheck <> nil) then
      foundCheck.Checked := StrToBool2(SL[i]);
  end;
И сохранение:
Код:
var
  i, compCount: Integer;
  s: String;
begin
  s := '';
  compCount := Form1.ComponentCount;
  for i := 0 to compCount -1 do
    if (Form1.Components[i] is TCheckBox) then
    begin
      if (s <> '') then
        s := s + '|';
      s := s + BoolToStr(TCheckBox(Form1.Components[i]).Checked);
    end;

  ShowMessage(s);
  s := '';
JoLan вне форума Ответить с цитированием
Старый 19.08.2018, 18:00   #39
Devil9313
Пользователь
 
Регистрация: 06.05.2013
Сообщений: 27
По умолчанию

Тут вроде все правильно
Код:
procedure TForm2.InitVR (SRC,Delimeter: string);
var
 S,SUB : string;
 P,I: Integer;
 SL: TStringList;

 FoundCheck: TCheckBox;
begin
 SL := TStringList.Create;
 S := SRC;
 P := Pos(Delimeter,S);
 SL.Text := S.Replace(Delimeter, #13#10);
   SL.Add(S);
 //edit1.Text:=sl[0];
 //edit2.Text:=sl[1];
  //...
  for i := 0 to SL.Count - 1 do
  begin
    FoundCheck := Form1.FindComponent(Format('CheckBox%d', [i+1])) as TCheckBox;
    if (FoundCheck <> nil) then
      FoundCheck.Checked := StrToBool2(SL[i]);
  end;
 SL.Free;
end;
а вот с этим я что-то не разобрался
Код:
var
  i, compCount: Integer;
  s: String;
begin
  s := '';
  compCount := Form1.ComponentCount;
  for i := 0 to compCount -1 do
    if (Form1.Components[i] is TCheckBox) then
    begin
      if (s <> '') then
        s := s + '|';
      s := s + BoolToStr(TCheckBox(Form1.Components[i]).Checked);
    end;

  ShowMessage(s);
  s := '';
при сохранении выдает ошибку

Последний раз редактировалось Devil9313; 19.08.2018 в 18:03.
Devil9313 вне форума Ответить с цитированием
Старый 19.08.2018, 18:11   #40
Devil9313
Пользователь
 
Регистрация: 06.05.2013
Сообщений: 27
По умолчанию

файл настроек сохраняется но почему то когда я его пытаюсь применить к программе ничего не происходит
Devil9313 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Если в основном файле проекта (где есть функция main) есть #include "file.hpp", и в файле file.cpp есть #include "file.hpp", то как компилятор узнает, что нам нужен файл file.cpp? Андрей 93 Общие вопросы C/C++ 13 21.12.2016 16:03
C1083: Cannot open include file: 'd3dx9.h': No such file or directory CrowleyNoob Общие вопросы C/C++ 15 18.09.2016 21:55
В чём разница между unit, header file, cpp file? TwiX Общие вопросы C/C++ 6 29.04.2012 19:49
Как записывать и считывать Ini File с набором строк (#10#13) в одном параметре?) SkAndrew Общие вопросы Delphi 4 15.11.2008 00:02