AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch Was nervt euch so, während der Programmierung oder so allgemein
Thema durchsuchen
Ansicht
Themen-Optionen

Was nervt euch so, während der Programmierung oder so allgemein

Ein Thema von himitsu · begonnen am 26. Jun 2010 · letzter Beitrag vom 3. Mai 2013
Thema geschlossen
Seite 25 von 192   « Erste     15232425 26273575125     Letzte »    
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#241

AW: Was nervt euch so, wärend der Programmierung.

  Alt 9. Jun 2011, 00:12
Ich bin mir nicht sicher, ob die Intention des Threadstarters sich auf sprachliche Unzulänglichkeiten bezog oder ob er so, die Umstände am Arbeitsplatz meinte.
Michael
Ein Teil meines Codes würde euch verunsichern.
 
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#242

AW: Was nervt euch so, wärend der Programmierung.

  Alt 9. Jun 2011, 00:27
Daß die Generics unbedingt die Vererbungslinie schrotten müssen, bzw. daß die gernerischen Basisklassen mit den "Alten" nichts gemeinsam haben
[...]
Hmm, sieht für mich erst einmal wenig sinnvoll aus. Wofür braucht man das?
Delphi-Quellcode:
type
  TCar = class(TRoadUser)
  public
    procedure honk;
  end;

type
  TTruck<T: TCargo> = class(TCar)
  public
    procedure store(cargo: T);
    function load: T;
  end;
Wenn ich das jetzt richtig verstanden habe, kann man jetzt nicht feststellen, ob TTruck<TStandardPacket> ein TCar ist um dann honk aufzurufen (Könnte ja auch ein Fußgänger ohne Hupe sein)
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
 
Benutzerbild von stahli
stahli

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

AW: Was nervt euch so, wärend der Programmierung.

  Alt 9. Jun 2011, 01:06
Das wird etwas speziell für diesen Thread, aber mal kurz:
TTruck ist keine Ableitung von TCar sondern direkt eine Ableitung von TObject.
Man kann den daher Track z.B. nicht an eine Methode übergeben, die ein Car verlangt.
Hier gab es mal etwas dazu (mein Beispiel in #13).
Man kann also bestehende Klassen nicht generisch erweitern, sondern "nur" neue generische Klassen erzeugen (mit meinen Worten).
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
 
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#244

AW: Was nervt euch so, wärend der Programmierung.

  Alt 9. Jun 2011, 01:08
TTruck ist keine Ableitung von TCar sondern direkt eine Ableitung von TObject.
Man kann den daher Track z.B. nicht an eine Methode übergeben, die ein Car verlangt.
Ich vermute ja, dass es das ist, was himitsu bemängelt.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.

Geändert von BUG ( 9. Jun 2011 um 01:11 Uhr)
 
Benutzerbild von himitsu
himitsu

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

AW: Was nervt euch so, wärend der Programmierung.

  Alt 9. Jun 2011, 01:12
[edit]
jupp
[/edit]

Nja wenn, dann könnte man von Klassen ableiten, dieser erweitern und bliebe dennoch kompatibel zur Vorgängerklasse > Vererbung.

In meinem Fall wollte ich gerne mehrere Klassen nachträglich erweitern.
> wie z.B. TEdit, TMemo und Co.
Überschreiben wollte ich aber nur funktionen, welche schon in TWinControl vorhanden und somit überll gleich sind, on der Signatur her.
Nun muß ich aber jede Klasse einzeln erweitern, wo es einmal auch gereicht hätte.

Delphi-Quellcode:
type
  TMyGen<T: TCustomEdit> = class(T)
  protected
    function GetText: String; override;
  end;

  TMyEdit = TMyGen<TEdit>;
  TMyMemo = TMyGen<TMemo>;
Sowas geht ja eben auch nicht, da TMyGen<> kein Nachfahre von TEdit ist, obwohl man das glauben könnte.
Delphi-Quellcode:
type
  TMyGen<T> = class(TEdit)
  end;
Aber dafür bräuchte man eben einen Compiler, welcher nicht nur einmal durch den Code rauscht, also "weit" vorausschauend arbeiten kann,
bzw. welcher die Generics nicht gleich versucht in Code umzusetzen, sondern ihn eher als Macro interpretiert und dann später erst fertig compiliert, also bei dessen Nutzung.
Makros im Allgemeinen wären ja auch noch sooooo schlecht.

@Luckie:
Zitat:
egal ob es mit der/einer Programmiersprache zu tun hat oder nur allgemein mit dem Programmieren oder etwas damit Zusammenhängendem zu tun hat.
$2B or not $2B

Geändert von himitsu ( 9. Jun 2011 um 01:14 Uhr)
 
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#246

AW: Was nervt euch so, wärend der Programmierung.

  Alt 9. Jun 2011, 01:54
@BUG und stahli:

Doch, in dem Fall ist TTruck<TStandardPacket> von TCar abgeleitet und man kann auch ganz normal auf alle TCar Methoden/Properties zugreifen.

TList<T> ist nur deshalb kein Nachfahre von TList, weils einfach nicht davon abgeleitet ist, sondern von TEnumerable<T> (und das von TObject)

In Delphi geht es nunmal nicht so einfach, dass man einen generischen Typen von einem nicht generischen Typen ableitet, da Delphi nunmal keinen root type hat. Man kann es nachbilden bis zu einem gewissen Grad, aber was machst du, wenn du ne TList<IMyInterface> hast und das als TList übergibst, wo jedes Element nur nen Pointer ist? Was ist mit der Referenzzählung? Was passiert bei anderen Datentypen... etc

@Himitsu:

Das nennt man Covarianz (die in Delphi fehlt) und ich glaube, das hab ich auch im "Wünsch dir was" Thread aufgeführt

Was du vor hast, klingt nett, hat aber nix mit Generics zu tun, wie sie allgemein funktionieren. Ein Typenparameter steuert niemals die Vererbungshierarchie.
TFoo<TButton> wäre covariant zu TFoo<TWinControl> (du kannst in diesem Fall ohne Probleme nen hardcast machen und alles funktioniert weiterhin)

Wäre die Definition aber TFoo<T> = class(T) dann wäre der Vorgänger von TFoo<TButton> nämlich TButton von TFoo<TWinControl> wäre es TWinControl, womit die beiden generischen Typen nicht mehr covariant wären.

Was du willst, sind Extensions wie es sie in .Net gibt.

Sowas geht ja eben auch nicht, da TMyGen<> kein Nachfahre von TEdit ist, obwohl man das glauben könnte.
Delphi-Quellcode:
type
  TMyGen<T> = class(TEdit)
  end;
Stimmt nicht, obiger Code ist völlig in Ordnung.
Zu dem anderen Beispiel, warum nicht das?
Delphi-Quellcode:
type
  TMyGen<T: TCustomEdit> = class(TCustomEdit)
   protected
     function GetText: String; override;
   end;
Um das Thema zu vertiefen, würd ich dazu raten, einen seperaten Thread zu eröffnen.

@Luckie:
Mich nervt es, wen manche Entwickler immer direkt losprogrammieren, ohne zu recherchieren, ob es diese Funktionalität in irgendeiner Funktion oder Unit schon gibt und für alles das Rad x-mal neu erfunden wird, weil man entweder zu blöd oder zu faul zum suchen ist.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie ( 9. Jun 2011 um 01:59 Uhr)
 
Benutzerbild von himitsu
himitsu

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

AW: Was nervt euch so, wärend der Programmierung.

  Alt 9. Jun 2011, 10:14
Was am Meisten nervt, sind die vielen und sehr aussagekräftigen Fehlermeldungen, wo man wenigstens noch einen Hinweis bekommt, was man wo beheben könnte.
Zitat:
[Window Title]
Fehler

[Content]
Initialization Error:
Verzeichnis kann nicht erstellt werden

[OK]
Das kommt seit heut in meinem Delphi, wenn ich es starte.
$2B or not $2B
 
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#248

AW: Was nervt euch so, wärend der Programmierung.

  Alt 9. Jun 2011, 11:13
Was mich nervt, ist der Installer, der jedes mal erscheint, wenn ich das erste mal nach einem Neustart kompilieren möchte. Habe das jetzt schon seit Jahren. Zwischendrin war es ein paar mal verschwunden (ob meine vergeblichen Reparaturversuche und Neuinstallationen etwas damit zu tun hatten weiß ich nicht), aber nach einer gewissen Zeit kam es immer wieder. Inzwischen habe ich es aufgegeben.
 
Benutzerbild von p80286
p80286

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

AW: Was nervt euch so, wärend der Programmierung.

  Alt 9. Jun 2011, 12:34
Was mich nervt, ist der Installer, der jedes mal erscheint, wenn ich das erste mal nach einem Neustart kompilieren möchte. Habe das jetzt schon seit Jahren. Zwischendrin war es ein paar mal verschwunden (ob meine vergeblichen Reparaturversuche und Neuinstallationen etwas damit zu tun hatten weiß ich nicht), aber nach einer gewissen Zeit kam es immer wieder. Inzwischen habe ich es aufgegeben.
Da bist du nicht alleine!
Gibt's da keine Möglichkeit das zu unterbinden?

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

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

AW: Was nervt euch so, wärend der Programmierung.

  Alt 9. Jun 2011, 12:37
So etwas hatte ich nie. Habt Ihr irgendwelche Ordner verbogen oder so?
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
 
Thema geschlossen
Seite 25 von 192   « Erste     15232425 26273575125     Letzte »    


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:

(?)

LinkBack to this Thread

Erstellt von For Type Datum
Untitled document This thread Refback 7. Nov 2011 10:54

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:45 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