[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    ИМХО проще всего для каждой переменной создать свой стринглист и при выборе в ComboBox1 i-того элемента в эдиты выводить значения соответствующих строк.
     
  2. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    делаешь объект obj, содержащий данные для Edit1 и Edit2
    ComboBox1.Items.AddObject('http://www.ru',obj); //this is COOL :D
     
  3. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    а ты однако мазохист, проще создать запись вида:
    Code:
    type
      PInfo = ^TInfo;
      TInfo = record
        Host: String;
        IP: String;
        Port: String;
      end;
    
    и заюзать TList, все компактно и удобно, а не куча переменных TStringList %)
     
  4. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    alexey-m, xophet

    PHP:
    begin
        s
    :=TL.Strings[ComboBox1.ItemIndex];
        
    Delete(s,1,pos(':',s));
        
    edit1.text:=Copy(s,0,POS(':',s)-1);
        
    Delete(s,1,pos(':',s));
        
    edit2.text:=Copy(s,0,length(s));
    end;
    Не?
     
  5. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    Реализуй в данном примере. Интересный метод охота ознакомиться.
     
  6. waik

    waik Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
    Зачем еще StringList.Работайте с теми данными которые вас просят обработать в данный момент.
    Code:
    Procedure TForm1.ComboBox1Click(Sender : TObject)
    Var
        s:string;
    begin
        s:=ComboBox1.Items[ComboBox1.ItemIndex]; //вот так
        Delete(s,1,pos(':',s));
        edit1.text:=Copy(s,0,POS(':',s)-1);
        Delete(s,1,pos(':',s));
        edit2.text:=Copy(s,0,length(s));
    end;
    
     
    2 people like this.
  7. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    Неа... или я читать не умею или ты не так изъясняешься, то что выше сказал, было к этому:
    ps. строки в delphi начинаются не с 0 индекса, а с 1
     
  8. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    Вот набросал:
    Code:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TPrimeFRm1 = class(TForm)
        ComboBox1: TComboBox;
        Button1: TButton;
        Edit1: TEdit;
        Edit2: TEdit;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
      private
        { Private declarations }
      public
        i:integer;
        { Public declarations }
      end;
      obj = class (TObject)
        private
          fHost,fPort:string;
        public
          property Host: string read fHost write fHost;
          property Port: string read fPort write fPort;
          constructor create; overload;
      end;
    var
      PrimeFRm1: TPrimeFRm1;
    
    implementation
    
    {$R *.dfm}
    constructor obj.create;
    begin
      inherited create;
    end;
    
    procedure TPrimeFRm1.Button1Click(Sender: TObject);  //заполняем ComboBox
    var addtolist:obj;
    begin
      addtolist:=obj.create;
      addtolist.host:='172.18.16.'+inttostr(i);
      addtolist.port:='8080';
      ComboBox1.AddItem('САЙТ '+inttostr(i),addtolist);
      inc(i);
    end;
    
    procedure TPrimeFRm1.FormCreate(Sender: TObject);
    begin
      i:=1;
    end;
    
    procedure TPrimeFRm1.Button2Click(Sender: TObject);     //присваеваем EDIT'у значения полей obj'a
    begin
    //тут, к стати, неплохо было бы проверить (ComboBox1.Items.Objects[ComboBox1.ItemIndex] is obj)
     Edit1.Text:=(ComboBox1.Items.Objects[ComboBox1.ItemIndex] as obj).host;
     Edit2.Text:=(ComboBox1.Items.Objects[ComboBox1.ItemIndex] as obj).port;
    end;
    
    procedure FreeObjects(const strings: TStrings) ;   //удаляет созданные нами obj'ы
    var
      idx : integer;
    begin
      for idx := 0 to Pred(strings.Count) do
      begin
        strings.Objects[idx].Free;
        strings.Objects[idx] := nil;
      end;
    end;
    
    procedure TPrimeFRm1.FormDestroy(Sender: TObject);  //не забываем
    begin
      FreeObjects(ComboBox1.Items);
    end;
    
    end.
    
     
    #8288 xophet, 9 Jun 2011
    Last edited: 9 Jun 2011
  9. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    Действительно, всё очень просто...
     
  10. skagen

    skagen Member

    Joined:
    8 Jan 2010
    Messages:
    122
    Likes Received:
    13
    Reputations:
    0
    вопрос новичка:
    отличается ли исходный код, например, делфи 7 от кода делфи 2010? то есть будет ли работать исходник ранней версии в компиляторе более поздней версии?
     
  11. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    как правило, исходники от ранних версий собираются без проблем в компиляторах поздних версий, чего нельзя сказать о обратном, тем более, если в коде используются фишки новых компиляторов типа: Inline, Generics и прочего
     
    1 person likes this.
  12. waik

    waik Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
    Мне нужно было из кодировки русских символов JSon сделать читабельные и понятные символы.Написал функцию JSonToRus:

    StrReplace -для удобной замены.
    Code:
    function StrReplace(const Str, Str1, Str2: string): string;
    var
      P, L: Integer;
    begin
      Result := str;
      L := Length(Str1);
      repeat
        P := Pos(Str1, Result);
        if P > 0 then
        begin
          Delete(Result, P, L);
          Insert(Str2, Result, P);
        end;
      until P = 0;
    end;
    
    JSonToRus - моя функция.
    Code:
    Function JSonToRus(str: string): string;
    Var
      js: array of array of string;
      i : integer;
    Begin
      SetLength(js,66,2);
      js[0][0]:= '\U0410';    js[0][1]:='А';
      js[1][0]:= '\U0430';    js[1][1]:='a';
      js[2][0]:= '\U0411';    js[2][1]:='Б';
      js[3][0]:= '\U0431';    js[3][1]:='б';
      js[4][0]:= '\U0412';    js[4][1]:='В';
      js[5][0]:= '\U0432';    js[5][1]:='в';
      js[6][0]:= '\U0413';    js[6][1]:='Г';
      js[7][0]:= '\U0433';    js[7][1]:='г';
      js[8][0]:= '\U0414';    js[8][1]:='Д';
      js[9][0]:= '\U0434';    js[9][1]:='д';
      js[10][0]:= '\U0415';   js[10][1]:='Е';
      js[11][0]:= '\U0435';   js[11][1]:='е';
      js[12][0]:= '\U0401';   js[12][1]:='Ё';
      js[13][0]:= '\U0451';   js[13][1]:='ё';
      js[14][0]:= '\U0416';   js[14][1]:='Ж';
      js[15][0]:= '\U0436';   js[15][1]:='ж';
      js[16][0]:= '\U0417';   js[16][1]:='З';
      js[17][0]:= '\U0437';   js[17][1]:='з';
      js[18][0]:= '\U0418';   js[18][1]:='И';
      js[19][0]:= '\U0438';   js[19][1]:='и';
      js[20][0]:= '\U0419';   js[20][1]:='Й';
      js[21][0]:= '\U0439';   js[21][1]:='й';
      js[22][0]:= '\U041A';   js[22][1]:='К';
      js[23][0]:= '\U043A';   js[23][1]:='к';
      js[24][0]:= '\U041B';   js[24][1]:='Л';
      js[25][0]:= '\U043B';   js[25][1]:='л';
      js[26][0]:= '\U041C';   js[26][1]:='М';
      js[27][0]:= '\U043C';   js[27][1]:='м';
      js[28][0]:= '\U041D';   js[28][1]:='Н';
      js[29][0]:= '\U043D';   js[29][1]:='н';
      js[30][0]:= '\U041E';   js[30][1]:='О';
      js[31][0]:= '\U043E';   js[31][1]:='о';
      js[32][0]:= '\U041F';   js[32][1]:='П';
      js[33][0]:= '\U043F';   js[33][1]:='п';
      js[34][0]:= '\U0420';   js[34][1]:='Р';
      js[35][0]:= '\U0440';   js[35][1]:='р';
      js[36][0]:= '\U0421';   js[36][1]:='С';
      js[37][0]:= '\U0441';   js[37][1]:='с';
      js[38][0]:= '\U0422';   js[38][1]:='Т';
      js[39][0]:= '\U0442';   js[39][1]:='т';
      js[40][0]:= '\U0423';   js[40][1]:='У';
      js[41][0]:= '\U0443';   js[41][1]:='у';
      js[42][0]:= '\U0424';   js[42][1]:='Ф';
      js[43][0]:= '\U0444';   js[43][1]:='ф';
      js[44][0]:= '\U0425';   js[44][1]:='Х';
      js[45][0]:= '\U0445';   js[45][1]:='х';
      js[46][0]:= '\U0426';   js[46][1]:='Ц';
      js[47][0]:= '\U0446';   js[47][1]:='ц';
      js[48][0]:= '\U0427';   js[48][1]:='Ч';
      js[49][0]:= '\U0447';   js[49][1]:='ч';
      js[50][0]:= '\U0428';   js[50][1]:='Ш';
      js[51][0]:= '\U0448';   js[51][1]:='ш';
      js[52][0]:= '\U0429';   js[52][1]:='Щ';
      js[53][0]:= '\U0449';   js[53][1]:='щ';
      js[54][0]:= '\U042A';   js[54][1]:='Ъ';
      js[55][0]:= '\U044A';   js[55][1]:='ъ';
      js[56][0]:= '\U042B';   js[56][1]:='Ы';
      js[57][0]:= '\U044B';   js[57][1]:='ы';
      js[58][0]:= '\U042C';   js[58][1]:='Ь';
      js[59][0]:= '\U044C';   js[59][1]:='ь';
      js[60][0]:= '\U042D';   js[60][1]:='Э';
      js[61][0]:= '\U044D';   js[61][1]:='э';
      js[62][0]:= '\U042E';   js[62][1]:='Ю';
      js[63][0]:= '\U044E';   js[63][1]:='ю';
      js[64][0]:= '\U042F';   js[64][1]:='Я';
      js[65][0]:= '\U044F';   js[65][1]:='я';
    
      For i:=0 to 65 do Begin // перебираем все символы и заменим их
          str:=StrReplace(str,LowerCase(js[i][0]),js[i][1]); // при помощи StrReplace
      end;
    Result:=str;
    End;
    
    
    Использовать :
    Code:
    Memo1.Text:=JSonToRus(s);
    
    Моя просьба уменьшить/оптимизировать мою версию преобразования русских символов Json.
     
    #8292 waik, 12 Jun 2011
    Last edited: 12 Jun 2011
  13. Timon132009

    Timon132009 Member

    Joined:
    7 Jun 2009
    Messages:
    137
    Likes Received:
    19
    Reputations:
    0


    Code:
    function GetUN(UniNum: string): string;
    var
      s : string;
    begin
      s := UniNum;
      Delete(s, 1, 2);
      s := Chr(StrToInt('$' + s) - 848);
      Result := s;
    end;
    function GetRus(UniText:string):string;
    var
      i: integer;
      s, w: string;
    begin
      s := UniText;
      if pos('\u', s) = 0 then
      begin
        Result := s;
        Exit;
      end;
      while pos('\u', s) > 0 do
      begin
        if pos('\u', s) = 1 then
        begin
          w := w + GetUn(Copy(s, pos('\u', s), 6));
          Delete(s, pos('\u', s), 6);
        end else
        begin
          w := w + Copy(s, 1, 1);
          Delete(s, 1, 1);
        end;
      end;
      if Length(s) > 0 then w := w + s;
      Result := w;
    end;
    Использовать GetRus(string);
     
  14. Timon132009

    Timon132009 Member

    Joined:
    7 Jun 2009
    Messages:
    137
    Likes Received:
    19
    Reputations:
    0
    Как преобразовать в понятный текст?
    Code:
    яяяяf
    PM®ZiЉ.®0‘p.®0j`.®4jГ[Ъдеk+O*QЩMO*Qч2.®0jа_…Ѕmrј†+iЌІ»Eei‡ІВДi€PM®[i—ГHъгi‡>zХ‘„]^іoiЊВjЕai‡Г.Ґѓi‡І1.нi‘.®0j”БЩ
    i§Г6СУi€.(i‰U*ђi€SЮaЗjҐM2[°ђћ*$i‰В˜".i€WuЌ»i€Mуbзi±.®4jYmГPКiЋPM®ьiшOЏJi°.®4j¤>zХjOSЮaM‚МФtz'i€>zРLjFMЬґi‡XФЭ9i‡SЮsviђ.®0‘‚]ї„i€.4иьi‰Uиdi€^џzi€^ж#vi„ФL‡i‡MЬёЕ‘жmГPКiЉФtr#i™_Њi‡>zХj‚YЯ њi•.®0jbјxхЁj®[gќ†i’O*QД¶.®4jIOҐ?Ђi–]ќиUiЊ[ЪеМjTІьlli‘m?№OiЌVnµ—i‘.®0jа.(/i–O*QуPM®ыiфmГ
    В FAQ написано:

    Code:
    Reply format
    The reply always starts with FF FF FF FF 66 0A.
    The format is then a series of these server address blocks:
    [B]Byte[/B] 	First octet of IP address
    [B]Byte[/B] 	Second octet of IP address
    [B]Byte[/B] 	Third octet of IP address
    [B]Byte[/B] 	Fourth octet of IP address
    [B]Unsigned Short[/B] 	Port number - usually 27015 (69 87) - this is network ordered, which is unlike every other Steam protocol.
    http://developer.valvesoftware.com/wiki/Master_Server_Query_Protocol
     
    #8294 Timon132009, 12 Jun 2011
    Last edited: 13 Jun 2011
  15. M1ks

    M1ks Elder - Старейшина

    Joined:
    23 Aug 2007
    Messages:
    140
    Likes Received:
    9
    Reputations:
    0
    Нужна помощь с паскалем.
    имеется программа
    Code:
    program menu;
    uses crt, graph;
                const n=5;
                x1=-6;
                x2=6;
    var a:array[1..n,1..n] of integer;
        b:array[1..n,1..n] of integer;
        gd, gm: integer;
        x,y:real;
    max,i,j,min,a1,b1:integer;
     m:array [1..n,1..n] of integer;
     mx,my,p,o,dx,w:real;
    Driver,Mode:integer;
    Color:word;
    x0,y0:word;
     s2,s1:string;
     xg,yg:word;
    size,d,z:word;
    
    type
    strmenu=record
    z:integer;
    s:string[14];
    end;
    Const
    kol=5;
    mas:array[1..kol] of strmenu=
    ((z:6; s:'Vvod Dannyx'),
    (z:20; s:'Sortirovka'),
    (z:35; s:'Graphik'),
    (z:50; s:'Vyvod dannyx'),
    (z:63; s:'Exit'));
    Var
    e:integer;
    k:integer;
    ch:char;
    procedure InputDan;
    begin
    clrscr;
    randomize;
    for i:=1 to n do
    for j:=1 to n do begin writeln('vvedite element ',i,' stroki ',j,' stolbca ');
    readln(a[i,j]);
    end;
    for i:=1 to n do
    for j:=1 to n do
    b[j,n+1-i]:=a[i,j];
    end;
    procedure SortDan;
    begin {
    clrscr;
    write(m[i,j]);
    for i:=1 to n-1 do begin
    for j:=1 to n-i do
    if m[3,j]>=m[3,j+1] then begin min:=m[3,j];m[3,j]:=m[3,j+1];m[3,j+1]:=min;
    end;
    for j:=1 to n do
    write(m[3,j],' ');
    readln(m[i,j]);
    end;}
    end;
    procedure GraphFun;
    begin
    Clrscr;
    Writeln('Postroit graphik y=cos2x-sinx');
    
    	xg:=0;
    	yg:=0;
    	DRiver:=VGA;
    	Mode:=VGAHi;
        InitGraph(DRiver,Mode,'‘:\');
             if GraphResult<>grok then
    			begin
    writeln('Oshibka pri vkluchenii');
     	writeln('Graphicheskogo regima');
    	Halt;
    			end;
    x0:=140;
    y0:=(GetMaxY div 2)+40;
    setBkColor(7);
    setColor(white);
    ClearDevice;
    Line(x0,40,x0,GetMaxY-40);
    Line(x0-100,y0,GetMaxX-40,Y0);
    MoveTo(x0,y0);
    Size:=1;
    settextstyle(0,0,size);
    outtextxy(x0-2,y0+5,'0');
    outtextxy((getmaxx div 2)-40,y0-100,'y=cos(x)*cos(x)-sin(x)');
    outtextxy(getmaxx-80,y0+5,'x');
    outtextxy(x0-10,80,'y');
    For d:=1 to 3 do
    Line(x0+20*i,y0-3,x0+20*i,y0);
    outtextxy(x0+20,y0+5,'1');
    outtextxy(x0+63,y0+5,'3');
    Line(x0-20,y0-3,x0-20,y0);
    outtextxy(x0-25,y0+5,'-1');
    Line(x0,y0+20,x0+3,y0+20);
    outtextxy(x0-13,y0+20,'-1');
    setColor(red);
    x:=-6;
    y:=cos(x)*cos(x)-sin(x);
    xg:=x0+round(x*20);
    yg:=y0-round(y*20);
    MoveTo(xg,yg);
    for d:=1 to 180 do
    begin
    x:=-6+0.1*d;
    y:=cos(x)*cos(x)-sin(x);
    xg:=x0+round(x*20);
    yg:=y0-round(y*20);
    LineTo(xg,yg);
    end;
    Readln;
    CloseGraph;
    end;
    procedure OutputDan;
    begin
    clrscr;
    for i:=1 to n do
    for j:=1 to n do
    b[j,n+1-i]:=a[i,j];
    writeln;
    writeln('ishodniy massiv:');
    for i:=1 to n do begin
    for j:=1 to n do
    write(a[i,j]:5);
    writeln; end;
    writeln;
    writeln('rezultat:');
    for i:=1 to n do begin
    for j:=1 to n do
    write(b[i,j]:5);
    writeln;
    end;
    max:=m[1,1];
    for i:=2 to n do
    if (max<m[i,i]) and (m[i,i] mod 2 =0) then max:=m[i,i];
    writeln('maximalniy element glavnoy diagonali =',max);
    readln(m[i,i]);
    
    end;
    begin
    k:=1;
    repeat
    textattr:=7;
    clrscr;
    for e:=1 to kol do
    begin
    gotoxy(mas[e].z,3);
    write(mas[e].s);
    end;
    textattr:=87;
    gotoxy(mas[k].z,3);
    write(mas[k].s);
    ch:=readkey;
    case ch of
    #13:case k of
    1:inputDan;
    2:SortDan;
    3:Graphfun;
    4:OutputDan;
    end;
    #0:begin
    ch:=readkey;
    case ch of
    #77:
    if k<kol then
    k:=k+1
    else
    k:=1;
    #75:
    if k>1 then
    k:=k-1
    else
    k:=kol;
    end;
    end;
    end;
    until(ch=#13)and(k=5)or(ch=#27);
    textattr:=7;
    begin
    clrscr;
    end;
    end.
    
    Есть несколько заданий, некоторые задания в этой программе не работают, я почему то не могу правильно вставить готовые программы в это меню.

    Вот задания:
    1. Повернуть матрицу на 90 градусов по часовой стрелке (работает)

    2. Найти максимальный четный элемент на главной диагонали матрицы (не работает)
    3. Выполнить сортировку элементов 3-ей строки матрицы М по возрастанию ( не работает)
    4. график (работает)
    Вот программы без меню.
    Code:
      const n:=5;
      var a:array[1..n,1..n] of integer;
      var b:array[1..n,1..n] of integer;
      max,i,j,min,a1,b1:integer;
      begin
      {часть 1}
      for i:=1 to n do
      for j:=1 to n do begin writeln('Введите элемент ',i', строки ',j,' столбца ');
      readln(a[i,j]);
      end;
      for i:=1 to n do
      for j:=1 to n do
      b[j,n+1-i]:=a[i,j];
      writeln;
      writeln('исходный массив:');
      for i:=1 to n do begin
      for j:=1 to n do
      write(a[i,j]:5);
      writeln; end;
      writeln;
      writeln('результат:');
      for i:=1 to n do begin
      for j:=1 to n do
      write(b[i,j]:5);
      writeln;
      end;
      {часть 2}
      for i:=1 to n do
      for j:=1 to n do begin write('Введите элемент ',i,' строки ',j,' столбца: ');
      readln(m[i,j];
      end;
      writeln;
      writeln('исходный массив:');
      for i:=1 to n do begin
      for j:=1 to n do
      write(m[i,j]:5);
      writeln; end;
      max:m[1,1];
      for i:=2 to n do
      if (max<m[i,i]) and (m[i,i] mod 2 =0) then max:=[i,i];
      writeln('Максимальный элемент главной диагонали=',max);
      {часть 3}
      for i:=1 to n-1 do begin
      for j:=1 to n-i do
      if m[3,j>=m[3,j+1] then begin min:=m[3,j];m[3,j]:m[3,j]:m[3,j+1];m[3,j+1]:min;end
     ;
     end;
     for j:=1 to n do
     write(m[3,j],' ');
     readln;
     end.
     
    Помогите, чтобы в меню они работали. Буду очень признателен!

    и еще хотелось бы видеть
    в процедуре ввода:
    был дан выбор
    1. ввод ручной (после чего начнется ввод чисел)
    2. ввод автоматический (после чего выведет сообщение "данные успешно введены")
    В выводе, если данные не были введены, т.е раннее не открывался пункт ввод, должна будет появится ошибка "Данные не введены"
     
    #8295 M1ks, 13 Jun 2011
    Last edited: 13 Jun 2011
  16. Rastamanka

    Rastamanka Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Как при нажатии на клавишу ESC остановить цикл в Delphi?
     
  17. waik

    waik Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
    У формы установи свойство KeyPreview в True и обрабатывай событие OnKeyPress.

    Или так
     
  18. Rastamanka

    Rastamanka Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    А какой обозначение в данном примере у клавиши ESC?
     
  19. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    Ваще обленились)
    Code:
    ShowMessage(IntToStr(ord(Key)));
     
  20. Rastamanka

    Rastamanka Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Спасибо. Пробовала вместо 1 поставить 27. Т.к. нашла это в инет. Софтина ругалась. Потом изменила на VK_ESCAPE и норм стало.

    Терь вот какой вопрос появился.
    Есть софт который каждую минуту подключается к определенному серверу по логину и паролю.
    Так вот как реализоваться чтобы можно было запустить тока 1 копию программы с логином и паролем. То есть если кто-то захочет запустить программу с этим логином и паролем на другой машине когда первая уже залоснились у него ничего не вышло чтобы.Я так понимаю надо копать в сторону сессий на php. Но как реализацию сделать в Delphi?
     
Thread Status:
Not open for further replies.