Komponenta DataMemo


P°ehled vlastnostφ, metod a udßlostφ objektu:
--------------------------------------------------------------
Align (RW)           Alignment (RW)       AutoDisplay (RW)
BorderStyle (RW)     Color (RW)           Ctl3D (RW)
Cursor (RW)          DataField (RW)       DataSource (RW)
Enabled (RW)         Font (RW)            Height (RW)
HelpContext (RW)     Hint (RW)            Left (RW)
Lines (*RW)          MaxLength (RW)       Modified (*RW)
Name (R)             ParentColor (RW)     ParentCtl3D (RW)
ParentFont (RW)      ParentShowHint (RW)  PopupMenu (RW)
ReadOnly (RW)        ScrollBars (RW)      SelLength (*RW)
SelStart (*RW)       SelText (*RW)        ShowHint (RW)
TabOrder (RW)        TabStop (RW)         Tag (RW)
Top (RW)             Visible (RW)         WantTabs (RW)
Width (RW)           WordWrap (RW)        
--------------------------------------------------------------
Clear                ClearSelection       CopyToClipboard
CutToClipboard       LoadMemo             PasteFromClipboard
SelectAll            SetFocus             
--------------------------------------------------------------
OnChange             OnClick              OnDblClick
OnEnter              OnExit               OnKeyDown
OnKeyPress           OnKeyUp              OnMouseDown
OnMouseMove          OnMouseUp            
--------------------------------------------------------------
Legenda: * -> pouze z programu, R -> lze Φφst, W -> lze zadat

Komponenta DataMemo se pou₧φvß pro zßpis a zobrazenφ vφce°ßdkovΘho textu umφst∞nΘho v databßzi. P°i nastavenφ vlastnosti ReadOnly ji lze takΘ pou₧φt pro zobrazenφ vφce°ßdkovΘho textu bez mo₧nosti editace.

Nejd∙le₧it∞jÜφ vlastnostφ je DataSource, ve kterΘ se udßvß zdroj p°ipojen²ch dat. Polo₧ku databßze zadßvßte ve vlastnosti DataField.

Pokud bude text editovßn u₧ivatelsky z klßvesnice, je zm∞na zaznamenßna automaticky do databßze p°i zm∞n∞ pozice v databßzi nebo na p°φkaz u₧ivatele kliknutφm na p°φsluÜnΘ tlaΦφtko objektu DataNavigator. P°i zm∞n∞ textu z programu musφte pou₧φt nejprve metodu Edit pro p°epnutφ do editaΦnφho m≤du, nßsledn∞ zm∞nit text a nakonec ulo₧it provedenΘ zm∞ny metodou Post:


Jazyk KLONDAIK: DataTable.Edit; DataMemo.Text := 'abcd'; DataTable.Post;


Jazyk BONANZA: DataTable.Edit DataMemo.Text = "abcd" DataTable.Post

Druh orßmovßnφ textu zadßvß vlastnost BorderStyle, barvu podkladu zadßte ve vlastnosti Color. M∙₧ete takΘ zm∞nit Font. Pokud po₧adujete mo₧nost p°φstupu k editovanΘmu textu na formulß°i pomocφ rychlΘ Alt klßvesy, umφst∞te nad editovan² text komponentu Label s nastavenφm vlastnosti FocusControl, ve kterΘ zadßte objekt s editovan²m textem.

Editovan² text lze p°enßÜet p°es schrßnku Windows do jinΘho textu. Bu∩ u₧ivatelsky z klßvesnice, nebo z programu. Vybran² text lze oznaΦit pomocφ vlastnostφ SelStart, SelLength a SelText. Cel² text lze oznaΦit metodou SelectAll, pro v²maz oznaΦenΘ Φßsti textu se pou₧ije ClearSelection. P°enos textu mezi schrßnkou a objektem zajiÜ¥ujφ metody CopyToClipboard, CutToClipboard, PasteFromClipboard.

Komponenta obsahuje mimo b∞₧n²ch udßlostφ i udßlost OnChange, kterß nastane v okam₧iku zm∞ny textu. Ta m∙₧e nastat ve dvou p°φpadech. Bu∩ je u₧ivatelem zm∞n∞n text z klßvesnice, avÜak takΘ v p°φpad∞ zm∞ny textu p°i p°echodu na nov² zßznam databßze. Pokud proto pot°ebujete oÜet°it u₧ivatelskou zm∞nu z klßvesnice, pou₧ijte udßlost OnKeyPress.

Text je ulo₧en ve vlastnosti Lines, kterou p°edstavuje prom∞nnß typu StrArray. Uveden² typ prom∞nnΘ mß svΘ vlastnφ metody pro prßci s obsa₧en²m textem. Pro zadßnφ poΦßteΦnφho obsahu textu m∙₧ete pou₧φt editor p°φstupn² z okna nastavenφ objekt∙, kter² se aktivuje kliknutφm na ikonu se t°emi teΦkami vpravo od vlastnosti Lines.

JednotlivΘ °ßdky textu jsou z programu p°φstupnΘ sv²m indexem, to je po°adov²m Φφslem °ßdku. ╪ßdky jsou Φφslovßny od nuly. Prvnφ °ßdek mß proto index nula, pßt² °ßdek mß index 4. Pokud pot°ebujete zjistit obsah °ßdku, musφte zadat jeho po°adov² index. Obsah prvnφho °ßdku proto zobrazφte:


Jazyk KLONDAIK: ShowMessage(DataMemo.Lines[0]);


Jazyk BONANZA: ShowMessage(DataMemo.Lines(0))

Podobn²m zp∙sobem m∙₧ete zm∞nit obsah °ßdku, kdy op∞t zadßvßte index °ßdku a nov² obsah. Pro druh² °ßdek v po°adφ proto zadßte:


Jazyk KLONDAIK: DataMemo.Lines[1]:='druh² °ßdek';


Jazyk BONANZA: DataMemo.Lines(1)= "druh² °ßdek"

Nov² °ßdek zadßte do textu z programu pou₧itφm metody Add nßsledujφcφm zp∙sobem:


Jazyk KLONDAIK: DataMemo.Lines.Add('aaa');


Jazyk BONANZA: DataMemo.Lines.Add("aaa")

Pokud pot°ebujete n∞kter² °ßdek textu zruÜit, pou₧ijte volßnφ metody Delete nßsledujφcφm zp∙sobem:


Jazyk KLONDAIK: DataMemo.Lines.Delete(2);


Jazyk BONANZA: DataMemo.Lines.Delete(2)

Pot°ebujete-li v textu vyhledat index °ßdku se znßm²m obsahem, pou₧ijte funkci IndexOf:


Jazyk KLONDAIK: ShowMessage(DataMemo.Lines.IndexOf('aaa'));


Jazyk BONANZA: ShowMessage(DataMemo.Lines.IndexOf("aaa"))

Editovan² text m∙₧ete ulo₧it na disk do textovΘho souboru metodou SaveToFile, p°φpadn∞ naΦφt textov² soubor do textu metodou LoadFromFile:


Jazyk KLONDAIK: DataMemo.Lines.SaveToFile('seznam.txt'); DataMemo.Lines.LoadFromFile('seznam.txt');


Jazyk BONANZA: DataMemo.Lines.SaveToFile("seznam.txt") DataMemo.Lines.LoadFromFile("seznam.txt")

Pot°ebujete-li projφt cel² text a provΘst s ka₧d²m °ßdkem n∞jakou akci, pou₧ijte vlastnost Lines.Count. Musφte p°itom poΦφtat s tφm, ₧e se °ßdky Φφslujφ od nuly, poΦet polo₧ek °ßdek textu je vÜak uvßd∞n od jedniΦky. Od poΦtu °ßdk∙ musφte proto v cyklu jedniΦku odeΦφst:


Jazyk KLONDAIK: DataMemo.Edit; for x:= 0 to DataMemo.Lines.Count-1 do DataMemo.Lines[x] := CsWinToLat(DataMemo.Lines[x]); DataMemo.Post;


Jazyk BONANZA: DataMemo.Edit For x = 0 to DataMemo.Lines.Count-1 DataMemo.Lines(x) = CsWinToLat(DataMemo.Lines(x)) Next DataMemo.Post

Editovan² text je takΘ p°φstupn² jako celek ve vlastnosti Text, kterß je p°φstupnß pouze z programu. DΘlka editovanΘho textu se zadßvß ve vlastnosti MaxLength. Standardn∞ je zadßna nula, co₧ znamenß, ₧e dΘlka textu je omezena velikostφ do 65 Kb. V∞tÜφ dΘlku nelze nastavit.


OZOGAN, 1 Mßje 97, 460 01 Liberec
tel.,fax: (048) 52 28 338, e-mail: info@ozogan.cz