AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Erweiterung für zwei Klassen gleichzeitig schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

Erweiterung für zwei Klassen gleichzeitig schreiben

Ein Thema von blablab · begonnen am 11. Mai 2012 · letzter Beitrag vom 12. Mai 2012
Antwort Antwort
Seite 1 von 2  1 2      
blablab

Registriert seit: 3. Jan 2006
509 Beiträge
 
Delphi 7 Enterprise
 
#1

Erweiterung für zwei Klassen gleichzeitig schreiben

  Alt 11. Mai 2012, 15:36
Hallo!

Ich habe eine kleine Erweiterung für die ListBox geschrieben mit der man die Items per Drag&Drop vertauschen kann.
TSwapListBox = class(TCustomListBox) Dasselbe möchte ich jetzt auch für die CheckListBox haben. Ich kann den zusätzliche Code von meiner SwapListBox 1:1 in SwapCheckListBox kopieren und es funktioniert. Allerdings ist das kein besonders guter Programmierstil, sobald ich eine kleine Änderung in SwapListBox mache muss ich die SwapCheckListBox anpassen.

Wie könnte man das besser machen?

Grüße
blablab
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Erweiterung für zwei Klassen gleichzeitig schreiben

  Alt 11. Mai 2012, 15:43
Das kommt drauf an, was du von der Listbox brauchst.
Wenn du nur public-Eigenschaften und Funktionen nimmst, könntest du einen class helper für beide Basisklassen schreiben.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
blablab

Registriert seit: 3. Jan 2006
509 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Erweiterung für zwei Klassen gleichzeitig schreiben

  Alt 11. Mai 2012, 15:50
ich bin mir nicht sicher... wie sieht so ein class helper aus?
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Erweiterung für zwei Klassen gleichzeitig schreiben

  Alt 11. Mai 2012, 15:51
Nach meinem Verständnis müsstest Du die SwapCheckList... von der SwapList.. ableiten.
Also den Source der CheckList... nehmen und die abgeletete Klasse ersetzen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Erweiterung für zwei Klassen gleichzeitig schreiben

  Alt 11. Mai 2012, 16:01
Class Helper gibt es m.E. ab D 2009.
Ein ClassHelper ist quasi eine Funktion implementiert quasi Funktionen, die auf eine Klasse "aufgepfropft" wird werden. Mit Classhelpern kannst Du Klassen gewissermaßen um Funktionen erweitern. In den Funktionen kannst Du auf öffentliche Eigenschaften der Klasse zugreifen.

Ich denke nicht, dass das in Deinem Fall der richtige Weg ist.


Du könntest ggf. Deinen Quelltext in externen Files ablegen und mit Include in beiden Units einbinden:
{$INCLUDE 'MyFunction.inc'}

Noch sauberer wäre es wohl, eine spezielle Funktion mit allen benötigten Parametern in einer externen Unit abzulegen und diese Funktion aus beiden Klassen heraus aufzurufen. Das ließe sich dann auf jeden Fall auch vernünftig debugen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (12. Mai 2012 um 14:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: Erweiterung für zwei Klassen gleichzeitig schreiben

  Alt 11. Mai 2012, 16:09
Sicher, daß die nicht schon ab 2006 gingen? (Record Helper brauchten etwas länger, glaub ich)
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#7

AW: Erweiterung für zwei Klassen gleichzeitig schreiben

  Alt 11. Mai 2012, 16:12
Laut delphi.about.com sogar schon ab Delphi 2005, aber undokumentiert.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
blablab

Registriert seit: 3. Jan 2006
509 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: Erweiterung für zwei Klassen gleichzeitig schreiben

  Alt 11. Mai 2012, 16:31
Es kommt zwar immer näher, aber reicht noch nicht. Ich hab Delphi7

Habs jetzt nach p80286s Vorschlag gemacht.

Danke für die Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

AW: Erweiterung für zwei Klassen gleichzeitig schreiben

  Alt 12. Mai 2012, 00:03
Es ist näher, als du denkst ... D2006 hat sozusagen einen leicht aufgemotzten D7-Compiler [v7.2] .

http://www.delphipraxis.net/144997-s...hi-2006-a.html
$2B or not $2B
  Mit Zitat antworten Zitat
Robotiker
(Gast)

n/a Beiträge
 
#10

AW: Erweiterung für zwei Klassen gleichzeitig schreiben

  Alt 12. Mai 2012, 09:35
Ein ClassHelper ist quasi eine Funktion, die an eine Klasse "aufgepfropft" wird. Mit Classhelpern kannst Du Klassen gewissermaßen um Funktionen erweitern. [...]

Ich denke nicht, dass das in Deinem Fall der richtige Weg ist.
Man müsste eher bestimmte Funktionalität in verschiedenen Klassen an Hilfsklassen delegieren. Diese Hilfsklassen nennt man Policy-Klassen. In Pascal habe ich sowas noch nicht gesehen, auch Google findet nur Beispiele in anderen Sprachen.

http://en.wikipedia.org/wiki/Policy-based_design

Da steht auch
Zitat:
It has been described as a compile-time variant of the strategy pattern,
also wäre theoretisch eine Laufzeitimplementierung in Delphi 7 möglich, die irgendwie das Strategiemuster anwendet. Also z.B. in dem die beiden Listbox-Typen jeweils eine Hilfsklasse als Member haben, an die die Aufrufe der entsprechende Listbox-Methoden weitergereicht werden. Aber wahrscheinlich macht das mehr Arbeit, als den Code zu kopieren.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:36 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