Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.06.2013, 12:04
Аватар для AlexandrV
AlexandrV AlexandrV вне форума
Начинающий
 
Регистрация: 10.02.2013
Сообщения: 197
Версия Delphi: XE3
Репутация: -624
Плохо Как создать собственное диалоговое окно

Помогите пожалуйста создать собственное диалоговое окно вот код функции

Код:
function INISDersi(TextOkno:String;TextButton1,TextButton2:String;TextMemo:String):Boolean;
begin
  Form3.DialogButtons1.CaptionOk:=TextButton1;
  Form3.DialogButtons1.CaptionCancel:=TextButton2;
  Form3.Caption:=TextOkno;
  Form3.Memo1.Lines.Text:=TextMemo;
  loadIniLData;

end;

Где именно нужно вызывать модальную форму и как ее закрыть после того как нажмеца кнопка вернув функции либо True при нажатии на ok либо False при нажатии на Отмена
Ответить с цитированием
  #2  
Старый 13.06.2013, 13:04
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

после/вместо loadIniLData:
Код:
  Form1.Button1.ModalResult:=mrOk;
  Form1.Button2.ModalResult:=mrCancel;
  Result:=Form1.ShowModal=mrOk;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 13.06.2013, 13:17
Аватар для AlexandrV
AlexandrV AlexandrV вне форума
Начинающий
 
Регистрация: 10.02.2013
Сообщения: 197
Версия Delphi: XE3
Репутация: -624
По умолчанию

Код:
Form1.Button1.ModalResult:=mrOk;
Form1.Button2.ModalResult:=mrCancel;
Result:=Form1.ShowModal=mrOk;
спасибо.
Скажи что этот код делает каждая строчка что делает

loadIniLData; - процедура считывания из ини файла текстов
Код:
procedure loadIniLData;
var tyjk:Integer;
begin
  IniLData:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'LibxEditFiles\параметры Save\Language.LData');
  CodesLancLibxStrocaStr:=IniLData.ReadString('Код_Удаления_Строки_По_Коду','Код','Fred');
  CodesLancLibxStrocaInt:=Length(CodesLancLibxStrocaStr);
  codesIniLDataStr1:=codesIniLDataStr;
  MaxLancLibxStrocaInt:=IniLData.ReadInteger('Seve Language Libx','MaximumLangLibx',20);
  SetLength(DinamikIniLanguage,MaxLancLibxStrocaInt);
  for tyjk := 0 to MaxLancLibxStrocaInt do begin
    codesIniLDataStr1:=IniLData.ReadString('Seve Language Libx',codesIniLDataStr+inttostr(tyjk),'');
    codesIniLDataStr2:=codesIniLDataStr1;
    System.Delete(codesIniLDataStr2,Pos(CodesLancLibxStrocaStr,codesIniLDataStr2),length(codesIniLDataStr2));
    System.Delete(codesIniLDataStr1,1,System.Pos(CodesLancLibxStrocaStr,codesIniLDataStr1)+CodesLancLibxStrocaInt-1);
    DinamikIniLanguage[tyjk]:=codesIniLDataStr2;
    Form3.ComboBox1.Items.Add(codesIniLDataStr1);
    Form3.ComboBox1.ItemIndex:=0;
  end;
  IniLData.Free;
end;
Админ: Не забываем про оформление!

Последний раз редактировалось Admin, 13.06.2013 в 13:47.
Ответить с цитированием
  #4  
Старый 13.06.2013, 13:32
Аватар для AlexandrV
AlexandrV AlexandrV вне форума
Начинающий
 
Регистрация: 10.02.2013
Сообщения: 197
Версия Delphi: XE3
Репутация: -624
По умолчанию

Спасибо огромное все работает.
Ответить с цитированием
  #5  
Старый 25.06.2013, 16:26
Аватар для AlexandrV
AlexandrV AlexandrV вне форума
Начинающий
 
Регистрация: 10.02.2013
Сообщения: 197
Версия Delphi: XE3
Репутация: -624
По умолчанию

Есть функция
Код:
Function ShowStateDialog1(TextForm,LBL1,LBL2,LBL3:String;LBLB2,ED2,LBLB3,ED3:Boolean):Boolean;
begin
  Form3.Label1.Caption:=LBL1;
  Form3.Label2.Caption:=LBL2;
  Form3.Label3.Caption:=LBL3;
  Form3.Caption:=TextForm;
  Form3.Label2.Enabled:=LBLB2;
  Form3.Label3.Enabled:=LBLB3;
  Form3.Edit2.Enabled:=ED2;
  Form3.Edit3.Enabled:=ED3;
end;

надо вызвать модальное окно и при если будет нажата кнопка ок вернуть функции значения. Как это сделать
Ответить с цитированием
  #6  
Старый 25.06.2013, 16:39
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

проверить результат ShowModal
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #7  
Старый 25.06.2013, 16:43
Аватар для AlexandrV
AlexandrV AlexandrV вне форума
Начинающий
 
Регистрация: 10.02.2013
Сообщения: 197
Версия Delphi: XE3
Репутация: -624
По умолчанию

Цитата:
Сообщение от NumLock
проверить результат ShowModal
Можешь написать как. Я собственно переделал функцию
Код:
Function ShowStateDialog1(TextForm,LBL1:String):String;
begin
  Form3.Label1.Caption:=LBL1;
end;

Надо запустить модальным окном и как только будет нажатоа ок то возвращаем функции то что написано в Edit. не спрашивайте почему я решил свое делать. просто мне свое нужно
Ответить с цитированием
  #8  
Старый 25.06.2013, 16:46
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

заVARите нужные переменные в объявлении функции.
Ответить с цитированием
  #9  
Старый 25.06.2013, 16:46
Аватар для AlexandrV
AlexandrV AlexandrV вне форума
Начинающий
 
Регистрация: 10.02.2013
Сообщения: 197
Версия Delphi: XE3
Репутация: -624
По умолчанию

Код:
Function ShowStateDialog1(TextForm,LBL1:String):String;
begin
  Form3.Label1.Caption:=LBL1;
  Form3.Button1.ModalResult:=mrOk;
  Form3.Button2.ModalResult:=mrCancel;
  If Form3.ShowModal=mrOk then
    Result:=Form3.Edit1.Text
  else  Result:='';
end;

А случаем не так
Ответить с цитированием
  #10  
Старый 25.06.2013, 16:48
Аватар для AlexandrV
AlexandrV AlexandrV вне форума
Начинающий
 
Регистрация: 10.02.2013
Сообщения: 197
Версия Delphi: XE3
Репутация: -624
По умолчанию

Цитата:
Сообщение от Alegun
заVARите нужные значения в объявлении функции.
Можно поинтересоваться когда ставят Var а когда Const а когда вообще ничего не ставят

Код:
Function ShowStateDialog1(Var TextForm,LBL1:String):String;
begin
  Form3.Label1.Caption:=LBL1;
  Form3.Button1.ModalResult:=mrOk;
  Form3.Button2.ModalResult:=mrCancel;
  If Form3.ShowModal=mrOk then
    Result:=Form3.Edit1.Text
  else  Result:='';
end;
Ответить с цитированием
  #11  
Старый 25.06.2013, 17:02
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Примерно так
Код:
Function ShowStateDialog1(TextForm: string; var LBL1:String): boolean;
begin
 Result:= false;
 if Form3.Button1.ModalResult= mrOk then
  begin
   LBL1:= Form3.Edit2.Text;
   Result:= true;
  end;

 if Form3.Button1.ModalResult= mrCancel then exit;
end;

// пример вызова
var
 s: string
begin

 if ShowStateDialog1('бла-бла', s) then Edit22.Text:= s;

end;

З.Ы. Ми пардоне, не заметил

Цитата:
Можно поинтересоваться когда ставят Var а когда Const а когда вообще ничего не ставят

var - когда нужно вернуть из функции значений больше чем одно
Const - чтоб быть уверенным что переданное значение не изменится
без всего - просто передать параметры

Последний раз редактировалось Alegun, 25.06.2013 в 17:11.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:04.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025