Miten merkkijonoluettelo pitäisi tuoda näihin monirivisiin käyttöliittymäkomponentteihin. xx.AddStrings( ) ? xx.Assign( )? xx.text := vai joku muu? (Miksi tämä) Olisi hienoa jos olisi pieni selventävä esimerkki myös
Ongelmia stringien kanssa
3
747
Vastaukset
- example_dk6
Eli jos nyt oikein ymmärsin kysymyksesi, niin alla oletettava vastaus: procedure TForm1.Button1Click(Sender: TObject); var sl : TStringList; begin sl := TStringList.Create; try sl.Add('1'); sl.Add('2'); sl.Add('3'); //Memo1.Lines.AddStrings(TStrings(sl)); //Memo1.Lines.Assign(sl); //Memo1.Lines.Text := sl.Text; finally sl.free; end; end; Vaihtoehdot kommentoituna, onnistuu vielä eri tavoinkin, mutta tuskinpa tarvitset lisää esimerkkejä.
- high power
Eri vaihtoehtoja on tarjolla mutta onko näiden suorituskyvyssä eroja ?
- Delphiguru
high power kirjoitti:
Eri vaihtoehtoja on tarjolla mutta onko näiden suorituskyvyssä eroja ?
Ensinnäkin:
nopeuden maksimomiseksi, tee näin:
guiComponent.addStrings(SomeStrings);
eityisesti TMemo:on lisäys saattaa olla nopein näin:
memo1.Text := memo1.Text ^M^J SomeStrings.Text;
jos lisäät "käsin" yksittäisiä merkkijonoja, niin:
guiComponent.BeginUpdate;
try
// lisää 1 tai useampia merkkijonoja tässä, esim: guiComponent.Lines.Add('jotakin');
finally
guiComponent.EndUpdate;
end;
tuo addStrings -metodi kutsuu sisäisesti BeginUpdate / EndUpdate -paria nopeuden maksimoimiseksi.
huomaa myös: vanhoissa Win95/Win98/winME -käyttöjärjestelmissä niin memoissa kuin TListBoxeissakin on maksimi rivi/merkkimääräraja aika alhaalla.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 74904
Miltä se tuntuu
Miltä se tuntuu havahtua, että on ollut ihmistä kohtaan, joka on rakastanut ja varjellut, täysi m*lkku? Vai havahtuuko s104768- 60752
- 43704
- 49654
- 45653
- 31629
Mitä se olisi
Jos sinä mies saisit sanoa kaivatullesi mitä vain juuri nyt. Ilman mitään seuraamuksia yms. Niin mitä sanoisit?34577- 50570
- 38516