/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
"Array af Edits"
Fra : Jens Heidmann


Dato : 08-02-01 15:33

Jeg har brug for at præsentere data fra et array Bogstaver =
array[0..15,0..5] of char på en form. Jeg vil gerne opsætte 96 pænt fordelte
Edits som hver indeholder en karakter.
Er der ikke en mulighed for at gruppere disse edits på een eller anden måde,
så jeg kan foretage ind- og udlæsning fra array til form med et loop i stil
med
for i:= 0..16 do
for j:= 0 to 5 do
Edit[i*15+j] := Bogstaver[i,j];

fremfor at skulle skrive 96 linier af typen

Edit1.text:= Bogstaver[0,0];
Edit2.text:= Bogstaver[0,1];
Edit......(gab)


Altså noget svarende til et kontrol-array i VisualBasic ?

venlig hilsen

Jens Heidmann



 
 
Jesper "Data" Anders~ (08-02-2001)
Kommentar
Fra : Jesper "Data" Anders~


Dato : 08-02-01 16:05

"Jens Heidmann" <heidmann@odont.au.dk> wrote in
<95uam4$ini$1@news.net.uni-c.dk>:

>Jeg har brug for at præsentere data fra et array Bogstaver =
>array[0..15,0..5] of char på en form. Jeg vil gerne opsætte 96 pænt
>fordelte Edits som hver indeholder en karakter.
>Er der ikke en mulighed for at gruppere disse edits på een eller anden
>måde, så jeg kan foretage ind- og udlæsning fra array til form med et

Du kunne skrive en eller anden identifier i Tag-propertien på alle dine
edit-bokse. Så kan du rende alle komponenter på formen igennem, og sige
noget i retningen af

if control is TEdit then
begin
a := (control.tag div 10) - 1; //første fimension i array'et
b := (control.tag - a*10) - 1; //Anden dimension i arrayet
(control as TEdit).Text := Bogstaver[a,b];
end;

Dine edit's skal så nummereres som 11, 12, 13, 14, 15, 16 for [0,0]..[0,5]
21, 22, 23, 24, 25, 26 for [1,0]..[1,5] o.s.v. op til [161, 162, 163, 164,
165, 166 for [15,0]..[15..5]. Håber du kan se idéen.

/Data

Ulrik Vadstrup (08-02-2001)
Kommentar
Fra : Ulrik Vadstrup


Dato : 08-02-01 16:12

> fremfor at skulle skrive 96 linier af typen
>
> Edit1.text:= Bogstaver[0,0];
> Edit2.text:= Bogstaver[0,1];
> Edit......(gab)
>
>
> Altså noget svarende til et kontrol-array i VisualBasic ?

Jo da

MyEdits = Array[0..15, 0..5] of Tedit;
MyString = array[0..15,0..5] of String;
var
i, j , a: Integer;
Begin
a := 5;
For i := 0 to 15 do
begin
For j := 0 to 15 do
begin
MyEdits[i,j].Create(Form1);
MyEdits[i,j].Name := 'Edit' + IntToStr(i) + IntTioStr(j);
MyEdits[i,j].Width := 5;
MyEdits[i,j].Height := 5;
MyEdits[i,j].Text := MyString[i,j];
MyEdits[i,j].Top := (En en eller anden værdi du selv laver og
tæller op)
If i = 5 or i:= 10 then a := a + 10;
MyEdits[i,j].Left := a;
end;
end;
end;


Det er muligt du skal have flere properties på........Du må selv tilpasse
det lidt;

Husk at destroy'e/ Free

Det er noget i den du'r (Ikke testet)

Mvh
Ulrik



Uffe Kousgaard (08-02-2001)
Kommentar
Fra : Uffe Kousgaard


Dato : 08-02-01 17:18

> MyEdits[i,j].Name := 'Edit' + IntToStr(i) + IntTioStr(j);

Den her linie kan du godt skippe. Den er ligegyldig, når du selv "creater"
dine edit-felter

Hilsen
Uffe




Ulrik Vadstrup (09-02-2001)
Kommentar
Fra : Ulrik Vadstrup


Dato : 09-02-01 08:29


Uffe Kousgaard <uffe@routeware.dk> skrev i en
nyhedsmeddelelse:hFzg6.314$uw2.5239@news.get2net.dk...
> > MyEdits[i,j].Name := 'Edit' + IntToStr(i) + IntTioStr(j);
>
> Den her linie kan du godt skippe. Den er ligegyldig, når du selv "creater"
> dine edit-felter
>
> Hilsen
> Uffe
>
Jo - men så har edit feltet jo et navn, man kan finde det på, hvis man skal
bruge det senere, til noget andet......eller hva ?

Mvh
Ulrik



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste