/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
En komponent
Fra : Harald


Dato : 03-02-03 20:43

Hej

Jeg har lavet nedenstående function som laver det første og andre bogstaver
i en streng til stor. Jeg skal bruge den i en del TDBEdit felter, jeg kan
selfølgelig kalde den i OnExit men det smarteste ville være hvis man kunne
lave en komponent, baseret på TDBEdit, som havde den indbygget, men jeg ved
ikke lige hvordan man gør det?

function UpperCaseForste(Tekst : string) : string;
var
i : integer;
begin
Tekst:=AnsiLowerCase(Trim(Tekst));
if length(Tekst)>0 then
Tekst[1]:=AnsiUpperCase(Tekst[1])[1];

for i:=2 to length(Tekst)-1 do
if (tekst[i] in (.#32,'.','-'.)) then
Tekst[i+1]:=AnsiUpperCase(Tekst[i+1])[1];

result:=Tekst;
end;

Mvh
HK



 
 
David A. D. Konrad (03-02-2003)
Kommentar
Fra : David A. D. Konrad


Dato : 03-02-03 21:13

"Harald" <swobu@kroning.dk> skrev i en meddelelse
news:3e3ec648$0$83845$edfadb0f@dtext01.news.tele.dk...
> Hej
>
> Jeg har lavet nedenstående function som laver det første og andre
bogstaver
> i en streng til stor. Jeg skal bruge den i en del TDBEdit felter, jeg kan
> selfølgelig kalde den i OnExit men det smarteste ville være hvis man kunne
> lave en komponent, baseret på TDBEdit, som havde den indbygget, men jeg
ved
> ikke lige hvordan man gør det?
>
> function UpperCaseForste(Tekst : string) : string;
> var
> i : integer;
> begin
> Tekst:=AnsiLowerCase(Trim(Tekst));
> if length(Tekst)>0 then
> Tekst[1]:=AnsiUpperCase(Tekst[1])[1];
>
> for i:=2 to length(Tekst)-1 do
> if (tekst[i] in (.#32,'.','-'.)) then
> Tekst[i+1]:=AnsiUpperCase(Tekst[i+1])[1];
>
> result:=Tekst;
> end;
>
> Mvh
> HK

OnChange:=DenEventHvorOvenståendeKodeErPakketIndI;




Harald (04-02-2003)
Kommentar
Fra : Harald


Dato : 04-02-03 01:42


"David A. D. Konrad" <david_konrad@hotmail.com> skrev i en meddelelse
news:b1mifj$8v2$1@sunsite.dk...
> "Harald" <swobu@kroning.dk> skrev i en meddelelse
> news:3e3ec648$0$83845$edfadb0f@dtext01.news.tele.dk...
> > Hej
> >
> > Jeg har lavet nedenstående function som laver det første og andre
> bogstaver
> > i en streng til stor. Jeg skal bruge den i en del TDBEdit felter, jeg
kan
> > selfølgelig kalde den i OnExit men det smarteste ville være hvis man
kunne
> > lave en komponent, baseret på TDBEdit, som havde den indbygget, men jeg
> ved
> > ikke lige hvordan man gør det?
> >
> > function UpperCaseForste(Tekst : string) : string;
> > var
> > i : integer;
> > begin
> > Tekst:=AnsiLowerCase(Trim(Tekst));
> > if length(Tekst)>0 then
> > Tekst[1]:=AnsiUpperCase(Tekst[1])[1];
> >
> > for i:=2 to length(Tekst)-1 do
> > if (tekst[i] in (.#32,'.','-'.)) then
> > Tekst[i+1]:=AnsiUpperCase(Tekst[i+1])[1];
> >
> > result:=Tekst;
> > end;
> >
> > Mvh
> > HK
>
> OnChange:=DenEventHvorOvenståendeKodeErPakketIndI;

Jeg har aldrig lavet komponenter før så jeg havde håbet på at der var en
venlig sjæl der lige kunne skrive hvad der var behov for, det er sikkert
ikke mange linier der skal til.

/HK



Claus Christiansen (04-02-2003)
Kommentar
Fra : Claus Christiansen


Dato : 04-02-03 11:33

"Harald" <swobu@kroning.dk> wrote in
news:3e3f0c76$0$83844$edfadb0f@dtext01.news.tele.dk:

>
> "David A. D. Konrad" <david_konrad@hotmail.com> skrev i en
> meddelelse news:b1mifj$8v2$1@sunsite.dk...
>> "Harald" <swobu@kroning.dk> skrev i en meddelelse
>> news:3e3ec648$0$83845$edfadb0f@dtext01.news.tele.dk...
>>
<klip>
>>
>> OnChange:=DenEventHvorOvenståendeKodeErPakketIndI;
>
> Jeg har aldrig lavet komponenter før så jeg havde håbet på at der
> var en venlig sjæl der lige kunne skrive hvad der var behov for, det
> er sikkert ikke mange linier der skal til.
>
> /HK
>

Der ligger et forslag i dk.binaer med subject:

"kode fra d.e.p.pascal, DBEdit"

Jeg har ikke undersøgt om den virker, men det er næppe meget galt

Claus

--
Claus Christiansen, <mailto:NOSPAM@unipeople.dk>, leave the adr. as it is
personal: <http://unipeople.dk/~cch>; pythia: <http://www.pythia.dk>
===========================================================--------------
"Computers are useless. They can only give you answers" - Pablo Picasso

Harald (04-02-2003)
Kommentar
Fra : Harald


Dato : 04-02-03 13:40

"Claus Christiansen" <NOSPAM@unipeople.dk> skrev i en meddelelse
news:Xns9318757CC983Ckrucsid@news.unipeople.dk...
> "Harald" <swobu@kroning.dk> wrote in
> news:3e3f0c76$0$83844$edfadb0f@dtext01.news.tele.dk:

<KLIP>

> Der ligger et forslag i dk.binaer med subject:
>
> "kode fra d.e.p.pascal, DBEdit"
>
> Jeg har ikke undersøgt om den virker, men det er næppe meget galt

Det virker smukt, mange tak for det.

Mvh
HK




Harald (04-02-2003)
Kommentar
Fra : Harald


Dato : 04-02-03 19:14


"Harald" <swobu@kroning.dk> skrev i en meddelelse
news:3e3fb498$0$204$edfadb0f@dread14.news.tele.dk...
> "Claus Christiansen" <NOSPAM@unipeople.dk> skrev i en meddelelse
> news:Xns9318757CC983Ckrucsid@news.unipeople.dk...
> > "Harald" <swobu@kroning.dk> wrote in
> > news:3e3f0c76$0$83844$edfadb0f@dtext01.news.tele.dk:
>
> <KLIP>
>
> > Der ligger et forslag i dk.binaer med subject:
> >
> > "kode fra d.e.p.pascal, DBEdit"
> >
> > Jeg har ikke undersøgt om den virker, men det er næppe meget galt
>
> Det virker smukt, mange tak for det.

Hvis andre vil bruge komponenten har jeg lavet følgende ændring i DoExit
proceduren, problemet var at hvis man gik ind i et felt der f.eks. havde
værdien "hans hansen" så ville dette felt blive ændret til "Hans Hansen"
ganske som det skulle men tabellen blev ikke sat i Edit mode så der var ikke
mulighed for at gemme ændringen, desuden blev Modified for feltet ikke sat
korrekt.

procedure TDBExtEdit.DoExit;
var
TempText : string;
begin
TempText:=UpperCaseForste(self.Text);
if TempText<>self.Text then
begin
self.Field.DataSet.Edit;
self.Field.AsString:=TempText;
end;
inherited;
end;

Mvh
HK



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste