AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf dynamisch erstellte Komponente

Ein Thema von wendelin · begonnen am 18. Jul 2011 · letzter Beitrag vom 21. Jul 2011
Antwort Antwort
Seite 2 von 2     12   
wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
126 Beiträge
 
Delphi 7 Enterprise
 
#11

AW: Zugriff auf dynamisch erstellte Komponente

  Alt 20. Jul 2011, 20:52
Hallo FredlFesl,

Danke für Deine schnelle Antwort, aber es liegt NICHT an der
alternierenden Farbauswahl, sondern daran,das der Compiler die Komponente "Band".Property nicht erkennt. Ist ja auch logisch, da diese erst zur Laufzeit erzeugt wird und im interface NICHT deklariert ist.

If Odd (MyDataset.Recno) Then
Band.Color := clWhite
else
Band.Color := clGray;
Wolfgang
  Mit Zitat antworten Zitat
FredlFesl

Registriert seit: 19. Apr 2011
293 Beiträge
 
Delphi 2009 Enterprise
 
#12

AW: Zugriff auf dynamisch erstellte Komponente

  Alt 21. Jul 2011, 07:33
Na dann pack sie doch da rein, wo sie sichtbar ist. Mach z.B. ein Feld daraus, also...

Delphi-Quellcode:
Type
  TMyReport = Class (TForm)
  ...
  private
     fBand : TQrDetailBand; // Oder wie auch immer die Klasse heißt
  ...
Kann es sein, das Dir gewisse Grundlagen fehlen?
Das Bild hängt schief.
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
703 Beiträge
 
Delphi 12 Athens
 
#13

AW: Zugriff auf dynamisch erstellte Komponente

  Alt 21. Jul 2011, 09:31

Nun möchte ich wegen der besseren Lesbarkeit mit Hilfe von Procedure "BeforePrint" (s.u.) Tabellierpapier simulieren.
Beim Entwurf von QReport (zur Designzeit) gibt es keine Probleme.
In meinem Testprogramm jedoch gibt es zur Designzeit noch keine Komponente "DetailBandXXX". Ein weiteres Problem ist, dass mit jedem
neuen Aufruf von "GridRepPreview(Grid : TDBGrid)" wieder ein neues
Detailband erzeugt wird (und später freigegeben) wird.
Ich habe es schon mit TComponentList bzw. mit TObjectList probiert.
Kein Erfolg. Da ich ein reiner Hobbyprogrammierer bin wäre ich für
ein paar Anregungen oder Lösungsansätze sehr dankbar.

Wendelin
Wenn ich dich richtig verstehe, hast du schon eine funktionierende BeforePrint-Methode, die das Tabellierpapier simuliert. Die must du nur dem dynamisch erzeugten DetailBand zur Laufzeit zuweisen.

Delphi-Quellcode:
  GridRep.Bands.DetailBand.Height := Abs(Grid.Font.Height) + 10;
  GridRep.Bands.DetailBand.BeforePrint:=GridRepBeforePrint;


// Für Tabellierpapier
procedure TGridReport.GridRepBeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
begin
  If GridRep.Bands.DetailBand.Color = clWhite THEN
    GridRep.Bands.DetailBand.Color := clMoneyGreen ELSE
    GridRep.Bands.DetailBand.Color := clWhite;
end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz