AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi String Entscheidungen mit case treffen!!!
Thema durchsuchen
Ansicht
Themen-Optionen

String Entscheidungen mit case treffen!!!

Ein Thema von Christian18 · begonnen am 5. Apr 2006 · letzter Beitrag vom 6. Apr 2006
Antwort Antwort
Seite 3 von 4     123 4      
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#21

Re: String Entscheidungen mit case treffen!!!

  Alt 5. Apr 2006, 15:38
Zitat von Hawkeye219:
...Die Tag-Lösung ist eigentlich auch nur eine halbe, weil der Objektinspektor mit den mühsam definierten Konstanten leider nichts anfangen kann. Fehler sind da bei der nächsten Änderung/Erweiterung vorprogrammiert...
So sehe ich das auch. Ein Dritter würde zuletzt drauf kommen, daß die Tags zweckentfremdet werden, bzw. plötzlich eine reale Bedeutung erhalten. Nur, wer hindert einen daran, sich selber was quasi identisches zu bauen ? Eine published property "Menuepunkt", die per OI einzustellen ist ? Abgeleitet von geeignetem Control. Das sind im Prinzip max. 5 Zeilen. Dieser könnte man auch gleich mit SetSubcomponent (also das + im OI) eine Caption verpassen und fertig.
Gruß
Hansa
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#22

Re: String Entscheidungen mit case treffen!!!

  Alt 5. Apr 2006, 16:29
Leicht OT: Wozu sind die Tags denn dann gut, wenn nicht für sowas?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#23

Re: String Entscheidungen mit case treffen!!!

  Alt 5. Apr 2006, 16:52
Die sind für den absoluten Ausnahmefall da, aber IMHO nicht dafür, einen zu hindern so was einfaches selber einzubauen :

Delphi-Quellcode:
  TMenuelbl = class(TLabel)
    procedure SetMenueEbene (Value: integer);
  private
    FMenueEbene : integer;
  public
    constructor Create(AOwner: TComponent); override;
  published
    property MenueEbene : integer read FMenueEbene write SetMenueEbene;
  end;

constructor Tlbl.Create(AOwner: TComponent);
begin
  inherited;
  MenueEbene := 0; // Standard
end;

procedure TlblRealEdit.SetMenueEbene (Value: integer);
begin
  FMenueEbene := Value;
end;
wie gesagt, wenn ich dem Teil noch eine eigene Caption/SubComponent verpassen will, dann wirds eben mehr (aber nicht viel). Vorteil : habe nicht irgendein "Tag", sondern das was nötig ist.
Gruß
Hansa
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#24

Re: String Entscheidungen mit case treffen!!!

  Alt 5. Apr 2006, 16:57
Nee, nee der Vorteil is klar. Wie viele Komponenten hast Du denn dann so installiert?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#25

Re: String Entscheidungen mit case treffen!!!

  Alt 5. Apr 2006, 17:17
Ein paar, verteilt auf 2 Registerreiter "Eigene" und "DB-Eigene". Das lohnt sich auf jeden Fall zu wissen wie das geht !
Gruß
Hansa
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#26

Re: String Entscheidungen mit case treffen!!!

  Alt 5. Apr 2006, 17:22
Na ja, dafür bastel ich mir aber keine Komponente. Aber Jedem das Seine.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#27

Re: String Entscheidungen mit case treffen!!!

  Alt 5. Apr 2006, 18:16
Hi folks,

nicht immer ist eine spezielle Komponente eine gute Lösung. Im vorliegenden Fall wäre es nach meiner Erfahrung der falsche Weg, weil erstens Object Pascal eine Hybridsprache ist und zweitens die von Hansa gezeigte Komponente einen clone des tag properties schafft nur um jenes ungenutzt zu lassen.

Eine Komponente muss universell einsetzbar sein und eine deutliche Bereicherung im Vergleich zu ihrem Vorgänger darstellen. Diesen Leitgedanken drückt Steve Teixeira in seinem Kommentar zum tag property so aus:

Zitat von Steve Teixeira and Xavier Pacheco:
This property should not be used by component writers - it is intended to be used by application writers. Because this value is an integer type, pointers to data structures - or even object instances - can be referred to by this property.
Der Entwurf eines Application Framework ist gut gelungen, wenn ich für Kleinigkeiten keine eigene Komponente entwickeln muss - egal wie geringfügig der Aufwand dafür sein mag.

marabu
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#28

Re: String Entscheidungen mit case treffen!!!

  Alt 6. Apr 2006, 00:31
Das zitierte Zitat paßt aber nicht so recht. Wie der richtig schreibt, sollte man das Tag eben nicht für eigene Zwecke (hier allerdings Komponente) mißbrauchen. Verwendet man es im nur Programm, dann steht es eben später und zwar auch in abgeleiteten Typen nicht mehr so zur Verfügung. Darauf wollte ich hinweisen. Insbesondere darauf, wie einfach man so was selber machen kann und aus allem Ungemach raus ist. Alllerdings ist das konkrete Thema tatsächlich recht einfach mit der Verwendung eines Tags zu machen. Das gibt nicht so viel her. Der Mini-Source enthält auch noch einen Fehler. Da steht irgendwo mittendrin noch was von TRealEdit. Und von da ist das als kleines Beispiel auch abgekupfert und vieles gelöscht worden, sonst wärs unverständlicher. Im Original habe ich keine Property MenueEbene, sondern eine die heißt Nachkommastellen. Die können im OI leicht eingestellt werden. Dies bedeutet, den Constructor dementsprechend anzupassen (auf Standardwert : 2), also eine einfache Zuweisung. In einem Abwasch kann ich nun gleich taRightJustify (wegen Zahl) beim Create setzen.

Also weiß der OI bereits ohne was ändern zu müssen, was in 99% der Fälle richtig ist und somit ist es auch überflüssig das jedesmal zu ändern. Und weils so schön ist wird natürlich noch das OnKeyPress gleich mitbehandelt. Das läßt eben nur zugelassene Zeichen zu. Und da gibts noch einiges mehr. Ist alles mit ein paar Zeilen direkt in Delphi einzubauen und keineswegs Hexerei ! Das Problem ist eben nur die Scheu vor "eigener Komponente". Siehe die geposteten 2 Zeilen (ohne Deklarationen). Schon habe ich meine MenueEbene im OI und kann die Tags in Ruhe lassen. Oft wird auch Komponente mit OI gleichgesetzt, weil viele nicht wissen was published eigentlich aussagt. Tja, wurde wieder mehr als geplant, aber ich gehe davon aus, daß weit über 90% der User nicht in der Lage wären eine einzige Eigenschaft richtig in den OI zu bekommen.
Gruß
Hansa
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#29

Re: String Entscheidungen mit case treffen!!!

  Alt 6. Apr 2006, 07:59
Ich finde, ein Thema, für einen eigenen Thread:
"Komponenten und anderes Geflügel"
wegen der Compon-Ente .
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#30

Re: String Entscheidungen mit case treffen!!!

  Alt 6. Apr 2006, 09:40
Stimmt ! Aber das ist hoffnungslos. Hier herrscht ohne Widerstand C+P. Das Geflügel wird dabei gnadenlos abgeschossen. Besonders gerne mit Kanonen oder Atombomben, also WinApi, Operatorüberladung, DLLS und sonstigen Massenvernichtungswaffen. Sogar goto habe ich schon gesehen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 14:03 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