[ 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. stepashka_

    stepashka_ Мотоциклист

    Joined:
    9 Nov 2009
    Messages:
    1,022
    Likes Received:
    423
    Reputations:
    234
    она вроде кривая :confused: , качай 7 или 9 :)
     
  2. SkyLine32

    SkyLine32 Member

    Joined:
    1 Mar 2009
    Messages:
    144
    Likes Received:
    22
    Reputations:
    2
    У меня есть седьмая, хочу 2010 поюзать.
     
  3. dos999

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

    Joined:
    15 Feb 2008
    Messages:
    137
    Likes Received:
    24
    Reputations:
    0
    stepashka_ тебе надо в папку Startup или в ключь реестра run?
     
  4. stepashka_

    stepashka_ Мотоциклист

    Joined:
    9 Nov 2009
    Messages:
    1,022
    Likes Received:
    423
    Reputations:
    234
    в реестр.

    Уже сам сделал)
    Вот этим кодом
    Code:
    procedure ChangeReg(StrName: ShortString; delete: boolean);
    
    var
    
    reg: TRegistry;
    
    begin
    
    Reg := nil;
    
    try
    
    reg := TRegistry.Create;
    
    reg.RootKey := HKEY_LOCAL_MACHINE;
    
    reg.LazyWrite := false;
    
    reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',false);
    
    if not delete then reg.WriteString(StrName, Application.ExeName)
    
    else reg.DeleteValue(StrName);
    
    reg.CloseKey;
    
    reg.free;
    
    except
    
    if Assigned(Reg) then Reg.Free;
    
    end;
    
    end;
    
    
    
    procedure TForm1.AddBtnClick(Sender: TObject);
    begin
    
    ChangeReg('My App',false); //добавляем в Автозагрузку
    
    end;
    
     
    #5584 stepashka_, 26 Mar 2010
    Last edited by a moderator: 29 Mar 2010
  5. Life7

    Life7 Banned

    Joined:
    14 Jun 2009
    Messages:
    150
    Likes Received:
    54
    Reputations:
    0
    Добрый день, мне очень срочно нужны ответы на пару вопросов...
    1) Мне нужно чтобы при на жатии на кнопку на label выводился определенный текст (Это я сделал, не такой уж нуб), Но мне надо чтобы при втором нажатии на эту кнопку появлялся второй текст вместо прежнего, либо как сделать чтобы при нажатии на кнопку выводился текст а потом эта кнопочка удалялась и вместо нее появлялась другая кнопочка при нажатии на которую уже появлялся второй текст
    2) Как сделать чтобы при нажатии на кнопку открывалось еще одна форма (окно)
    и закрывалось старое.
     
  6. h(f)ucker

    h(f)ucker Member

    Joined:
    11 Jul 2009
    Messages:
    81
    Likes Received:
    84
    Reputations:
    32
    Life7
    1) Поиграйся со свойством visible(видимость) т.е. например скрыть кнопку можно так:
    Code:
    Button1.visible:=false;
    2) Создать фому можно так
    Code:
    Form2:=TForm2.create(self);
    Form2.Show;
    Закрыть форму одной командой
    Code:
    Form2.Close;
    Но нужно учесть, что при закрытии Главной формы закроется все приложение.
     
  7. heretic1990

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

    Joined:
    2 Jul 2008
    Messages:
    487
    Likes Received:
    182
    Reputations:
    5
    Life7, вот попробуй, то что ты описал в первом варианте.
    в свойствах второй кнопки сделай её невидимой, и расположи их друг на друге.
    и при нажатии первой выведется текст1 и кнопка1 скроется, а кнопка2 появится и при её нажатии выведется текст2.
    Code:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Label1: TLabel;
        Button1: TButton;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Label1.Caption:='текст1';
    Button1.Visible:=false;
    Button2.Visible:=true;
    end;
    
    procedure TForm1.Button2Click(Sender: TObject);
    begin
    label1.Caption:='текст2';
    end;
    
    end.
    p.s. ничего тут сложного нет
     
  8. EndLeSSDre@M

    EndLeSSDre@M Banned

    Joined:
    18 Jul 2009
    Messages:
    142
    Likes Received:
    99
    Reputations:
    -5
    ну так и используй для этого свойство Button1.Visible:=true или false

    Form1.hide;
    Form2.show;
     
    #5588 EndLeSSDre@M, 26 Mar 2010
    Last edited: 26 Mar 2010
  9. stepashka_

    stepashka_ Мотоциклист

    Joined:
    9 Nov 2009
    Messages:
    1,022
    Likes Received:
    423
    Reputations:
    234
    Читай выше ^
     
  10. Life7

    Life7 Banned

    Joined:
    14 Jun 2009
    Messages:
    150
    Likes Received:
    54
    Reputations:
    0
    неувидел. спбо
     
  11. Lord NightKon

    Lord NightKon Member

    Joined:
    26 Mar 2008
    Messages:
    26
    Likes Received:
    7
    Reputations:
    0
    приветствую..
    если кто может - посмотрите этот код.. вроде ошибок быть не должно, но нету паскаля под рукой.. если где ошибки какие - поправьте пожалуйста..

    это так.. курсачь мой.. немного не доделан конечно, но тут-то и нужна ваша помощь.. алгоритм шифрования - двойной квадрат Уитстона.. мне бы всё это нанести на форму в делфи, что б было что-то вроде: http://i.piccy.info/i4/b8/aa/df22afa4f5adc6e42c178ad5dfbf.png

    привожу код:

    uses crt;
    type
    ttable=array[1..7,1..5] of char;
    const
    list:ttable=(('а', 'б','в','г','д'),
    ('е','ж','з','и','к'),
    ('л','м','н','о','п'),
    ('р','с','т','у','ф'),
    ('х','ц','ч','ш','щ'),
    ('ъ','ы','ь','э','ю'),
    ('я','.',',',':',' '));
    {Степень перемешивания, с которой сформируются исходные таблицы}
    mixdepth=1000;

    procedure findxy(table:ttable;c:char;var x,y:byte);
    var
    p,o:byte;
    begin
    for o:=1 to 7 do
    for p:=1 to 5 do
    if table[o,p]=c then
    begin
    x:=p;
    y:=o;
    exit;
    end;
    end;

    var
    table1,table2:ttable;
    p,o,p2,o2:byte;
    i:integer;
    c:char;
    s,s2:string;
    begin
    {Заполним таблицы}
    for o:=1 to 7 do
    for p:=1 to 5 do
    begin
    table1[o,p]:=list[o,p];
    table2[o,p]:=list[o,p];
    end;
    {Перемешаем таблицы}
    randomize;
    for i:=1 to mixdepth do
    begin
    {мешаем первую таблицу}
    o:=random(7)+1;
    p:=random(5)+1;
    o2:=random(7)+1;
    p2:=random(5)+1;
    c:=table1[o,p];
    table1[o,p]:=table1[o2,p2];
    table1[o2,p2]:=c;
    {Мешаем вторую таблицу}
    o:=random(7)+1;
    p:=random(5)+1;
    o2:=random(7)+1;
    p2:=random(5)+1;
    c:=table2[o,p];
    table2[o,p]:=table2[o2,p2];
    table2[o2,p2]:=c;
    end;
    {Выведем таблицы на экран}
    clrscr;
    for o:=1 to 7 do
    begin
    for p:=1 to 5 do write(table1[o,p]:2);
    write(' | ');
    for p:=1 to 5 do write(table2[o,p]:2);
    writeln;
    end;
    writeln('Введите текст который будет зашифрован используя только символы из таблиц:');
    readln(s);
    if odd(length(s)) then s:=s+' '; {Если длина нечётна, добавим пробел}
    {Сформируем зашифрованую строку}
    i:=1;
    s2:='';
    while i<length(s) do
    begin
    findxy(table1,s,p,o);
    findxy(table2,s[i+1],p2,o2);
    s2:=s2+table2[o,p2]+table1[o2,p];
    inc(i,2);
    end;
    {Выведем зашифрованую строку}
    writeln('Зашифрованая строка выглядит так:');
    writeln(s2);
    end.
     
    #5591 Lord NightKon, 26 Mar 2010
    Last edited: 27 Mar 2010
  12. alexey-m

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

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    Зачем такие извращения, когда можно обойтись одной кнопкой:
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    case button1.tag of
    0: begin
    Label1.Caption:='текст1';
    Button1.Tag:=1;
    end;
    1: begin
    Label1.Caption:='текст2';
    Button1.Tag:=0;
    end;
    end;
    end;
    
     
  13. heretic1990

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

    Joined:
    2 Jul 2008
    Messages:
    487
    Likes Received:
    182
    Reputations:
    5
    alexey-m, согласен, но ведь я привёл пример как описал автор вопроса))
     
  14. stepashka_

    stepashka_ Мотоциклист

    Joined:
    9 Nov 2009
    Messages:
    1,022
    Likes Received:
    423
    Reputations:
    234
    При установке компонента icq выдаёт вот это

    [Предупреждение] Unit 'uMD5Hash' implicitly imported into package 'TICQClient'

    Кто подскажет?
     
  15. 090808

    090808 Member

    Joined:
    15 Mar 2009
    Messages:
    171
    Likes Received:
    46
    Reputations:
    10
    Как ставишь?
     
  16. stepashka_

    stepashka_ Мотоциклист

    Joined:
    9 Nov 2009
    Messages:
    1,022
    Likes Received:
    423
    Reputations:
    234
    Открываю TICQClient.dpk
    Потом в опциях среды ставлю путь к библиотеке
    Жму компилировать и выдаёт это
     
  17. heretic1990

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

    Joined:
    2 Jul 2008
    Messages:
    487
    Likes Received:
    182
    Reputations:
    5
    stepashka_,
    Как установить TICQClient:
    0) Удалите предыдущий компонент TICQClient, если ставили его
    1) Откройте TICQClient.dpk в Delphi
    2) Перейдите в Menu->Tools->Environment Options->Library
    3) Нажмите кнопку "..." напротив Library path
    4) Добавьте путь в папку, где лежит TICQClient
    5) Вернитесь к окошку открытого dpk
    6) Нажмите Compile
    7) Нажмите Install
     
  18. stepashka_

    stepashka_ Мотоциклист

    Joined:
    9 Nov 2009
    Messages:
    1,022
    Likes Received:
    423
    Reputations:
    234
    Я так и делаю)) выдаёт ошибку
     
  19. heretic1990

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

    Joined:
    2 Jul 2008
    Messages:
    487
    Likes Received:
    182
    Reputations:
    5
    может у тебя этот компонент уже установлен (посмотри на вкладке samples)? или не соответствует версии компилятора?
     
  20. heretic1990

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

    Joined:
    2 Jul 2008
    Messages:
    487
    Likes Received:
    182
    Reputations:
    5
    подскажите как реализовать сворачивание программы в трей при нажатии на кнопку закрытия окна (при участии компонента CoolTrayIcon).
     
Thread Status:
Not open for further replies.