# &DCOP; Funktioner

&DCOP; kan kaldes på flere måder i &kommander;. Den første er konsolmetoden

dcop kmdr-executor-@pid KommanderIf changeWidgetText minKontrol ny tekst

Dette antager at du er inde i en &kommander;-fil og har adgang til specialen @pid, som indeholder procesID'et. Faktisk er de lettere at erstatte kmdr-executor-@pid med @dcopid. Du kan dog bruge denne syntaks (naturligvis uden specialerne), fra kommandolinjen eller et hvilket som helst eksternt script, for at ændre &kommander;-vinduet.

Fordi &kommander; ikke har en fuldstændig fortolker i sit alfastadium, hvis du vil bruge den meget hurtigere interne &DCOP; fra et andet applikationsvindue (konsol &DCOP; er meget langsomt) er det meget mere kompliceret fordi du skal give meget information, inklusive en prototype af kaldet. Det ovenstående kald ville blive til:

@dcop(@dcopid, KommanderIf, enableWidget(QString, bool), Widget, true)

Da dette blev skrevet skulle man være klar over at indlejre &DCOP;-kald inde i scriptsprogstrukturer (som bash betyder at man skal bruge konsolmetodekald. Hvis du bruger interne &DCOP;-kld , vil alle &kommander;-specialer blive udført først og dernæst scriptet.

Der er en ny og simpel måde at bruge &DCOP; på, i &kommander; ved at bruge en objektsyntaks. Lad os sige at du vil ændre teksten i en kontrols navn @linjeEditor1. Det ville se således ud:

@LineEdit1.changeWidgetText(New text)

Som du kan se er den nye syntaks meget let, såvel som visuel konsistent med funktionsgrupper. Alle &DCOP;-referencer her vil bruge den nye objektsyntaks som vist ovenfor. Læg mærke til at hvis du refererer til en kontrol vh. &DCOP; fra et andet vindue eller en anden applikation, er den første parameter altid kontrollens navn. Alle funktioner der er vist her starter med den anden parameter.

## &DCOP; til globale variable

global(QString variableName)

- Returnerer værdien af den specficerede globale variabel. Når et script køres inde fra &kommander;-vinduet, vil alle (non-globale) variabler sat i dette script, holde op med at eksistere efter scriptet er kørt færdigt og vil derfor ikke være til rådighed for andre scriptprocesser eller i en ny instans af den kaldende proces. Det globale virkefelt betyder at variablen eksisterer for alle processer i vinduet indtil dette vindue lukkes. Du kan ændre disse variabler på et hvilket som helst tidspunk, med et nyt kald til `@setGlobal`.

setGlobal(QString variableName, QString value)

- Opretter en variabel som er global for vinduesprocessen og tildeler værdien til den. Denne værdi kan hentes med global(QString variabelNavn) eller tildeles en ny værdi.

## &DCOP; til alle kontroller

changeWidgetText(QString text)

- Dette skal omdøbes til setWidgetText og dette navn bliver sikker overflødiggjort. Det fjerner teksten der vises i kontrollen og erstatter det med den givne tekst.

enableWidget(bool enable)

- Aktiverer eller deaktiverer en kontrol.

associatedText

- Returnerer teksten associeret med den angivne kontrol. Dette er ikke det samme den viste tekst. Det skulle laves sådan her: @kontrolTekst eller tekst og eller scripting brugt til at ankomme ved den viste værdi.

setAssociatedText(QString text)

- Den sætter &kommander;s standard Text-streng. Den sættes typisk til @widgeText for at vise hvad der indtastes i kontrollen. Det er usandsynligt at du får behov for det, men hvis du gør er det her det foregår. Dette gælder for alle kontroller der kan indeholde data.

## &DCOP; til listeboks- og kombinationsfelt-kontroller

addListItem(QString item, int index)

- Tilføjer et element til en listebokskontrol ved det specificerede indeks. Listeindekset starter ved nul For at tilføje til slutinngen af en liste, bruges -1.

addListItems(QStringList items, int index)

- Dette tilføjer en liste af strenge på én gang. Listen skal afsluttes af EOL(\n - nye linjer). Dette er nyttigt eftersom du kan bruge bash til at hente listen ret smertefrit. F.eks. ved at bruge @exec(ls -l ~/projekter | grep kmdr) for elementer, giver dig en katalogudskrift af &kommander;-filer i din projektmappe. Listeindeks starter ved nul. Brug -1 for at tilføje til slutningen af en liste.

addUniqueItem(QString item)

- addUniqueItem tilføjer et element til slutningen af listen, men kun hvis det er unikt.

clearList

- Fjerner alle indgange.

removeListItem(int index)

- Fjerner elementet ved det angivne indeks.

item(int index)

- Returnerer elementets tekst ved det angivne indeks.

setCurrentListItem(int index)

- Sætter det aktuelle (eller markerede) element til det angivne indeks. Gælder for listefelt- og kombinationsbokskontroller.

## &DCOP; for afkrydsningsfelt- og radioknapkontroller

setChecked(QString widgetName, bool checked)

- Afkrydser eller fjerner afkrysdning i afkrydsningsfelt- og radioknapkontroller.

## &DCOP; for fanebladskontroller

setCurrentTab(QString widgetName, int index)

- Markér fanebladet ved indeks for fanebladskontroller. Indeks starter ved nul.