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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2012, 21:17   #1
demiancz
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 246
По умолчанию Как добавить название кнопки в ini-файл при условии

Здравствуйте. Есть 2 формы, PopupMenu и пару кнопок. При нажатии на кнопке правой кнопкой мыши ее название переносится на кнопку второй формы и сохраняется в ИНИ файле

Код такой
procedure TForm1.N1Click(Sender: TObject);
var
n: integer;
begin
n:=1;
while n <= 100 do
if (Form2.sBitBtn1.Caption = '0') and
(PopupMenu1.PopupComponent is TsBitBtn) then begin
Form2.sBitBtn1.Caption:=(PopupMenu1 .PopupComponent as TsBitBtn).Caption;
break;
end
else
if (Form2.sBitBtn2.Caption = '0') and
(PopupMenu1.PopupComponent is TsBitBtn) then begin
Form2.sBitBtn2.Caption:=(PopupMenu1 .PopupComponent as TsBitBtn).Caption;
break;
end;
Это работает
Теперь пытаюсь добавить название кнопки в ИНИ-файл. Пробую так:
procedure TForm1.N1Click(Sender: TObject);
var
n: integer;
begin
n:=1;
while n <= 100 do
if (FavoriteForm.sBitBtn1.Caption = '0') and
(PopupMenu1.PopupComponent is TsBitBtn) then begin
Form2.sBitBtn1.Caption:=(PopupMenu1 .PopupComponent as TsBitBtn).Caption;
Form2.sBitBtn1.Caption := ini.WriteString('Ua','fa','0');
break;
end
else
if (Form2.sBitBtn2.Caption = '0') and
(PopupMenu1.PopupComponent is TsBitBtn) then begin
Form2.sBitBtn2.Caption:=(PopupMenu1 .PopupComponent as TsBitBtn).Caption;
Form2.sBitBtn1.Caption := ini.WriteString('Ua','fb','0');
break;
end;
Тут ошибка.
[DCC Error] Proga1.pas(175): E2010 Incompatible types: 'string' and 'procedure, untyped pointer or untyped parameter'
Form2.sBitBtn1.Caption := ini.WriteString('Ua','fa','0'); с этой строкой что то не так

Помогите пожалуйста! Как добавить название кнопки в INI?
Смотреть фильмы HD Фильмы для планшетов
demiancz вне форума Ответить с цитированием
Старый 12.01.2012, 23:30   #2
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Код:
procedure WriteString(const Section: String; const Ident: String; const Value: String); virtual; abstract;
WiriteStirng это процедура. А процедуры не возвращают значения
psycho-coder вне форума Ответить с цитированием
Старый 13.01.2012, 06:51   #3
roperd
Пользователь
 
Регистрация: 14.07.2011
Сообщений: 44
По умолчанию

Неужели основы паскаля не знаете?? привильно psycho-coder сказал, такие подпрограммы как функции возвращают значения определённое в их типе, но не процедуры, уберите в строке Form2.sBitBtn1.Caption := ini.WriteString('Ua','fb','0'),
Form2.sBitBtn1.Caption и оставьте ini.WriteString('Ua','fb', Form2.sBitBtn1.Caption),
так же судя по всему вы создать ини файл забыли, если ошибаюсь поправьте, вот весь код вашей программы, исправленный, должно работать:
Код:
procedure TForm1.N1Click(Sender: TObject);
var
n: integer;
PIni: TiniFile;
begin
n:=1;
while n <= 100 do
if (FavoriteForm.sBitBtn1.Caption = '0') and
(PopupMenu1.PopupComponent is TsBitBtn) then begin
Form2.sBitBtn1.Caption:=(PopupMenu1 .PopupComponent as TsBitBtn).Caption;
Form2.sBitBtn1.Caption := ini.WriteString('Ua','fa','0');
break;
end
else
if (Form2.sBitBtn2.Caption = '0') and
(PopupMenu1.PopupComponent is TsBitBtn) then begin
Pini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'PiniFile.ini');
Form2.sBitBtn2.Caption:=(PopupMenu1 .PopupComponent as TsBitBtn).Caption;
Pini.WriteString('Ua','fb',Form2.sBitBtn1.Caption);
break;
end;
Постараюсь разъяснить для вас процедуру WriteString:
WriteString('Ua','fb',Form2.sBitBtn1.Caption);
'Ua' - является заголовком столбца инифайла, некой секцией, в которой собраны поля, соответствующие или не соответствующие названию столбца, полем, как раз таки является значение 'fb', который в свою очередь имеет идентифицирующее значение, представленного процедурой типа(в данном случае строкового), всё это выглядит в инифайле так:
[Ua]
fb = (строковое значение, в данном случае Form2.sBitBtn1.Caption)
Чтобы потом считать это значение, уже понадобиться как раз функция, Ini.ReadString, состоит она из тех же параметров, что и WriteString, например, можно считать таким образом:
Form2.sBitBtn1.Caption := pIni.ReadString('Ua', 'fb', Form2.sBitBtn1.Caption);
roperd вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить кнопки showmessage? Sepish100 Мультимедиа в Delphi 2 19.11.2011 20:13
Joomla 1.0 там при добавлении новости нет кнопки ок типо добавить ! Как там добавлять ??? valerka92 WordPress и другие CMS 1 10.09.2011 19:27
Как закрасить ячейки в таблице при условии primusx HTML и CSS 6 28.07.2011 18:59
загрузка данных из ini при условии anchoussichek Общие вопросы Delphi 0 24.05.2011 15:00
Не дать сохранит файл при условии Диас Microsoft Office Excel 6 12.05.2008 18:59