powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / двойное условие
6 сообщений из 31, страница 2 из 2
двойное условие
    #39708435
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirVVPschi,
Извените, но я в отличии от вас хотя бы пытаюсь написать а вот вы строите из себя супер пупер, а сами даже попытку сделать не можете, я то же могу посоветовать вам книги читать и что?
я же писал уже что учусь только а вы сразу (плохому ), знаете лучше, так покажите, не знаете, так зачем вообще комментируете..

А я Demos изучал, между прочим. Чего и советую уже в который раз.
...
Рейтинг: 0 / 0
двойное условие
    #39708514
VladimirVVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: pascal
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.
procedure Form1_bMySQL_OnClick (Sender: TObject; var Cancel: boolean);
begin
    SwitchDBMS('mysql');
end;

procedure Form1_bSQLite_OnClick (Sender: TObject; var Cancel: boolean);
begin
    SwitchDBMS('sqlite');
end;



function SwitchDBMS(DBMS: string): boolean;
var
    ini : TInifile;
begin
    result := False;
    ini:= TIniFile.Create(Application.SettingsFile);
    try

        if DBMS = 'sqlite' then
        begin
            if ini.ReadString('Options', 'DBMS', '') = 'sqlite' then ShowMessage ('Программа уже подключена к SQLite.')
            else begin
                try
                    ini.WriteString('Options', 'DBMS', 'sqlite');
                    result := true;
                    OpenFile('start.bat');
                    Form1.Close;
                except
                    ShowMessage('Ошибка записи в ini файл.');
                end;
            end;                                         
        end;

        if DBMS = 'mysql' then
        begin
            if ini.ReadString('Options', 'DBMS', '') = 'mysql' then ShowMessage ('Программа уже подключена к MySQL.')
            else begin
                try
                    ini.WriteString('Options', 'DBMS', 'mysql');
                    result := true;
                    OpenFile('start.bat');
                    Form1.Close;
                except
                    ShowMessage('Ошибка записи в ini файл.');
                end;
            end;
        end;

    finally
        ini.Free;
    end;
end;
...
Рейтинг: 0 / 0
двойное условие
    #39708517
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
VladimirVVP
Код: pascal
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.
procedure Form1_bMySQL_OnClick (Sender: TObject; var Cancel: boolean);
begin
    SwitchDBMS('mysql');
end;

procedure Form1_bSQLite_OnClick (Sender: TObject; var Cancel: boolean);
begin
    SwitchDBMS('sqlite');
end;



function SwitchDBMS(DBMS: string): boolean;
var
    ini : TInifile;
begin
    result := False;
    ini:= TIniFile.Create(Application.SettingsFile);
    try

        if DBMS = 'sqlite' then
        begin
            if ini.ReadString('Options', 'DBMS', '') = 'sqlite' then ShowMessage ('Программа уже подключена к SQLite.')
            else begin
                try
                    ini.WriteString('Options', 'DBMS', 'sqlite');
                    result := true;
                    OpenFile('start.bat');
                    Form1.Close;
                except
                    ShowMessage('Ошибка записи в ini файл.');
                end;
            end;                                         
        end;

        if DBMS = 'mysql' then
        begin
            if ini.ReadString('Options', 'DBMS', '') = 'mysql' then ShowMessage ('Программа уже подключена к MySQL.')
            else begin
                try
                    ini.WriteString('Options', 'DBMS', 'mysql');
                    result := true;
                    OpenFile('start.bat');
                    Form1.Close;
                except
                    ShowMessage('Ошибка записи в ini файл.');
                end;
            end;
        end;

    finally
        ini.Free;
    end;
end;



В случае ошибки записи в файл форма Form1 никогда не закроется
...
Рейтинг: 0 / 0
двойное условие
    #39708742
VladimirVVP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator,

программа должна перезагрузиться только в случае успешной записи записи, что бы новые настройки принять
...
Рейтинг: 0 / 0
двойное условие
    #39708764
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirVVP,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
 
SwitchDBMS('mysql');
...
SwitchDBMS('sqlite');
....
if DBMS = 'sqlite' then
....
                    ini.WriteString('Options', 'DBMS', 'sqlite');


Вот просто интересно, зачем столько текстовых констант?.. Почему бы не сделать типа
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
type
  TDBMS = (dbMYSQL, dbSQLITE);
...
SwitchDBMS(dbSQLITE);
...
if DBMS = dbSQLITE then
....
                    ini.WriteString('Options', 'DBMS', 'sqlite');
...
Рейтинг: 0 / 0
двойное условие
    #39708768
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже проще:

Код: pascal
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.
type
  TDBMS = (dbMYSQL, dbSQLITE);

const
  TDBMSText: array [TDBMS] of string = ('mysql', 'sqlite');
...
SwitchDBMS(dbSQLITE);
...
function SwitchDBMS(DBMS: string): boolean;
var
  ini : TInifile;
begin
  result := False;
  ini:= TIniFile.Create(Application.SettingsFile);
  try
    if ini.ReadString('Options', 'DBMS', '') = TDBMSText[DBMS] then 
      ShowMessage(Format('Программа уже подключена к %s.', [TDBMSText[DBMS]]))
    else try
      ini.WriteString('Options', 'DBMS', TDBMSText[DBMS]);
      result := true;
      OpenFile('start.bat');
      Form1.Close;
    except
      ShowMessage('Ошибка записи в ini файл.');
    end;
  finally
    ini.Free;
  end;
end;
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / двойное условие
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]