![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Доброе время суток! Подскажите пожалуйста как прописать чёб при нажатии на Button можнобылоб открыть Image.
|
#2
|
||||
|
||||
![]() Код:
if OpenPictureDialog1.Execute then Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName) Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
![]() Чёт не получается, выдаёт ошибку. Вот для наглядности тело проги:
Код:
// !!! Исходники программы могут быть использованы с любой целью, // !!! но при наличии ссылки "ATH, helpes.narod.ru" unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, ExtCtrls, uEncrypt; type TForm1 = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; MI_NewTest: TMenuItem; MISave: TMenuItem; MICloseAll: TMenuItem; MIClose: TMenuItem; Edt_Question: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Edt_V1: TEdit; Edt_V2: TEdit; Edt_V3: TEdit; Edt_V4: TEdit; RG_CorrectQ: TRadioGroup; Btn_Last: TButton; Btn_Next: TButton; Memo_Temp: TMemo; Lbl_NameTest: TLabel; GBox1: TGroupBox; SaveDialog1: TSaveDialog; OpenDialog1: TOpenDialog; MIOpen: TMenuItem; N2: TMenuItem; Button1: TButton; Image1: TImage; Button2: TButton; procedure PrCleanItems(Sender: TObject); procedure PrNewTest(Sender: TObject); procedure PrSaveMemo(Sender: TObject); procedure Btn_NextClick(Sender: TObject); procedure PrLastItems(i:byte;Sender: TObject); procedure Btn_LastClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure MI_NewTestClick(Sender: TObject); procedure MISaveClick(Sender: TObject); procedure MICloseClick(Sender: TObject); procedure MICloseAllClick(Sender: TObject); procedure MIOpenClick(Sender: TObject); procedure N2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Image1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; // Номер вопроса Nom_Question: Byte; // Имя файла PrFileName: string; implementation {$R *.DFM} uses unit2, Unit3; //Функция для перевода дробей с запятыми в дроби с точками Function Spoint(S:string):String; var c55_, new:string; ac4_:integer; begin c55_:=S; ac4_:=pos('|', c55_); If ac4_<>0 then begin new:=Copy(S, 1, ac4_-1); Spoint:=new; end else Spoint:=S; end; procedure TForm1.FormCreate(Sender: TObject); begin Nom_Question:=1; end; // Очистка всех пункам, кроме хар-к теста procedure TForm1.PrCleanItems(Sender: TObject); begin Edt_Question.Text:=''; Edt_V1.Text:=''; Edt_V2.Text:=''; Edt_V3.Text:=''; Edt_V4.Text:=''; RG_CorrectQ.ItemIndex:=0; end; // Создание нового теста procedure TForm1.PrNewTest(Sender: TObject); begin // Очистка временного объекта Memo_Temp.Lines.Clear; Btn_Last.Enabled:=False; Btn_Next.Enabled:=True; Nom_Question:=1; Label1.Caption:='Вопрос №1 :'; PrCleanItems(Sender); end; // Ввод данных вопроса в промежуточный объект procedure TForm1.PrSaveMemo(Sender: TObject); begin if Memo_Temp.Lines.Count=(2+6*(Nom_Question-1))then begin // Создание новых строчек в промежуточном объекте Memo_Temp.Lines.Add(encrypt(Edt_Question.Text,30000)); Memo_Temp.Lines.Add(encrypt(Edt_V1.Text,30000)); Memo_Temp.Lines.Add(encrypt(Edt_V2.Text,30000)); Memo_Temp.Lines.Add(encrypt(Edt_V3.Text,30000)); Memo_Temp.Lines.Add(encrypt(Edt_V4.Text,30000)); Memo_Temp.Lines.Add(encrypt(IntToStr(RG_CorrectQ.ItemIndex+1),30000)); end else begin // Узменение уже существующих данных Memo_Temp.Lines[2+6*(Nom_Question-1)]:=encrypt((Edt_Question.Text),30000); Memo_Temp.Lines[3+6*(Nom_Question-1)]:=encrypt((Edt_V1.Text),30000); Memo_Temp.Lines[4+6*(Nom_Question-1)]:=encrypt((Edt_V2.Text),30000); Memo_Temp.Lines[5+6*(Nom_Question-1)]:=encrypt((Edt_V3.Text),30000); Memo_Temp.Lines[6+6*(Nom_Question-1)]:=encrypt((Edt_V4.Text),30000); Memo_Temp.Lines[7+6*(Nom_Question-1)]:=encrypt(IntToStr(RG_CorrectQ.ItemIndex+1),30000); end; end; procedure TForm1.Btn_NextClick(Sender: TObject); begin PrSaveMemo(Sender); if Memo_Temp.Lines.Count>(8+6*(Nom_Question-1)) then PrLastItems(0,Sender) else PrCleanItems(Sender); inc(Nom_Question); Label1.Caption:='Вопрос №'+IntToStr(Nom_Question)+' :'; // На последнем вопросе блокировать кнопку Btn_Next if Nom_Question=StrToInt(Spoint(Form2.Edt_Kol.Text)) then Btn_Next.Enabled:=False; Btn_Last.Enabled:=True; ///Form2.Edt_Kol.Text end; |
#4
|
|||
|
|||
![]() Код:
Востановка данных для уже записанного вопроса procedure TForm1.PrLastItems(i:byte;Sender: TObject); begin Edt_Question.Text:=decrypt(Memo_Temp.Lines[2+6*(Nom_Question-i)],30000); Edt_V1.Text:=decrypt(Memo_Temp.Lines[3+6*(Nom_Question-i)],30000); Edt_V2.Text:=decrypt(Memo_Temp.Lines[4+6*(Nom_Question-i)],30000); Edt_V3.Text:=decrypt(Memo_Temp.Lines[5+6*(Nom_Question-i)],30000); Edt_V4.Text:=decrypt(Memo_Temp.Lines[6+6*(Nom_Question-i)],30000); RG_CorrectQ.ItemIndex:=StrToInt(decrypt(Memo_Temp.Lines[7+6*(Nom_Question-i)],30000))-1; end; procedure TForm1.Btn_LastClick(Sender: TObject); begin PrSaveMemo(Sender); // Востановление последующей инф. PrLastItems(2,Sender); // Уменьшение порядкового номера вопроса dec(Nom_Question); Label1.Caption:='Вопрос №'+IntToStr(Nom_Question)+' :'; // На последнем вопросе блокировать кнопку Btn_Next if Nom_Question=1 then Btn_Last.Enabled:=False; Btn_Next.Enabled:=True; end; procedure TForm1.MI_NewTestClick(Sender: TObject); begin MI_NewTest.Enabled:=false; MIOpen.Enabled:=False; Form2.ShowModal; end; // Пункт меню "Сохранить все" procedure TForm1.MISaveClick(Sender: TObject); var TempFileName: string; begin PrSaveMemo(Sender); SaveDialog1.InitialDir:=ExtractFilePath(Application.ExeName); if SaveDialog1.Execute then begin if pos('.tes',SaveDialog1.FileName)>0 then TempFileName:=SaveDialog1.FileName else TempFileName:=SaveDialog1.FileName+'.tes'; Memo_Temp.Lines.SaveToFile(TempFileName); end else Memo_Temp.Lines.Clear; end; procedure TForm1.MICloseClick(Sender: TObject); begin Close; end; procedure TForm1.MICloseAllClick(Sender: TObject); begin MICloseAll.Enabled:=False; MISave.Enabled:=False; MISaveClick(Sender); GBox1.Visible:=False; FormCreate(Sender); // --- v.1012 --- MIOpen.Enabled:=True; MI_NewTest.Enabled:=True; end; procedure TForm1.MIOpenClick(Sender: TObject); var i,j: byte; Temp_String, Password_String: string; EndFor: boolean; /// temp_string:string; begin // Если был открыт файл, то его закрываем. if Memo_Temp.Lines.Count>4 then MICloseAllClick(Sender) else begin PrNewTest(Sender); OpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName); if OpenDialog1.Execute then begin Memo_Temp.Lines.LoadFromFile(OpenDialog1.FileName); // --- v.1012 --- Работа с паролем --- Temp_String:=decrypt(Memo_Temp.Lines[1], 30000); for i:=1 to length(Temp_String) do begin if ((Temp_String[i]=' ')and not EndFor) then for j:=i+1 to length(Temp_String) do if ((Temp_String[j]=' ')and not EndFor) then begin if i+1=j then Password_String:='' else Password_String:=copy(Temp_String,i+1,j-i-1); EndFor:=true; end; end; // Алекс - обновлено if Password_String<>'' then begin PasswordDlg.Password.Text:=''; PasswordDlg.ShowModal; end; if not (PasswordDlg.Password.Text=Password_String) then begin Memo_Temp.Lines.Clear; abort; end; // Активицазия тункта "Сохранить все" MISave.Enabled:=True; // Активицазия тункта "Закрыть все" MICloseAll.Enabled:=True; GBox1.Visible:=True; Lbl_NameTest.Caption:=Memo_Temp.Lines[0]; Form2.Edt_Kol.Text:=copy(decrypt(Memo_Temp.Lines[1],30000), 1,pos(' ',decrypt(Memo_Temp.Lines[1],30000))-1); // Добавил Алекс - здесь раскладываем строку для перепароливания теста // и кладем данные в форму 2 - Потом перешифруем строку // --- v.0105 --- Время на 1-н вопрос (мин) --- i:=pos(':',Temp_String); while Temp_String[i]<>' ' do begin dec(i); end; form2.Edt_Kol.Text:= copy(Temp_String, 0, pos('|',Temp_String)-1); /// ShowMessage(form2.Edt_Kol.Text); // --- v.0105 --- Кол-во тестируемых вопросов --- form2.Edt_KolQuestionTesting.text:=(copy(Temp_String, pos('|',Temp_String)+1, pos(' ',Temp_String)-pos('|',Temp_String) -1)); /// ShowMessage(form2.Edt_KolQuestionTesting.text); form2.Edt_TimeMin.text:=(copy(Temp_String,i+1,pos(':',Temp_String)-i-1)); /// ShowMessage( form2.Edt_TimeMin.text); // --- v.0105 --- Время на 1-н вопрос (сек) --- form2.Edt_TimeSec.text:=(copy(Temp_String,pos(':',Temp_String)+1,length(Temp_String)-pos(':',Temp_String))); //// ShowMessage( form2.Edt_TimeSec.text); // Конец добавления PrLastItems(1,Sender); // --- v.1012 --- Работа с меню --- MIOpen.Enabled:=False; MI_NewTest.Enabled:=false; end else Abort; end; end; procedure TForm1.N2Click(Sender: TObject); begin ShowMessage('Разработчик: ATH;'+#13+#10+ ' '+#13+#10+ 'Благодарности'+#13+#10+ ' '+#13+#10+ '* за разработку блока шифрования и интерфейса:'+#13+#10+ ' Alex Stankin;'+#13+#10+ ' '+#13+#10+ '* за помощь в разработке:'+#13+#10+ ' @nton,'+#13+#10+ ' CJ,'+#13+#10+ ' Par@do][ ;'+#13+#10+ ' '+#13+#10+ 'http:\\www.helpes.narod.ru'+#13+#10+ 'e-mail: antonatp@mail.ru; helpes@narod.ru'); end; // Добавлено Алекс procedure TForm1.Button1Click(Sender: TObject); begin PasswordDlg.Password.Text:=''; PasswordDlg.ShowModal; Memo_Temp.Lines[1]:=(encrypt(Form2.Edt_Kol.Text+'|'+Form2.Edt_KolQuestionTesting.Text+' '+PasswordDlg.Password.Text+' '+Form2.Edt_TimeMin.Text+':'+Form2.Edt_TimeSec.Text,30000)); PasswordDlg.Password.text:=''; end; procedure TForm1.Image1Click(Sender: TObject); begin end; procedure TForm1.Button2Click(Sender: TObject); begin end; end. Ах, да.. эта прога написана для создания файла тестирования, всё отлично но есть один минус - нельзя вставить картинку при создании вопроса. Помогите исправить этот недостаток. |
#5
|
||||
|
||||
![]() TOpenPictureDialog кинь на форму из вкладки Dialogs
... ой, код не посмотрел... TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; Последний раз редактировалось AleD, 21.11.2009 в 22:21. |
#6
|
|||
|
|||
![]() Спасибо получилось.Только вот при переходе к следущему вопросу остаётся эта картинка. Чё сделать надо чтоб можнобылоб выбрать новую?
|