Войти

Показать полную графическую версию : Мечта идиота или как взять самое лучшее от всех языков


btx
24-11-2004, 18:19
Вот уже который день бьюсь над этим вопросом в моей немало литературе по 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
Ура, нашёл :)
С типом "указатель" работать умеешь?
Обьявляешь в переменных чёй-то типа
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
Спасиб тебе что подал идею с масивом...
Я немного сдела по другому... а с указателями я действительно неработал... жаль что надо инициализировать все...
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
А разве ты не получаешь 10 кнопок вместо 5, но наложенных друг на друга попарно(с однинаковіми параметрами width, heigth, left и top)?




© OSzone.net 2001-2012