Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TStringgrid Unterart Properties löschen/sperren (https://www.delphipraxis.net/154118-tstringgrid-unterart-properties-loeschen-sperren.html)

Delphi-Narr 28. Aug 2010 14:08

TStringgrid Unterart Properties löschen/sperren
 
Hallo! Ich bin gerade dabei, meine erste Komponente zu entwickeln. Es soll eine Unterart von TStringgrid sein. Jetzt möchte ich gerne alle Eigenschaften / Properties nur noch selber setzen können (also z.B. soll man von außen keinen Zugriff auf Rowheights mehr haben.) Nur left, width, name, height und width sollen noch verwendbar sein, wobei height und width immer gleich sein sollen.

Ist das möglich und wenn ja, wie?

Liebe Grüße!

daywalker9 28. Aug 2010 14:09

AW: TStringgrid Unterart Properties löschen/sperren
 
Ja kannst du :

Delphi-Quellcode:
TMyStringgrid = class(TStringgrid)
private
  property RowCount; //Properties private machen
  //..
end;

himitsu 28. Aug 2010 14:14

AW: TStringgrid Unterart Properties löschen/sperren
 
Nein geht nicht.
Man kann sichtbarkeiten nicht mehr verringern.
(wäre auch 'n bissl sinnlos, dann man kann immernoch in einen Vorfahren casten und könnte alles sehen)

Du kannst höchstens von TCustomStringGrid ableiten und nur die gewünschten Eigenschaften sichtbar machen.

daywalker9 28. Aug 2010 15:30

AW: TStringgrid Unterart Properties löschen/sperren
 
Zitat:

Zitat von himitsu (Beitrag 1045720)
Nein geht nicht.
Man kann sichtbarkeiten nicht mehr verringern.
(wäre auch 'n bissl sinnlos, dann man kann immernoch in einen Vorfahren casten und könnte alles sehen)

Du kannst höchstens von TCustomStringGrid ableiten und nur die gewünschten Eigenschaften sichtbar machen.

Habs ja gerade noch mal ausprobiert, funktioniert immer noch ;) Ob das Sinn macht, ist eine andere Frage

himitsu 28. Aug 2010 15:32

AW: TStringgrid Unterart Properties löschen/sperren
 
Hmm, seit wann geht das denn?
eigentlich sollte es nicht gehn ... müßte auch irgendwo in der OH drinstehn :gruebel:

Delphi-Narr 28. Aug 2010 15:36

AW: TStringgrid Unterart Properties löschen/sperren
 
Also wenn ich bei mir (Delphi 5) z.B. RowCount in den private Block schreibe, kann man das trotzdem ändern...

himitsu 28. Aug 2010 15:42

AW: TStringgrid Unterart Properties löschen/sperren
 
OK, angeblich soll man sowas zumindestens kompilieren können, wie ich auf einigen Seiten grad gelesen hab
z.B. http://forum.delphi-treff.de/showthr...ties-verbergen

Aber IMHO ist das gegen die OOP und wer weiß ob Emba daran nicht doch mal was ändert und es zukünftig untersagt.


Gut, TStringGrid hat leider keinen direkten Cutsom-Vorfahren für die dieses Fall, aber du kannt TCustomDrawGrid nutzen ... da ist dein Color noch versteckt.
(nja, das zeigt wiedermal, daß TStringGrid noch weitere Probleme besitzt)

Delphi-Narr 30. Aug 2010 13:20

AW: TStringgrid Unterart Properties löschen/sperren
 
Sorry, dass ich erst so spät antworte:

Also mal ganz ausführlich:

Ich möchte ein 9x9 Sudoku programmieren (als eigene Komponente).
Dazu habe ich bisher (ohne eigene Komponente) ein Stringgrid benutzt. Da ein Sudoku nunmal quadratisch ist und 9 Spalten und Reihen hat, soll man weder Rowcount noch Colcount verändern können, Width muss gleich Height sein und
Eigenschaften wie Cells, Colwidths/rowheights müssen gesperrt werden.

Also bei mir gibt es nur TCustomGrid (ist das das gleiche???)

Wenn ich jetzt nur bestimmte Eigenschaften haben will, wie geht das dann?

Bisher steht jetzt in meinem Quelltext das hier:

Delphi-Quellcode:

unit Sudoku;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Grids;

type
  TlbSudokuGrid = class(TCustomGrid)
  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
  published
    { Published-Deklarationen }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [TSudoku]);
end;

end.
Klar, so habe ich auch beim StringGrid angefangen... Doch wo muss ich da jetzt die Eigenschaften eintragen, die NICHT vom Nutzer geändert werden können? Und wo die, die geändert werden können?

Viele Grüße

mkinzler 30. Aug 2010 13:23

AW: TStringgrid Unterart Properties löschen/sperren
 
Oder das StringGrid als Subkomponente verwenden.

Delphi-Narr 30. Aug 2010 13:25

AW: TStringgrid Unterart Properties löschen/sperren
 
Zitat:

Zitat von mkinzler (Beitrag 1046077)
Oder das StringGrid als Subkomponente verwenden.

Und wie???


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 Uhr.
Seite 1 von 2  1 2      

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