Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   "Cracker" TStringGrid = class(Grids.TStringGrid) (https://www.delphipraxis.net/158435-cracker-tstringgrid-%3D-class-grids-tstringgrid.html)

schwa226 17. Feb 2011 13:44

"Cracker" TStringGrid = class(Grids.TStringGrid)
 
Hi,

ich habe wieder einmal eine Frage! Und zwar will ich TStringGrid um ein paar Propertys erweitern.

Dazu kann man es ja so machen:
Delphi-Quellcode:
TStringGrid = class(Grids.TStringGrid)
Nun habe ich aber ein Problem:
Die Definition von TStringGrid ist in der Unit uGlobal. die uGlobal bindet die Grids Unit in den Uses mit ein.
Meine Form hat ein TStringGrid drauf. Wenn ich nun die Unit Grids aus den Uses der uMain nehme schreibt mir Delphi beim Speichern immer wieder die Grids Unit dazu.

Somit sagt der Compiler natürlich Grids.TStringGrid <> uGlobal.TStringGrid.
Ich brauche die TStringgrid aber in mehreren Units.
Oder muss man da in jeder Unit dann TStringGrid neu definieren?

mkinzler 17. Feb 2011 13:57

AW: "Cracker" TStringGrid = class(Grids.TStringGrid)
 
Binde deine Unit vor der Grids unit ein

WM_CLOSE 17. Feb 2011 14:00

AW: "Cracker" TStringGrid = class(Grids.TStringGrid)
 
Wenn du das auf dein Form ziehen willst,
musst deine eigene Komponente machen:
Sieh dir doch mal das Tutorial zur Komponentenentwicklung auf DelphiGL an.
Die muss dann aber einen anderen Namen haben als TStringGrid ->TYourStringGrid

uligerhardt 17. Feb 2011 14:35

AW: "Cracker" TStringGrid = class(Grids.TStringGrid)
 
Zitat:

Zitat von mkinzler (Beitrag 1082463)
Binde deine Unit vor der Grids unit ein

Du meinst nach, oder?

Memnarch 17. Feb 2011 14:39

AW: "Cracker" TStringGrid = class(Grids.TStringGrid)
 
@uligerhardt Wars nicht so, dass die definition(fals doppelt) von der ersten Unit genommen werden?

uligerhardt 17. Feb 2011 14:42

AW: "Cracker" TStringGrid = class(Grids.TStringGrid)
 
Zitat:

Zitat von Memnarch (Beitrag 1082469)
@uligerhardt Wars nicht so, dass die definition(fals doppelt) von der ersten Unit genommen werden?

Nö, von der letzten. So geht's:
Delphi-Quellcode:
uses
  Windows,
  Graphics;

begin
  Writeln(TBitmap.ClassName);
end.
und das
Delphi-Quellcode:
uses
  Graphics,
  Windows;

begin
  Writeln(TBitmap.ClassName);
end.
gibt nen Compilerfehler.

schwa226 17. Feb 2011 15:31

AW: "Cracker" TStringGrid = class(Grids.TStringGrid)
 
Verdammt!

So einfach! Hätte ich auch noch draufkommen können! :oops:

Vielen Dank an alle, werd's morgen mal probieren!
Derzeit habe ich es halt in der uMain definiert und diese in den anderen Units unter den Uses hinzugefügt. Geht auch, aber macht es schwierig mit den Referenzen untereinander.

alzaimar 17. Feb 2011 18:58

AW: "Cracker" TStringGrid = class(Grids.TStringGrid)
 
Hätte es ein Class Helper nicht auch getan? So ist das doch nichts! Wenn einer meiner Programmierer mir so etwass vorsetzen würde, der dürfte wieder Listen ausfüllen!

Bummi 17. Feb 2011 21:40

AW: "Cracker" TStringGrid = class(Grids.TStringGrid)
 
Warum nicht eine Komponente TMyStringGrid ableiten und verwenden?

schwa226 18. Feb 2011 10:48

AW: "Cracker" TStringGrid = class(Grids.TStringGrid)
 
Ich habe ja ein TStringGrid Komponente auf der Form.
Ansonten müsste ich das TMyStringGrid komplett erzeugen und auf der Form platzieren.

Das mit dem Class Helper werde ich mir noch ansehen. Bin kein gelernter Programmierer ;)
Aber lerne immer mehr!

EDIT: Habe den Helper nun probiert. Da kann ich aber dann keine Variabeln mehr definieren:
E2169: Felddefinition nicht erlaubt nach Methoden oder Eigenschaften


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:36 Uhr.
Seite 1 von 2  1 2      

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