12. januar 2003 - 21:25Der er
7 kommentarer og 2 løsninger
Sammensætte navne
Er du muligt at sammensætte navne i delphi, så man i stedet for at skrive: Edit1.Text:=tal[1]; Edit2.Text:=tal[2]; Edit3.Text:=tal[3]; Edit4.Text:=tal[4]; kunne skrive noget i retning af: for i:=1 to 4 do begin Edit+i:=tal[i]; end; så man ikke behøver at gentage samme kode igen og igen, bare med forskellige tal. Er det muligt at lave noget der kan erstatte Edit+i, så det kommer til at virke ????
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Nej, ikke som du skriver det (man i fx PHP, men det er en anden sag)
Du kan imidlertid løbe alle komponenterne på en form igennem, og check om deres navne starter med 'Edit', finde det efterfølgende tal, og så lave din tilordning,
Nej, du kan ikke behandle navne på den måde i Delphi. Det du dog kan gøre er at oprette et array af TEdits, så kan du iterere igennem det. Det kræver dog en initialisering, hvor du skal igennem tildelingerne, men efter det er du flyvende. Gør noget i stil med:
speedy > Jeg vil lige prøve det af med FindComponent. lemvigh > Kan du ikke uddybe dit svar med editArray lidt ?? Jeg er ikke helt med på hvad du mener med at det kræver en initialisering. Hvordan opretter man et array af TEdits ??
Du opretter et array af TEdits på samme måde, som du ville oprette et hvilket som helst andet array. Under *var* skriver du f.eks.: eArray: array[1..5] of TEdit. Så har du et array af TEdits. Defter skal du tildele hver post i arrayet en værdi -nemlig de egentlige TEdits, du har til at ligge på din form. Linjen: eArray[1] := Edit1; gør netop dette. Nu kan du tilgå Edit1 via denne post i arrayet. Når du skriver eArray[1].Text := 'blib blob' så bliver teksten i Edit1 på din form sat til 'blib blob'.
lemvigh > Jeg kan ikke få det til at virke.... Jeg har oprettet edit1-4 og skrevet: initialization begin editArray[1] := Edit1; editArray[2] := Edit2; editArray[3] := Edit3; editArray[4] := Edit4; end; Så skriver den: [Error] Unit1.pas(48): Undeclared identifier: 'Edit1' [Error] Unit1.pas(49): Undeclared identifier: 'Edit2' [Error] Unit1.pas(50): Undeclared identifier: 'Edit3' [Error] Unit1.pas(51): Undeclared identifier: 'Edit4' Hvad har jeg gjort forkert ??
Hmmm...hvis vi nu tager den helt forfra :) Du skal placere dine 4 edit-komponenter på formen. Derefter skal du lave en global variabel som ser sådan her ud:
var editArray: array[1..4] of TEdit;
i din onCreate på formen skriver du så hvad du har skrevet:
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.