AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Überschriften für TStringGrid / neue Komponente
Thema durchsuchen
Ansicht
Themen-Optionen

Überschriften für TStringGrid / neue Komponente

Ein Thema von Sirius Fog · begonnen am 18. Mär 2010
Antwort Antwort
Sirius Fog

Registriert seit: 18. Mär 2010
1 Beiträge
 
#1

Überschriften für TStringGrid / neue Komponente

  Alt 18. Mär 2010, 22:21
Hallo,

ich habe ein Problem bei der Ableitung von TStringGrid. Ziel ist es Überschriften für die einzelnen Spalten im Objektinspektor einstellen zu können (welche dann auch zur Laufzeit zu sehen sind). Das geht soweit auch, sobald ich das Form allerdings kompliliere und anzeige sind die Überschriften wieder weg.

Ich schätze mal es ist ein Streaming Problem? Ich habe bislang keine Lösung gefunden. Irgendwie schaffen die Daten es nicht aus dem Objektinspektor in das Form zur Laufzeit. Auch beim Einladen ist das AdvStringGrid leer, allerdings liegen die Daten noch im Objektinspektor.

Was mache ich falsch?
Plattform: Win7 mit Delphi 2010 Pro.

Delphi-Quellcode:
  TAdvStringGrid = class(TStringGrid)
  private
    { Private-Deklarationen }
    fHeadlines: TStringList;
    fColWidth: integer;
    fFixedColWidth: integer;
    function rdHeadlines: TStringList;
    procedure wrHeadlines(Value: TStringList);
    procedure wrColWidth(Value: integer);
    procedure wrFixedColWidth(Value: integer);
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    constructor Create(aOwner: TComponent); override;
    destructor Destroy; override;
  published
    { Published-Deklarationen }
    property Headlines: TStringList read rdHeadlines write wrHeadlines;
    property ColWidth: integer read fColWidth write wrColWidth;
    property FixedColWidth: integer read fFixedColWidth write wrFixedColWidth;
  end;

  ...

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Adv Components', [TAdvStringGrid]);
  ...
end;

constructor TAdvStringGrid.Create(aOwner: TComponent);
var
  i: integer;
begin
  inherited;

  self.fHeadlines := TStringList.Create;
  self.DrawingStyle := gdsGradient;
end;

destructor TAdvStringGrid.Destroy;
begin
  inherited;

  self.Headlines.Destroy;
end;

function TAdvStringGrid.rdHeadlines: TStringList;
begin
  result := fHeadlines;
end;

procedure TAdvStringGrid.wrHeadlines(Value: TStringList);
var
  i: integer;
begin
  fHeadlines.Assign(Value);

  for i:=0 to fHeadlines.Count-1 do begin
    if self.ColCount > i then begin
      self.Cells[i, 0] := fHeadlines.Strings[i];
    end;
  end;
end;
Der Quelltext unten ist etwas reduziert, es werden noch andere Properties wie beispielsweise die Speltenbreite über den Objektinspektor abgefragt. Das geht!

Viele Grüße,
Foggy
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:22 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