Avatar billede homsabu Nybegynder
04. marts 2005 - 16:37 Der er 11 kommentarer og
1 løsning

Showmessage når en tab åbnes

Hey eksperter!!

Jeg sidder med en lidt ældre version af delphi (4.0)... jeg har et program hvor man "bladre" igennem forskellige tabs (faneblade). Hvordan gør man så lige så snart brugeren trykker på et nyt tab (faneblad) kommer der en ShowMessage og giver brugeren besked om noget???

/Casper
Avatar billede snowball Novice
04. marts 2005 - 16:59 #1
Dit PageControl objekt har en OnChange event som udføres hver gang man skifter faneblad.

procedure TForm1.PageControl1Change(Sender: TObject);
begin
  ShowMessage('Du skiftede til fanebladet ' + PageControl1.ActivePage.Caption);
end;
Avatar billede homsabu Nybegynder
04. marts 2005 - 17:17 #2
hvis man sletter PageControl1.ActivePage.Caption virker det fint... men et er meningen at PageControl1.ActivePage.Caption skal vise hvilket faneblad der er skiftet til, ik?!

(Den siger Undeclared identifier: 'PageControl1')

men min ser også sådan ud;

procedure TForm1.TabbedNotebook2Change(Sender: TObject; NewTab: Integer;
var AllowChange: Boolean);
begin
  ShowMessage('Du skiftede til fanebladet ' + PageControl1.ActivePage.Caption);
end;

det er jo lidt galt... har prøvet at ændre PageControl1 --> TabbedNotebook2, men det virker stadig ikke?!
Avatar billede homsabu Nybegynder
04. marts 2005 - 17:23 #3
(ps jeg er rimelig ny i delphi - undskyld hvis jeg spørg om noget dumt / indlysende! :-))
Avatar billede snowball Novice
04. marts 2005 - 17:25 #4
PageControl1 er det navn den får hvis man ikke selv ændrer det. I dit tilfælde skal det så være som nedenstående:

ShowMessage('Du skiftede til fanebladet ' + TabbedNotebook2.ActivePage.Caption);
Avatar billede homsabu Nybegynder
04. marts 2005 - 17:26 #5
Så siger den : Record, object or class type required

???
Avatar billede snowball Novice
04. marts 2005 - 17:33 #6
Hov, overså lige du havde prøvet det ;)

Oppe i toppen af din kode der har du en "type" sektion hvor alle din objekter er nævnt. Hvad står der ud for TabbedNotebook2? TPageControl, TTabControl eller noget helt andet?
Avatar billede homsabu Nybegynder
04. marts 2005 - 17:35 #7
TabbedNotebook2: TTabbedNotebook;
Avatar billede homsabu Nybegynder
04. marts 2005 - 17:36 #8
jeg kan (nu) se at jeg har brugt de gamle Win3.1 og ikke Win32 til at lave det Tabs'ne... gør det nogen forskel?
Avatar billede snowball Novice
04. marts 2005 - 17:44 #9
Jeg har aldrig brugt de komponenter der er på Win3.1 tab'en, så ved ikke så meget om hvad forskellen er, men ville nok foretrække at bruge PageControl der er på Win32 tab'en.

Men du kan lave det samme med den du har brugt nu. Koden skal så bare være som nedenstående:

ShowMessage('Du skiftede til fanebladet ' + TabbedNotebook1.Pages[NewTab]);
Avatar billede homsabu Nybegynder
04. marts 2005 - 17:53 #10
super!!! det virker med det sidste du skrev! :-)

mht til at skifte til win32... kan det gøres på en nem måde?!? jeg har allerede lavet 7 tabs med MANGE edit-felter i hver!!!... så at starte helt forfra vil være for besværligt! er der en super nem måde?? (formentlig ikke :-(  !)
Avatar billede snowball Novice
04. marts 2005 - 17:56 #11
Du kan prøve at tilføje en PageControl til din form, og så lave de 7 tabs igen. Derefter vælger du så alle komponenter (men ikke selve tab'en) på den gamle tab, og trykker på CTRL + C for at kopiere dem. Derefter vælger du så den nye tab (vigtig at du rammer selve indholdet af tab'en og ikke selve det øverste af tab'en eller PageControl'en) og så trykker du på CTRL + V for at paste dem ind.

Hvis du er heldig, så lykkedes det for dig :)
Avatar billede homsabu Nybegynder
04. marts 2005 - 18:07 #12
det vil jeg prøve! :-)

tak for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester