Witam
Mam problem z jakby się wydawało, błahą sprawą w delphi... Niestety, nie bardzo wiem jak nazwać swój problem tak aby google albo help mi pomógł -.- Po nieudanych próbach zwracam się do was z prośbą o pomoc:)
Do rzeczy. Piszę właśnie projekt z delphi do szkoły. Temat: przedstaw wizualnie sortowanie.
Projekt jest już prawie gotowy. Wstawiłem na formę 5 prostokątów, o takiej samej szerokości, ale innej wysokości. Te wysokości wpisałem w tablice, która bd sortowana bąmbelkowo. Po każdym loopie pętli, jeśli zaistnieje taka potrzeba, prostokąty zamienią się swoimi parametrami left. Żeby to zrobić każdy prostokąt nazwałem S(szerokość prostokąta), czyli np. s57, jako że w tablicy widnieje on jako 57. I tu trafiłem na problem, z którym męczę się od kilku godzin; /
mianowicie chce do zmiennej przypisać wartość danego left tak więc postanowiłem to zrobić tak:
b:= 's'+(inttostr(tab[i])); sprawdziłem przez showmessage i gra. Wyskakuje np. s57. Ale jak to teraz przypisać do ścieżki żeby załapało? Próbowałem tak: ** d:=b.left;** ale nie trzeba być sherlockiem, żeby się domyślić, że nie zadziała... dlatego też wstawiałem rozmaite kombinacje jak d:=(b).left; itd. ale nic. Tak : d:='s'+(inttostr(tab[i])).left; też, ale nie ma szans.
Jeżeli ktoś mógłby mi podpowiedzieć, gdzie mogę znaleźć info, jak to nazwać żeby help pomógł albo jak to obejść to bd niezmiernie wdzięczny ;)
Wsadzę też kod, może to pomoże:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
ttab= array[1..5] of integer;
TForm1 = class(TForm)
S57: TShape;
S73: TShape;
S65: TShape;
S81: TShape;
S89: TShape;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
tab:ttab=(81,89,57,65,73);
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var i:byte;
y:integer;
b,c:string;
d:integer;
begin
for i:=1 to 5 do
if tab[i]>tab[i+1] then
begin
Y:=tab[i];
tab[i]:=tab[i+1];
tab[i+1]:=y;
b:= 's'+(inttostr(tab[i]));
C:='s'+(inttostr(tab[i+1]));
d:=b.left; //TU JEST PROBLEM
showmessage(inttostr(d));
end;
end;
end.