-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
12. Jun 2015
Liest du die Posts eigentlich? :gruebel:
TObject0 ist die Basisklasse. Und ja, ich hab auch eine. Siehe Posts 1- 10, die Kommentare in #9. Die TWerkzeug gibst nur nicht mehr.
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
12. Jun 2015
Probiers halt aus. Variante wäre direkt mit TGraphicObjectClass zu arbeiten, das geht. Dann kann aber nicht mehr Is Typ1,2,3 abfragen.
So getestet:
TObject0 = class
private
FA: integer;
FB: integer;
FC: integer;
public
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
12. Jun 2015
Nö, jeet nicht. :)
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
12. Jun 2015
Ja doch. So hab ich‘s doch (Siehe z.B. Assign), anders wär’s ja ein Krampf? Aber um ein spezifisches Create kommst du nicht herum, sonst greift das override ja nicht.
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
12. Jun 2015
Die Basisklasse gibt es nicht mehr (hatte ich doch schon geschrieben?). Und z.B. hier wünsch ich dir mit 70 Klassen viel Spaß:
procedure TGraphicObjectList.AddList(Value: TGraphicObjectList);
var
I, Index: integer;
begin
for I := 0 to Value.Count - 1 do
begin
if Value is TGraphicObject1 then
Index := Add(TGraphicObject1.Create)
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
11. Jun 2015
Du hast mich immer noch nicht verstanden. Was machst du, wenn du ein rundes Control hast, aber TCustomControl keine Radius Prop hat, dein Objectinspector aber ein TCustomControl erwartet? Entweder du kastet dich im OI zu tode oder du führst eben abtsracte Getter und Setter schon auf dieser Ebene ein. Oder du machst es wie DeddyH vorgeschlagen hat über eine allgemeine (hier) AddFloat und...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
10. Jun 2015
Ja, die Klassen machen mehr, viel mehr. Längenermittlung, Gewichtermittlung, Stücklisten, Schnittpunkte, Fangpunkte, diverse Rucksackprobleme lösen, OI, dxf/dwg Parser ect.. Das erledigen weitere Klassen in Verbindung mit dem Object und der Liste. Das Programm ist nicht ganz einfach, ehrlich gesagt bin ich froh daß ich’s überhaupt hingekriegt hab..
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
10. Jun 2015
Du machst mir echt Laune. Wirfst mal so eben die Arbeit von ca. 2 Jahren weg.:) Wenn man ein Figur Line, dann hat man auch ein schnell einen Pfeil oder einen Hint. Wenn man einen Kreis hat dann auch schnell eine Ellipse, einen Arc, eine Kreislinie ect. Das Zusammenfassen ist in schon in Ordnung so (Siehe auch TShape). Das eigentliche Zeichen wird oft auch weiter delegiert. Darum sollte es hier...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
10. Jun 2015
stahli, in Bezug auf gleiche Methoden hab ich das so. Mir geht's jetzt noch um die Properties. Da hat DeddyH ja einen Vorschlag gemacht. AddPoint könnte jede Klasse vertragen.
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
10. Jun 2015
DeddyH, ich denke mal das wäre sicherlich möglich. Diese Idee hatte ich zum Beispiel noch nicht. Thanx.
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
10. Jun 2015
Ok. Also: Ich habe 3 Klassen ala TShape (TWerkzeug1,2,3). Jede TWerkzeug Class kann so 15-25 Figuren zeichnen. Alles was in den Shapes gleich ist, befindet sich in der Basisklasse TWerkzeug0. Der User wählt mit dem Speedbutton eines von ca. 70 zu zeichnenden Objecte aus. Je nachdem in welcher Klasse das Objekt gezeichnet wird, muß also Werkzeug1,2,3.Draw ausgeführt werden. Draw befindet sich...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
10. Jun 2015
Ei, ich hann gemennt.. :)
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
10. Jun 2015
Weil der Typ TWerkzeug0 so was Ähnliches wie TCustomControl ist. Wirklich viel macht TWerkzeug0 noch nicht. Ich hab jetzt mal das vorbereitet. Ist an manchen Stellen eine Arbeitserleichterung. Wobei mich immer wundert daß man in Delphi "Bauer := TDame.Create" machen kann.
TWerkzeugFactory = class
private
FTyp: TGraphicTyp;
FWerkzeug: TWerkzeug0;
procedure SetTyp(const...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
10. Jun 2015
Ich hab diese fürchterliche Basisklasse geschreddert (nicht nur gelöscht). Die bringt überhaupt nichts null nothing gar nichts. Ich habe 3 Kategorien von geometrischen Objekten, die ich eh immer abfragen muß?
Beispiel:
procedure TDrawPadProperties.SetProperties(Item: TWerkzeug0);
var
Item1: TWerkzeug1;
Item2: TWerkzeug2;
Item3: TWerkzeug3;
begin
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
9. Jun 2015
Ja, ist sehr aufgebläht. Diese Klasse hab ich eigentlich nur deshalb eingeführt um keine Fehler zu machen (auf protected-Symbol TWerkzeug.xyz kann nicht zugegriffen werden) und um einen gemeinsamen Vorfahren zu haben.
Ableiten wär mir eigentlich lieber als interfaces?
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
9. Jun 2015
In den Zusammenhang stellt sich für mich die Frage, ob es möglich ist, eine Faktory aus 3 unterschiedlichen Klassen zu erstellen. Falls da ja jemand irgendeine Chance sieht, mach in nen neuen Thread auf.
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
9. Jun 2015
Nee, was du in #10 geschrieben hast war genau richtig!?
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
9. Jun 2015
Ja, gebe euch Recht. Hab aus den abstrakten virtuelle gemacht, die Codevervollständung gedrückt und den Source so ergänzt.
procedure TMemoForm.Button2Click(Sender: TObject);
var
I: integer;
S0, S1, S2: string;
C: char;
begin
C := '''';
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
9. Jun 2015
Ein Override hab ich nicht vergessen. Es ist nur so, daß die einzelnen Klassen, die davon abgeleitet sind, nicht jede Methode bzw. jede Property haben.
unit uWerkzeug;
interface
uses
SysUtils, Classes, Graphics, Dialogs, Math, VirtualTrees, uIniDataFile,
uUtils, uRecords, uClasses, uPolygon, uPolygonEx, uPropUtils, uPropArrays, uBewehrung;
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
9. Jun 2015
Jetzt bekomm ich ca. 1600 Warnungen wie diese. Ist das normal. Wohl kaum?? :shock:
uGraphicObjectList.pas(1353): W1020 Instanz von 'TWerkzeug3' mit der abstrakten Methode 'TWerkzeug.GetDimensionAlignRight' wird angelegt
uGraphicObjectList.pas(1353): W1020 Instanz von 'TWerkzeug3' mit der abstrakten Methode 'TWerkzeug.GetPosAlign' wird angelegt
uGraphicObjectList.pas(1353): W1020 Instanz...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
8. Jun 2015
Ok, thanx Stahli. BTW, gibt’s da einen Trick um zu überprüfen, ob man eine Methode vergessen hat zu überschreiben. Wenn man die Methode ohne override einfügt gibt der Compiler ja schön die Warnung (verdeckt Methode der Basisklasse). Aber wenn man die Methode ganz vergessen hat, meckert "er" nicht, man würde im dem Fall ja ggf. die abstrakten verwenden? Ist mir noch nicht passiert. Verschwindet...
-
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Bjoerk,
8. Jun 2015
Ich habe 3 Klassen:
TDingensBase = class
protected
function GetTest: string; virtual; abstract;
procedure SetTest(const Value: string); virtual; abstract;
property Test: string read GetTest write SetTest;
end;
TDingens = class(TDingensBase)