Avatar billede nlbgf Nybegynder
22. oktober 2000 - 18:49 Der er 14 kommentarer og
1 løsning

Hvordan søren gør jeg?

Hey, jeg går vist og bliver lidt gammel, eller også er det bare for mange år siden, jeg sidst har programmeret i Delphi.

Hvordan søren er det jeg gør, når jeg fx. vil lave en variabel af typen TStrings?

Skal der ikke bare stå:

var
  MyStrings: TStrings;

og så virker det? Eller skal der stå noget i retning af:

MyStrings.Create;

før den kan benyttes?
Avatar billede snowball Novice
22. oktober 2000 - 18:53 #1
Et lille hurtigt eksempel:

procedure TForm1.Button1Click(Sender: TObject);
var
  streng: string;
begin
  streng := \'test\';
  showmessage(streng);
end;

Snowball
Avatar billede lrj Nybegynder
22. oktober 2000 - 19:03 #2
TStrings er en abstrakt klasse, beregnet til at nedarve fra. Et eksempel på en klasse som er nedarvet fra TStrings er TStringList som kan indeholde et \"uendeligt\" antal strenge.
Avatar billede lrj Nybegynder
22. oktober 2000 - 19:04 #3
...du kan ikke lave instanser af abstrakte klasser, og slippe afsted med det :)
Avatar billede snowball Novice
22. oktober 2000 - 19:08 #4
hhmm...jeg tror vist jeg misforstod spørgsmålet !?

Snowball
Avatar billede pellelil Nybegynder
22. oktober 2000 - 19:09 #5
Du skal gøre begge dele (mere eller mindre:

<SNIP>
var
  MyStrings: TStrings;
begin
  MyStrings := TStrings.Create;
  // Arbejd med din MyStrings
  MyStrings.Free;
end;
</SNIP>
Avatar billede pellelil Nybegynder
22. oktober 2000 - 19:14 #6
Øhh som lrj siger så er TStrings abstract så du skulle i stedet TStringList, så eksemplet bliver:

<SNIP>
var
  MyStrings : TStringList;
begin
  MyStrings := TStringList.Create;
  // Arbejd med din MyStrings
  MyStrings.Free;
end;
</SNIP>
Avatar billede lrj Nybegynder
22. oktober 2000 - 19:22 #7
Hehe, pellelil - yearh - abstrakte klasser kan man brænde nallerne på :)
Avatar billede pellelil Nybegynder
22. oktober 2000 - 19:27 #8
Jeg konstaterede bare at \"manden\" ikke havde fået et svar på spøgsmålet så jeg fløj i blækhuset uden at tænke mig om og uden at kigge nærmere på de andre svar. Meget at det man render og laver efterhånden blevet vane, jeg selv bruger altid TStringList og undrede mig ikke videre over at man ville bruge TStrings

Men så er det jo godt at du var vågen  ;-)
Avatar billede lrj Nybegynder
22. oktober 2000 - 19:33 #9
:o)
Avatar billede borrisholt Novice
23. oktober 2000 - 08:32 #10
I forlængelse af pellelil\'s svar vil jeg lige tilføje at da både TStrings og TStringList arver fra TPersistens kan de assignes til hinanden...

Et eksempel :

var
  StringList : TStringList;
begin
  StringList := TStringList.Create;
  StringList.Add(\'Linje 1\');
  StringList.Add(\'Linje 2\');
  StringList.Add(\'Linje 3\');
  StringList.Add(\'Linje 4\');
  Memo1.Lines.Assign(StringList);
  StringList.free;
end;


Jens B
Avatar billede borrisholt Novice
23. oktober 2000 - 08:35 #11
Den syntax du foreslår :

var
  MyStrings: TStrings;

også ..

MyStrings.Create;

Det var noget man gjorde i Turbo Pascal.  Jeg kan ikke huske om det også var sådan i Turbo Pascal for Windows, men mon ikke ...

Jens B

Avatar billede nlbgf Nybegynder
23. oktober 2000 - 13:46 #12
Tak for hjælpen... så kører det lidt for mig igen
Avatar billede lrj Nybegynder
23. oktober 2000 - 19:15 #13
Øv - jeg var da også med til at lave svaret :)
Avatar billede nlbgf Nybegynder
23. oktober 2000 - 21:21 #14
lrj>> Ja det var du godt nok, men desværre var det ikke noget jeg kunne bruge til det helt store. Som sagt er det ret lang tid siden jeg sidst har programmeret i Delphi, så det var nødvendigt med et eksempel.
Avatar billede lrj Nybegynder
23. oktober 2000 - 22:37 #15
Jowjow, så ved man da det :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester