Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Cannon
3 / 3 / 0
Регистрация: 05.02.2011
Сообщений: 116
#1

Запуск приложения с прежнего места.

28.06.2011, 11:49. Просмотров 830. Ответов 13
Метки нет (Все метки)

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

Подскажите пожалуйста, как сделать, чтобы при запуске приложения оно запускалось с той точки, где было закрыто? Надо, чтобы загруженная картинка в Image запоминалась при закрытии программы, и потом при открытии программы она выводилась?
Разные картинки загружаются при разных условиях.

Код:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, jpeg;
 
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Timer1: TTimer;
    Image1: TImage;
    procedure Timer1Timer(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  k:integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
var
  fl: File of Integer;
begin
  If not FileExists(ExtractFilePath(ParamStr(0)) + 'data.db') then
    exit;
 AssignFile(fl, ExtractFilePath(ParamStr(0)) + 'data.db');
  reset(fl);
  read(fl, k);
  CloseFile(fl);
  Image1.Picture.LoadFromFile('fon1.jpg');
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
var
  fl: File of Integer;
begin
AssignFile(fl, ExtractFilePath(ParamStr(0)) + 'data.db');
  rewrite(fl);
 Write(fl, k);
  CloseFile(fl);
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 k := k+1;
  if k = 10 then begin
    Label1.Caption := IntToStr(k);
   Image1.Picture.LoadFromFile('fn1.jpg')
end  else
    Label1.Caption := IntToStr(k);
 
  if k = 23 then begin
    Image1.Picture.LoadFromFile('fn2.jpg');
    k := 0;
 
    end;
      end;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2011, 11:49
Ответы с готовыми решениями:

При открытии программы таймер работает с прежнего места
Здравствуйте. Подскажите пожалуйста, как сделать, чтобы при закрытии программы...

Запуск приложения через батник из приложения
Суть такая, у меня есть батник который выполняет некую команду записывая...

Запуск приложения
Как сделать что бы при запуске программы выходило с начало окно "приветсвия"...

Запуск приложения
Здравствуйте! подскажите пожалуйста как можно узнать путь где лежит запускаемый...

Запуск приложения
Есть код который запускает приложение hl.exe всеми известный Half-Life, а как с...

13
anonimus
2154 / 1244 / 143
Регистрация: 28.04.2010
Сообщений: 4,584
28.06.2011, 11:54 #2
Цитата Сообщение от Cannon Посмотреть сообщение
как сделать, чтобы при запуске приложения оно запускалось с той точки, где было закрыто
сохраняй координаты окна перед закрытием, при открытии считывай сохраненные данные и помещай туда окно
0
Cannon
3 / 3 / 0
Регистрация: 05.02.2011
Сообщений: 116
28.06.2011, 12:08  [ТС] #3
Цитата Сообщение от anonimus Посмотреть сообщение
сохраняй координаты окна перед закрытием, при открытии считывай сохраненные данные и помещай туда окно
Спасибо за совет, хорошо бы еще небольшой примерчик,если не трудно.
Заранее благодарю.
0
anonimus
2154 / 1244 / 143
Регистрация: 28.04.2010
Сообщений: 4,584
28.06.2011, 12:10 #4
пример чего? работы с ini файлами? с типизированными файлами? реестром?
куда писать положение формы будешь?
0
Cannon
3 / 3 / 0
Регистрация: 05.02.2011
Сообщений: 116
28.06.2011, 14:02  [ТС] #5
Цитата Сообщение от anonimus Посмотреть сообщение
пример чего? работы с ini файлами? с типизированными файлами? реестром?
куда писать положение формы будешь?
Может я что-то не так понимаю, а причем здесь положение формы?
У меня в программе в один Image при разных условиях подгружаются разные файлы,и после закрытия программы и вновь её открытия в Image должна быть та картинка, которая была загружена последней, перед закрытием приложения.

Подскажите пожалуйста, как это можно реализовать.
0
anonimus
2154 / 1244 / 143
Регистрация: 28.04.2010
Сообщений: 4,584
28.06.2011, 14:13 #6
аааа, не так понял
Цитата Сообщение от Cannon Посмотреть сообщение
чтобы при запуске приложения оно запускалось с той точки, где было закрыто
описывай понятнее тогда.
Ну сути это не меняет, записывай название файла при закрытии
0
Cannon
3 / 3 / 0
Регистрация: 05.02.2011
Сообщений: 116
28.06.2011, 14:33  [ТС] #7
Так примерчик то хоть можно небольшой, какие и куда сохранять данные ? Можно в ini или просто в файл, лишь бы работало.
0
anonimus
2154 / 1244 / 143
Регистрация: 28.04.2010
Сообщений: 4,584
28.06.2011, 14:39 #8
в uses inifiles

при закрытии
Delphi
1
2
3
4
5
6
7
var
Ini: Tinifile;
begin
Ini:=TiniFile.Create(extractfilepath(Application.ExeName)+'conf.ini');
Ini.WriteString('conf','img','путь к картинке');
Ini.Free;
end;
при открытии
Delphi
1
2
3
4
5
6
var
Ini: Tinifile;
begin
Ini:=TiniFile.Create(extractfilepath(Application.ExeName)+'conf.ini');
твоя переменная:=ini.ReadString('conf','img','');
Ini.Free;
1
Arcor
4882 / 1834 / 382
Регистрация: 20.11.2009
Сообщений: 5,887
Записей в блоге: 1
28.06.2011, 15:05 #9
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Ini: TIniFile;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
  begin
    Ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+'MyIni.ini');
    Ini.WriteString('IMG', 'LastImg', OpenDialog1.FileName);
    Image1.Picture.LoadFromFile(OpenDialog1.FileName);
  end;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
var S: String;
begin
  Ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+'MyIni.ini');
  S := Ini.ReadString('IMG', 'LastImg', '');
  Image1.Picture.LoadFromFile(S);
end;
1
Cannon
3 / 3 / 0
Регистрация: 05.02.2011
Сообщений: 116
28.06.2011, 15:06  [ТС] #10
Сделал так, но не работает, знаю что есть ошибка.

Код:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
[CODE]unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, jpeg, inifiles;
 
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Timer1: TTimer;
    Image1: TImage;
    procedure Timer1Timer(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  k:integer;
  Ini: Tinifile;
  f:integer;
  implementation
 
{$R *.dfm}
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
 
begin
Ini:=TiniFile.Create(extractfilepath(Application.ExeName)+'conf.ini');
Ini.WriteString('conf','image1','');
Ini.Free;
end;
 
 
procedure TForm1.FormCreate(Sender: TObject);
var
  fl: File of Integer;
begin
  If not FileExists(ExtractFilePath(ParamStr(0)) + 'data.db') then
    exit;
 AssignFile(fl, ExtractFilePath(ParamStr(0)) + 'data.db');
  reset(fl);
  read(fl, k);
  CloseFile(fl);
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
var
  fl: File of Integer;
begin
AssignFile(fl, ExtractFilePath(ParamStr(0)) + 'data.db');
  rewrite(fl);
 Write(fl, k);
  CloseFile(fl);
end;
 
procedure TForm1.FormShow(Sender: TObject);
begin
Ini:=TiniFile.Create(extractfilepath(Application.ExeName)+'conf.ini');
f:=ini.ReadString('conf','image1','');
Ini.Free;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 k := k+1;
  if k = 10 then begin
    Label1.Caption := IntToStr(k);
   Image1.Picture.LoadFromFile('fon1.jpg')
end  else
    Label1.Caption := IntToStr(k);
 
  if k = 23 then
    Image1.Picture.LoadFromFile('fon2.jpg');
 
   if k = 33 then begin
 
    k := 0;
    end;
    end;
end.[/CODE]
Посмотрите пожалуйста, что не так.
0
Arcor
4882 / 1834 / 382
Регистрация: 20.11.2009
Сообщений: 5,887
Записей в блоге: 1
28.06.2011, 15:16 #11
38 строка, закрываем форму и обнуляем ячейку в файле, в которою должен был записаться путь, а не пустое место, смотри примеры выше, сравнивай
0
Cannon
3 / 3 / 0
Регистрация: 05.02.2011
Сообщений: 116
28.06.2011, 16:32  [ТС] #12
Спавсибо всем за помощь, сделал так, вроде работает.

Код:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, jpeg, inifiles;
 
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Timer1: TTimer;
    Image1: TImage;
    procedure Timer1Timer(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  k:integer;
  Ini: Tinifile;
 
  implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
var
  fl: File of Integer;
  var S: String;
  begin
  If not FileExists(ExtractFilePath(ParamStr(0)) + 'data.db') then
    exit;
 AssignFile(fl, ExtractFilePath(ParamStr(0)) + 'data.db');
  reset(fl);
  read(fl, k);
  CloseFile(fl);
 
 Ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+'MyIni.ini');
  S := Ini.ReadString('IMG', 'LastImg', '');
  Image1.Picture.LoadFromFile(S);
 
  end;
 
procedure TForm1.FormDestroy(Sender: TObject);
var
  fl: File of Integer;
begin
AssignFile(fl, ExtractFilePath(ParamStr(0)) + 'data.db');
  rewrite(fl);
 Write(fl, k);
  CloseFile(fl);
end;
 
 
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 k := k+1;
  if k = 10 then begin
    Label1.Caption := IntToStr(k);
 
    Ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+'MyIni.ini');
    Ini.WriteString('IMG', 'LastImg', 'fon1.jpg');
    Image1.Picture.LoadFromFile('fon1.jpg');
 
 
end  else
    Label1.Caption := IntToStr(k);
 
  if k = 23 then begin
 
 
      Ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+'MyIni.ini');
    Ini.WriteString('IMG', 'LastImg', 'fon2.jpg');
    Image1.Picture.LoadFromFile('fon2.jpg');
 
    end;
   if k = 33 then begin
 
    k := 0;
    end;
    end;
 
end.

1.Если я правильно понял, то для загрузки картинок теперь нужно везде вписывать 3 строки?

Delphi
1
2
3
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+'MyIni.ini');
    Ini.WriteString('IMG', 'LastImg', 'fon2.jpg');
    Image1.Picture.LoadFromFile('fon2.jpg');

2.Как зашифровать ini файл, чтобы он был не читаемым при открытии в блокноте(разные символы и т.д)?

Заранее благодарю за ответы, про + не забываю.
0
anonimus
2154 / 1244 / 143
Регистрация: 28.04.2010
Сообщений: 4,584
28.06.2011, 16:47 #13
Цитата Сообщение от Cannon Посмотреть сообщение
.Как зашифровать ini файл, чтобы он был не читаемым при открытии в блокноте(разные символы и т.д)?
а что ж ты только сейчас о этом подумал?
тогда сохраняй в типизированный файл, и не надо ничего шифровать
0
Cannon
3 / 3 / 0
Регистрация: 05.02.2011
Сообщений: 116
28.06.2011, 17:19  [ТС] #14
Если можно, приведите примерчик пожалуйста, буду очень благодарен, + за мной.
0
28.06.2011, 17:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2011, 17:19

запуск по времени... приложения
Собственно проблема в 'по времени' есть таймер, с интревалом в 1 сек, есть...

Запуск приложения на Delphi
Забыл, как это сделать, поэтому прошу подсказки: Какие нужно выполнить...

WinExec запуск приложения с БД
В папке находятся файлы .exe и .mdb. С файлом .exe нет проблем, он запускается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru