/
Forside
/
Teknologi
/
Udvikling
/
Delphi/Pascal
/
Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn
*
Kodeord
*
Husk mig
Brugerservice
Kom godt i gang
Bliv medlem
Seneste indlæg
Find en bruger
Stil et spørgsmål
Skriv et tip
Fortæl en ven
Pointsystemet
Kontakt Kandu.dk
Emnevisning
Kategorier
Alfabetisk
Karriere
Interesser
Teknologi
Reklame
Top 10 brugere
Delphi/Pascal
#
Navn
Point
1
oldwiking
603
2
jrossing
525
3
rpje
520
4
EXTERMINA..
500
5
gandalf
460
6
gubi
270
7
DJ_Puden
250
8
PARKENSS
230
9
technet
210
10
jdjespers..
200
Problemer med typecasting...
Fra :
Thomas Eg Jørgensen
Dato :
28-12-02 15:10
Hej
Jeg har brug for at lave en søgning efter objecter på en given form. Til
dette bruger jeg en lykke ud fra components-parameteren på formen.
Mit problem ligger så i at jeg skal kunne læse caption-værdien på alle
objecterne på min form. Disse objecter kan være TButton, TBitBtn, TLabel,
TGroupBox osv. De nedstammer dog (næsten) alle fra TControl og så tænkte jeg
at løsningen kunne være:
str1:=TControl(MyObject).caption;
Men den påstår at Tcontrol ikke har ikke caption variabel, men jeg synes
ikke jeg kan få det til at passe med mine manualer som påstår at de netop
har en sådan værdi...?
Et sidste og forholdsvis vigtigt spørgsmål: kan man godt typecaste "tilbage
i hirakiet" for en komponent? I førnævnte eksempel kunne MyObject være en
TLabel som jo netop nedstammer fra en Tcontrol...
Go' Jul og på forhånd tak...
MVH
Thomas
Harald (
28-12-2002
)
Kommentar
Fra :
Harald
Dato :
28-12-02 16:56
"Thomas Eg Jørgensen" <thomas@kontorbutikken.dk> skrev i en meddelelse
news:3e0db063$0$88617$bc7fd3c@news.sonofon.dk...
> Hej
>
> Jeg har brug for at lave en søgning efter objecter på en given form. Til
> dette bruger jeg en lykke ud fra components-parameteren på formen.
>
> Mit problem ligger så i at jeg skal kunne læse caption-værdien på alle
> objecterne på min form. Disse objecter kan være TButton, TBitBtn, TLabel,
> TGroupBox osv. De nedstammer dog (næsten) alle fra TControl og så tænkte
jeg
> at løsningen kunne være:
>
> str1:=TControl(MyObject).caption;
>
> Men den påstår at Tcontrol ikke har ikke caption variabel, men jeg synes
> ikke jeg kan få det til at passe med mine manualer som påstår at de netop
> har en sådan værdi...?
Kender ikke så meget til det område så jeg vrøvler muligvis :) men jeg
prøver da på at lære det. Caption er i TControl defineret under protected så
derfor kan du ikke få fat i den. En måde er at benytte TControl functionen
GetTextBuf men det virker lidt bøvlig syntes jeg. En anden måde er at
oprette en ny klasse således:
TTest = class(TControl)
function getcaption : string;
end;
..
..
function TTest.getcaption : string;
begin
result:=caption;
end;
Så kan du hente caption sådan:
str1:=TTest(MyObject).getcaption;
Jeg har testet det og det virker fint.
> Et sidste og forholdsvis vigtigt spørgsmål: kan man godt typecaste
"tilbage
> i hirakiet" for en komponent? I førnævnte eksempel kunne MyObject være en
> TLabel som jo netop nedstammer fra en Tcontrol...
Ja
Mvh
HK
Henry (
28-12-2002
)
Kommentar
Fra :
Henry
Dato :
28-12-02 18:21
> TGroupBox osv. De nedstammer dog (næsten) alle fra TControl og så tænkte
jeg
> at løsningen kunne være:
>
> str1:=TControl(MyObject).caption;
>
Du skal bare bruge "is"
if SomeObject is TLabel then
begin
s := TLabel(SomeObject).caption;
end
else if SomeObject is TSomeOtherClass then DoSomeThingElse
osv osv
is sammenligner klasser
= sammenligner værdier
henry
Søg
Alle emner
Teknologi
Udvikling
Delphi/Pascal
Indstillinger
Spørgsmål
Tips
Usenet
Reklame
Statistik
Spørgsmål :
177558
Tips :
31968
Nyheder :
719565
Indlæg :
6408925
Brugere :
218888
Månedens bedste
Årets bedste
Sidste års bedste
Copyright © 2000-2024 kandu.dk. Alle rettigheder forbeholdes.