Avatar billede futterama Nybegynder
04. februar 2004 - 15:42 Der er 7 kommentarer og
2 løsninger

Opret QRLabel dynamisk i en QuickReport

Hej alle,

Jeg har det problem at jeg får en Access violation fejl når jeg prøver at oprette en QRLabel i en DetailBand på en QuickReport. Min kode ser således ud:


procedure TFrmReport.DetailBand1BeforePrint(Sender: TQRCustomBand;
  var PrintBand: Boolean);
var
  newLabel: TQRLabel;
begin
  newLabel := TQRLabel.Create(DetailBand1);
  TControl(newLabel).Parent := DetailBand1;
  newLabel.Caption := 'Hej med dig';
  newLabel.Top := 8;
  newLabel.Left := 275;
end;


Jeg har prøvet at sætte følgende linie ind lige før end;

newLabel.Free;

men så vises labellen ikke på rapporten...

Er der nogen med nogle gode ideer?
Avatar billede stone Forsker
04. februar 2004 - 18:20 #1
jo da...

du skal bare indsætte din kode i Oncreate på den form hvor din quickrep er....
//stone
Avatar billede pellelil Nybegynder
04. februar 2004 - 18:40 #2
Hvad med at sætte en blank-label ind (statisk) som du udfylder i en BeforePrint event ?
Avatar billede futterama Nybegynder
05. februar 2004 - 07:10 #3
Hej igen,

stone: Jeg kan ikke bare sætte koden ind i FormOnCreate fordi de labels skal oprettes dynamisk hver gang en ny DetailBand bliver lavet, der skal nemlig et variabelt antal labels på hver "linie" i rapporten. Desuden bliver de labels fyldt med data fra en database (koden er ikke vist i mit eksempel for ikke at skabe forvirring) og indholdet skal jo være dynamisk rapporten igennem ;-)

pellelil: Det var også en mulighed jeg har overvejet men så skal jeg oprette 26 labels hvoraf kun nogle skal indeholde data alt efter mine data i databasen. Problemet opstår så bare når jeg skal bestemme hvilken label der skal indeholde hvilke data i forhold til den enkelte labels position på QR'en. Det ville være meget lettere at angive en Left property dynamisk så labels'ene kommer til at stå rigtigt.

Tak for forsøget til jer to, men jeg er desværre nok nødt til at lave dem dynamisk i netop DetailBand...

Er der andre med forslag?
Avatar billede futterama Nybegynder
31. marts 2004 - 08:24 #4
Spørgsmålet er ikke længere aktuelt, jeg har fået løst mit problem, så jeg lukker af her ;-)
Avatar billede futterama Nybegynder
04. maj 2004 - 11:17 #5
Jeg har selv løst problemet :-)
Avatar billede pigbear Nybegynder
07. marts 2007 - 13:38 #6
Hej futterama og alle andre der anvender eksperten

Alt for ofte ser man at et spørgsmål bliver stillet, forslag på løsninger bliver præcenteret, men til sidst siger spørgsmålstilleren at han har selv fundet ud af det, og lukker spørgsmålet.

Ville det ikke være på sin plads at man lige oplyste hvilken løsning man fant, så vi andre også kan få glæde af løsningen !! ???

mvh

PigBear
Avatar billede stone Forsker
07. marts 2007 - 14:07 #7
helt enig med pigbear....og har man ikke fået løst problemet så kan man bare sige at de løsninger vi er kommet med ikke lige har været det man søgte efter, og så prøve på et senere tidspunkt et nyt spørgsmål -.
Avatar billede futterama Nybegynder
07. marts 2007 - 14:21 #8
Jeg er sådan set enig, men da jeg lavede det projekt hvor jeg havde problemer, havde jeg ikke tid til at komme med en lang forklaring på hvordan problemet løses. Og da det er mere end 2 år siden, så kan jeg simpelthen ikke huske løsningen. Jeg kan ikke engang finde den frem fordi jeg ikke arbejder i den afdeling af virksomheden længere, så jeg har ikke adgang til filerne. Desværre.
Avatar billede stone Forsker
07. marts 2007 - 17:57 #9
he he så lige datoen...så det er forståeligt futterama
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