Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Мечта идиота или как взять самое лучшее от всех языков (http://forum.oszone.net/showthread.php?t=41541)

btx 24-11-2004 18:19 275072

Мечта идиота или как взять самое лучшее от всех языков
 
Вот уже который день бьюсь над этим вопросом в моей немало литературе по Delphi, но так конкретного и не нашел пока... поиски продалжаются... но а чем я ах да:
Все дело в том, что я "мечтаю" о том, как бы сделать так чтобы можно в Delphi взять некоторые функции от других языков... в частности в моем случае PHP...
Приведу пример того, что я хочу сделать в Delphi:
У меня есть 5 кнопок Button1 - Button5, обрабатываем событие на Button5Click:

procedure TForm1.Button5Click(Sender: TObject);
var i: integer;
begin
for i := 1 to 4 do
begin
Button[i].Caption := 'Изменен'; // Это невозможно сделать в Delphi, но возможно в PHP к примеру...
end;
end;

Этот пример может показаться немного туповат, но я не знаю, как еще объяснить эту ситуацию...

Новичёк 24-11-2004 22:38 275126

Ура, нашёл :)
С типом "указатель" работать умеешь?
Обьявляешь в переменных чёй-то типа
type PointerToButton:^Tbutton;
var arrayOFbutton:array[1..10] of PointerToButton;
в процедуре по созданию формы пишешь:
arrayOFbutton[1]:=addr(form1.button1);
arrayOFbutton[2]:=addr(form1.button2);
... {и так далее}
А потом рабоатешь, как arrayOFbutton[1]^.caption:='1'
или
arrayOFbutton[i]^.caption:=IntToStr(i)
То есть можно работать и в цикле ;)
Единственная проблема - необходимая инициализация :)

btx 25-11-2004 14:23 275289

Спасиб...
 
Спасиб тебе что подал идею с масивом...
Я немного сдела по другому... а с указателями я действительно неработал... жаль что надо инициализировать все...
Код:

unit For_;

interface

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


type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    procedure Button5Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  YN: array[1..4] of TButton;

implementation

{$R *.dfm}

procedure TForm1.Button5Click(Sender: TObject);
var i: Integer;
begin
  for i := 1 to 4 do
  begin
    YN[i].Caption := IntToStr(i);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  YN[1] := Button1;
  YN[2] := Button2;
  YN[3] := Button3;
  YN[4] := Button4;
end;

end.


Новичёк 27-11-2004 11:59 275861

А разве ты не получаешь 10 кнопок вместо 5, но наложенных друг на друга попарно(с однинаковіми параметрами width, heigth, left и top)?


Время: 00:25.

Время: 00:25.
© OSzone.net 2001-