![]() |
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! |
AW: TStringgrid Unterart Properties löschen/sperren
Ja kannst du :
Delphi-Quellcode:
TMyStringgrid = class(TStringgrid)
private property RowCount; //Properties private machen //.. end; |
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. |
AW: TStringgrid Unterart Properties löschen/sperren
Zitat:
|
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: |
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...
|
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. ![]() 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) |
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:
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?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. Viele Grüße |
AW: TStringgrid Unterart Properties löschen/sperren
Oder das StringGrid als Subkomponente verwenden.
|
AW: TStringgrid Unterart Properties löschen/sperren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz