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
689
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
- 417034
- 323958
- 463367
- 402959
- 172736
- 372238
- 162196
- 412163
Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...
Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons472117- 402068