Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Delphi] Zapis ścieżki do pliku do zmiennej.

matis95 17 Lut 2010 14:53 5116 32
  • #1 17 Lut 2010 14:53
    matis95
    Poziom 13  

    Witam. Napisałem w delphi program, dzięki któremu po naciśnięciu na button 1 (Gadu-Gadu) otwiera się GG. Wszystko jest OK ale brat ma gg w innej lokalizacji niż ja. I mam pytanie. Jak zrobić by w menu (mam tam na razie Plik->Zamknij, Pomoc->O Programie i Narzędzia->Opcje) Po naciśnięciu opcje otwierało się okno, gdzie wybiera się ścieżkę do pliku gg.exe

    Code:

    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Menus;

    type
      TForm1 = class(TForm)
        Button1: TButton;
        MainMenu1: TMainMenu;
        Plik1: TMenuItem;
        Zamknij1: TMenuItem;
        Pomoc1: TMenuItem;
        OProgramie1: TMenuItem;
        Narzdzia1: TMenuItem;
        Opcje1: TMenuItem;
        procedure Button1Click(Sender: TObject);
        procedure Zamknij1Click(Sender: TObject);
        procedure OProgramie1Click(Sender: TObject);
        procedure Opcje1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}

    uses ShellApi, Unit2;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
     [b]ShellExecute(Handle,'open','C:\Program Files\Gadu-Gadu\gg.exe','','',sw_Normal);[/b]
    end;

    procedure TForm1.Zamknij1Click(Sender: TObject);
    begin
    close;
    end;

    procedure TForm1.OProgramie1Click(Sender: TObject);
    begin
    Application.MessageBox('Run Programs' + #10 + '0.1a BETA', 'Informacja', MB_OK + MB_ICONInformation);
    end;

    procedure TForm1.Opcje1Click(Sender: TObject);
    begin
    Opcje.ShowModal;
    end;

    end.


    Jest to wersja beta 0.1a więc wygląda tragicznie :)

    Chodzi o to, że w miejsce:
    C:\Program Files\Gadu-Gadu\gg.exe
    będzie X, a w opcjach będzie X=Wpisana przez nas ścieżka do pliku.

    Poprawiłem tytuł. - arnoldziq

    0 29
  • #2 17 Lut 2010 14:57
    xanio
    Poziom 27  

    A chcesz tą ustawioną opcję gdzieś zapisać? W pliku? W rejestrze?

    0
  • #3 17 Lut 2010 15:00
    matis95
    Poziom 13  

    Mogła by się zapisywać w pliku tylko nie wiem jak to zrobić.

    Dodano po 38 [sekundy]:

    Ale to niekoniecznie

    0
  • #4 17 Lut 2010 15:06
    Arek K.
    Poziom 21  

    Zadeklaruj zmienną typu string i w niej przechowuj ścieżkę dostępu. W opcjach dodaj TEdit i jego Caption zapisuj do tej zmiennej. Potem niech jest odczytywana przez program w momencie wykonania. Mogłeś załączyć kod programu, a nie skompilowaną wersję.

    0
  • #5 17 Lut 2010 15:08
    xanio
    Poziom 27  

    ech,

    w TForm1 do public dodaj zmienną do przechowywania ścieżki do programu:

    Code:

      TForm1 = class(TForm)
        Button1: TButton;
        MainMenu1: TMainMenu;
        Plik1: TMenuItem;
        Zamknij1: TMenuItem;
        Pomoc1: TMenuItem;
        OProgramie1: TMenuItem;
        Narzdzia1: TMenuItem;
        Opcje1: TMenuItem;
        procedure Button1Click(Sender: TObject);
        procedure Zamknij1Click(Sender: TObject);
        procedure OProgramie1Click(Sender: TObject);
        procedure Opcje1Click(Sender: TObject);
      private
        { Private declarations }
      public
        sciezka: string;
      end;


    w Unit2 w implementation dodaj Form1 w Uses (jeśli jeszcze nie ma).

    Załóżmy, że w Unit2 masz Edit1 w którym się wpisuje ścieżkę (nie wiem bo nie dałeś kodu). Masz pewnie też przycisk OK (załóżmy, że Button1), który zamyka opcje.

    Zatem w zdarzeniu OnClick tego przycisku piszesz
    Form1.sciezka := Edit1.Caption;

    a OnClick w głównym okienku modyfikujesz na:
    ShellExecute(Handle,'open',sciezka,'','',sw_Normal);

    I już.

    Zapisywanie też gdzieś trzeba zrobić.

    0
  • #6 17 Lut 2010 15:10
    matis95
    Poziom 13  

    ja od dzisiaj (jakąś godzinę) bawię się z tym językiem. Kod programu załączyłem. Jest to program testowy.

    Code:

    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Menus;

    type
      TForm1 = class(TForm)
        Button1: TButton;
        MainMenu1: TMainMenu;
        Plik1: TMenuItem;
        Zamknij1: TMenuItem;
        Pomoc1: TMenuItem;
        OProgramie1: TMenuItem;
        Narzdzia1: TMenuItem;
        Opcje1: TMenuItem;
        procedure Button1Click(Sender: TObject);
        procedure Zamknij1Click(Sender: TObject);
        procedure OProgramie1Click(Sender: TObject);
        procedure Opcje1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}

    uses ShellApi, Unit2;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
     [b]ShellExecute(Handle,'open','C:\Program Files\Gadu-Gadu\gg.exe','','',sw_Normal);[/b]
    end;

    procedure TForm1.Zamknij1Click(Sender: TObject);
    begin
    close;
    end;

    procedure TForm1.OProgramie1Click(Sender: TObject);
    begin
    Application.MessageBox('Run Programs' + #10 + '0.1a BETA', 'Informacja', MB_OK + MB_ICONInformation);
    end;

    procedure TForm1.Opcje1Click(Sender: TObject);
    begin
    Opcje.ShowModal;
    end;

    end.


    Dodano po 1 [minuty]:

    możesz mi to dodać do tego całego kodu bo tego nie kapuje :(
    Dam pomógł.

    0
  • #7 17 Lut 2010 15:14
    xanio
    Poziom 27  

    Nie załączyłeś całego kodu bo nie ma Unit2.

    0
  • #9 17 Lut 2010 15:17
    matis95
    Poziom 13  

    Unit2:

    Code:

    object Opcje: TOpcje
      Left = 192
      Top = 114
      Width = 510
      Height = 298
      Caption = 'Opcje'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      PixelsPerInch = 96
      TextHeight = 13
      object Label1: TLabel
        Left = 144
        Top = 48
        Width = 222
        Height = 13
        Caption = 'Tu ma by mozliwosc wyboru scieszki do gg.exe'
      end
    end

    0
  • #10 17 Lut 2010 15:30
    arnoldziq
    Moderator Programowanie

    matis95 napisał:
    I mam pytanie. Jak zrobić by w menu (mam tam na razie Plik->Zamknij, Pomoc->O Programie i Narzędzia->Opcje) Po naciśnięciu opcje otwierało się okno, gdzie wybiera się ścieżkę do pliku gg.exe

    Jeżeli dobrze rozumiem, to autorowi tematu bardziej zależy na pobraniu dodatkowej ścieżki do dwu wersji GG, niż na sposobie zapisania tych danych.
    Zapisać dane można na 1001 sposobów, i w tym przypadku doradzam użycie plików INI, a nie zapis do rejestru, czy tworzenie własnych plików.
    Jeżeli chodzi o wyszukanie 'drugiego' GG, to sugeruję użyć TOpenDialog z odpowiednimi parametrami.
    Code:
    var
    
     OpenDialog : TOpenDialog;
     Sciezka    : String;
    begin
     OpenDialog:=TOpenDialog.Create(nil);
     try
      OpenDialog.Filter:='gg.exe';
      if Opendialog.Execute then
       begin
        Sciezka:=OpenDialog.FileName;     // zapis do zmiennej
        showmessage('Sciezka do GG : '+Sciezka); //wyswietlenie wyniku
       end;
      finally
       OpenDialog.Destroy;
      end;
    end;

    0
  • #11 17 Lut 2010 15:34
    matis95
    Poziom 13  

    Nie. Chodzi mi o to, że jak włączy się program trzeba wejść w Narzędzia->Opcje i wybrać ścieżkę do pliku gg.exe

    w moim programie jest:
    ShellExecute(Handle,'open','C:\Program Files\Gadu-Gadu\gg.exe','','',sw_Normal);
    a ja chce, żeby było
    ShellExecute(Handle,'open','zmienna','','',sw_Normal);, a tą zmienną ustawiało się w opcjach.

    0
  • #12 17 Lut 2010 15:53
    arnoldziq
    Moderator Programowanie

    Zastosuj coś takiego :

    Code:
    {*************************}
    
    function OdczytINI( zmienna : string ):string;
    var
     INI : TIniFile;
    begin
     INI := Tinifile.Create(IncludeTrailingBackslash(ExtractFilePath(Application.ExeName))+ 'Dane.INI');
     result:=INI.ReadString('SCIEZKI',zmienna,'');
     INI.Destroy;
    end;
    {*************************}
    procedure ZapisINI(zmienna,wartosc : string);
    var
     INI : TIniFile;
    begin
     INI := Tinifile.Create(IncludeTrailingBackslash(ExtractFilePath(Application.ExeName))+ 'Dane.INI');
     INI.WriteString('SCIEZKI',zmienna,wartosc);
     INI.Destroy;
    end;
    {*************************}

    Gdzie zmienna, jest tylko nazwą pod jaką chcesz zapisać cokolwiek w pliku INI.

    0
  • #13 17 Lut 2010 15:57
    matis95
    Poziom 13  

    Jestem początkujący i nic z tego nie rozumie. najlepiej, gdyby ktoś zastosował to:

    xanio napisał:
    ech,

    w TForm1 do public dodaj zmienną do przechowywania ścieżki do programu:

    Code:

      TForm1 = class(TForm)
        Button1: TButton;
        MainMenu1: TMainMenu;
        Plik1: TMenuItem;
        Zamknij1: TMenuItem;
        Pomoc1: TMenuItem;
        OProgramie1: TMenuItem;
        Narzdzia1: TMenuItem;
        Opcje1: TMenuItem;
        procedure Button1Click(Sender: TObject);
        procedure Zamknij1Click(Sender: TObject);
        procedure OProgramie1Click(Sender: TObject);
        procedure Opcje1Click(Sender: TObject);
      private
        { Private declarations }
      public
        sciezka: string;
      end;


    w Unit2 w implementation dodaj Form1 w Uses (jeśli jeszcze nie ma).

    Załóżmy, że w Unit2 masz Edit1 w którym się wpisuje ścieżkę (nie wiem bo nie dałeś kodu). Masz pewnie też przycisk OK (załóżmy, że Button1), który zamyka opcje.

    Zatem w zdarzeniu OnClick tego przycisku piszesz
    Form1.sciezka := Edit1.Caption;

    a OnClick w głównym okienku modyfikujesz na:
    ShellExecute(Handle,'open',sciezka,'','',sw_Normal);

    I już.

    Zapisywanie też gdzieś trzeba zrobić.


    Do mojego kodu i dał godowy kod.

    Dodano po 40 [sekundy]:

    miało być gotowy

    0
  • #14 17 Lut 2010 16:01
    arnoldziq
    Moderator Programowanie

    Problem polega na tym, że kolega xanio chciał "za dobrze".
    Dodawanie dodatkowego formularza, tylko po to aby odczytać coś z TEdit, to jawne marnotrawstwo zasobów. Dochodzą także problemy z przekazaniem 'danych' z powrotem do pierwotnego formularza. A co będzie jak się pomylisz przy ręcznym podaniu ścieżki ?

    0
  • #15 17 Lut 2010 16:05
    matis95
    Poziom 13  

    arnoldziq masz gg? Jeśli tak to podaj. pogadamy.
    To twoim zdaniem jak mam to zrobić?

    chcę zrobić program działający tak:
    Włączam program. Wchodzę w opcje i wybieram nazwę button1 (np. Gadu-Gadu) i ścieżkę do programu button1 (w tym przypadku gg.exe)

    0
  • #16 17 Lut 2010 16:17
    xanio
    Poziom 27  

    Nie to, że ja chciałem "za dobrze" tylko widzę, że kolega matis95 zrobił drugie okienko z opcjami.

    Problemów z przekazywaniem danych do pierwotnego formularza nie ma żadnych.

    Nie zamieszczę Ci całego gotowego programu bo mam nowsze Delphi.

    0
  • #17 17 Lut 2010 16:23
    matis95
    Poziom 13  

    A jakie masz Delphi?

    Dodano po 2 [minuty]:

    No to może napisz dokładnie jak to mam zrobić. Nie rozumiem tego:
    w Unit2 w implementation dodaj Form1 w Uses (jeśli jeszcze nie ma). i jeszcze, co to jest to Edit1

    0
  • #18 17 Lut 2010 16:29
    arnoldziq
    Moderator Programowanie

    Tak, mam GG, ale uważam, że konstruktywna dyskusja na forum może okazać się pomocna nie tylko dla Ciebie, ale także dla wielu innych użytkowników, którzy zmagają się z podobnym problemem.

    A wracając do tematu :
    Masz gotowy program używający Form1, tak ?
    Masz na tym Form1 jakieś menu, prawda ?
    Jedna z opcji menu to Opcje, prawda ?
    Jeżeli chcesz zmienić swój program na taki który może uruchomić na dwa różne GG, to musisz gdzieś składować obie ścieżki do obu wersji GG.
    W definicji Form1, dodajesz dwie zmienne typu string:

    Code:
    TForm1 = class(TForm)
    
      [...]
      private
        sciezka1, sciezka2 : string;
      public
    W menu Opcje, dodajesz 2 pod-menu, np : 'Ustaw program nr1' i 'Ustaw program nr2'.
    W wywołaniu menu 'Ustaw prg... 1' dajesz :
    Code:
    procedure TForm1. ....
    
    var
     OpenDialog : TOpenDialog;
    begin
     OpenDialog:=TOpenDialog.Create(nil);
     try
      OpenDialog.Filter:='gg.exe';
      if Opendialog.Execute then
       begin
        sciezka1:=OpenDialog.FileName;     // zapis do zmiennej
        showmessage('Sciezka do GG : '+Sciezka); //wyswietlenie wyniku
       end;
      finally
       OpenDialog.Destroy;
      end;
    end;
    i analogicznie dla pliku nr 2 :
    Code:
    procedure TForm1. ....
    
    var
     OpenDialog : TOpenDialog;
    begin
     OpenDialog:=TOpenDialog.Create(nil);
     try
      OpenDialog.Filter:='gg.exe';
      if Opendialog.Execute then
       begin
        sciezka2:=OpenDialog.FileName;     // zapis do zmiennej
        showmessage('Sciezka do GG : '+Sciezka); //wyswietlenie wyniku
       end;
      finally
       OpenDialog.Destroy;
      end;
    end;
    I w ten sposób masz zapisane do zmiennych ścieżki dwóch plików GG.
    Teraz możesz wywołać Shell... z parametrem sciezka1 lub sciezka2.

    Jeżeli chcesz zapisać dane do np. proponowanego przeze mnie pliku INI, to wklejasz kod który zamieściłem w jednym z poprzednich postów i wywołujesz go :
    Code:
    zapisINI('SCIEZKA1',sciezka1);
    
    zapisINI('SCIEZKA2',sciezka2);
    Obie zmienne będą zapisane do pliku INI.
    Jeżeli je chcesz odczytać, to możesz gdzieś na starcie programu, albo już w programie pod jakimś klawiszem czy coś w tym stylu, dać :
    Code:
    sciezka1:=odczytINI('SCIEZKA1');
    
    sciezka1:=odczytINI('SCIEZKA2');

    0
  • #19 17 Lut 2010 16:35
    matis95
    Poziom 13  

    Ty mnie źle zrozumiałeś. Sorki. Wyraziłem się trochę nie jasno. Chodzi o to, że mój brat ma gg zainstalowane na D:/gg na całkiem innym kompie. Jak komuś dam ten program, to sobie wybiera, gdzie ma gg zainstalowane żeby mu otwierało.

    0
  • #20 17 Lut 2010 16:42
    arnoldziq
    Moderator Programowanie

    No to nawet lepiej :) Nie musisz dorabiać dodatkowych opcji w menu, usuwasz wszystko co się tyczy sciezka2 i będzie OK.

    0
  • #21 17 Lut 2010 16:50
    matis95
    Poziom 13  

    Teraz kod wygląda tak:

    Code:

    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Menus;

    type
      TForm1 = class(TForm)
        Button1: TButton;
        MainMenu1: TMainMenu;
        Plik1: TMenuItem;
        Zamknij1: TMenuItem;
        Pomoc1: TMenuItem;
        OProgramie1: TMenuItem;
        Narzdzia1: TMenuItem;
        Opcje1: TMenuItem;
        procedure Button1Click(Sender: TObject);
        procedure Zamknij1Click(Sender: TObject);
        procedure OProgramie1Click(Sender: TObject);
        procedure Opcje1Click(Sender: TObject);
      private
        { Private declarations }
        sciezka1 : string;
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}

    uses ShellApi, Unit2;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
     ShellExecute(Handle,'open','C:\Program Files\Gadu-Gadu\gg.exe','','',sw_Normal);
    end;

    procedure TForm1.Zamknij1Click(Sender: TObject);
    begin
    close;
    end;

    procedure TForm1.OProgramie1Click(Sender: TObject);
    begin
    Application.MessageBox('Run Programs' + #10 + '0.1a BETA', 'Informacja', MB_OK + MB_ICONInformation);
    end;

    procedure TForm1.Opcje1Click(Sender: TObject);
    var
     OpenDialog : TOpenDialog;
    begin
     OpenDialog:=TOpenDialog.Create(nil);
     try
      OpenDialog.Filter:='gg.exe';
      if Opendialog.Execute then
       begin
        sciezka1:=OpenDialog.FileName;
        showmessage('Sciezka do GG : '+Sciezka);
       end;
      finally
       OpenDialog.Destroy;
      end;
    end;


    Ale nie umie go odpalić :(

    0
  • #22 17 Lut 2010 17:02
    arnoldziq
    Moderator Programowanie

    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    
    begin
     ShellExecute(Handle,'open','C:\Program Files\Gadu-Gadu\gg.exe','','',sw_Normal);
    end;
    zmień na :
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    
    begin
     ShellExecute(Handle,'open',sciezka1,'','',sw_Normal);
    end;
    Oraz tutaj :
    Code:
    if Opendialog.Execute then
    
       begin
        sciezka1:=OpenDialog.FileName;
        showmessage('Sciezka do GG : '+Sciezka);
       end;
    na :
    Code:
    if Opendialog.Execute then
    
       begin
        sciezka1:=OpenDialog.FileName;
        showmessage('Sciezka do GG : '+Sciezka1);
       end;

    0
  • #23 17 Lut 2010 17:07
    matis95
    Poziom 13  

    Nie działa.
    Build
    [Error] Unit1.pas(41): Incompatible types: 'String' and 'PAnsiChar'
    [Error] Unit1.pas(71): Declaration expected but end of file found
    [Fatal Error] Run.dpr(6): Could not compile used unit 'Unit1.pas'

    0
  • #24 17 Lut 2010 17:17
    arnoldziq
    Moderator Programowanie

    Zobacz co zawierają te linie, po prostu kliknij na jednym z tych błędów, bo z listingu to ciężko wywnioskować.
    Na pewno jeden z tych błędów to wywolanie ShellExecute.
    Zmień je na :

    Code:
    ShellExecute(Handle,'open',@sciezka1[1],'','',sw_Normal);

    Drugi błąd może oznaczać, że nie masz na końcu tego pliku END.

    0
  • #25 17 Lut 2010 17:25
    matis95
    Poziom 13  

    Teraz mój kod wygląda tak:

    Code:

    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Menus;

    type
      TForm1 = class(TForm)
        Button1: TButton;
        MainMenu1: TMainMenu;
        Plik1: TMenuItem;
        Zamknij1: TMenuItem;
        Pomoc1: TMenuItem;
        OProgramie1: TMenuItem;
        Narzdzia1: TMenuItem;
        Opcje1: TMenuItem;
        procedure Button1Click(Sender: TObject);
        procedure Zamknij1Click(Sender: TObject);
        procedure OProgramie1Click(Sender: TObject);
        procedure Opcje1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        sciezka1: string;
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}

    uses ShellApi, Unit2;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
     ShellExecute(Handle,'open',sciezka1,'','',sw_Normal);
    end;

    procedure TForm1.Zamknij1Click(Sender: TObject);
    begin
    close;
    end;

    procedure TForm1.OProgramie1Click(Sender: TObject);
    begin
    Application.MessageBox('Run Programs' + #10 + '0.1a BETA', 'Informacja', MB_OK + MB_ICONInformation);
    end;

    procedure TForm1.Opcje1Click(Sender: TObject);
    var
     OpenDialog : TOpenDialog;
    begin
     OpenDialog:=TOpenDialog.Create(nil);
     try
      OpenDialog.Filter:='gg.exe';
      if Opendialog.Execute then
       begin
        sciezka1:=OpenDialog.FileName;
        showmessage('Sciezka do GG : '+Sciezka1);
       end;
      finally
       OpenDialog.Destroy;
      end;
    end;

    end.


    Gdy chce uruchomić program są błędy:
    [Error] Unit1.pas(41): Incompatible types: 'String' and 'PAnsiChar'
    Code:
    ShellExecute(Handle,'open',sciezka1,'','',sw_Normal);


    oraz [Fatal Error] Run.dpr(6): Could not compile used unit 'Unit1.pas'
    Code:
       Unit2 in 'Unit2.pas' {Opcje};

    0
  • Pomocny post
    #26 17 Lut 2010 17:28
    arnoldziq
    Moderator Programowanie

    Rozwiązanie pierwszego problemu, masz post powyżej.
    Drugi można rozwiązać bardzo prosto : usuń Unit2 z listy usues.

    0
  • #27 17 Lut 2010 17:33
    matis95
    Poziom 13  

    A gdzie jest ta lista?

    Dodano po 2 [minuty]:

    Dzieki za pomoc. Daje pomógł.

    0
  • #28 17 Lut 2010 17:35
    arnoldziq
    Moderator Programowanie

    Code:
    [...]
    
    implementation
    {$R *.dfm}
    uses ShellApi, Unit2;
    procedure TForm1.Button1Click(Sender: TObject);
    [...]

    zmień na :
    Code:
    [...]
    
    implementation
    {$R *.dfm}
    uses ShellApi;
    procedure TForm1.Button1Click(Sender: TObject);
    [...]

    0
  • #29 17 Lut 2010 17:36
    matis95
    Poziom 13  

    A jeszcze mam pytanie. Bo chcę zrobić, żeby w opcjach można było zmieniać również nazwę button1 (teraz nazywa się gg). Jak to mogę zrobić?

    0
  • #30 17 Lut 2010 17:39
    arnoldziq
    Moderator Programowanie

    Każdy TButton ma właściwość Caption.
    Więc jak chcesz to zmienić to wywołujesz gdzieś w programie, np :

    Code:
    Button1.Caption:='inny';

    0