Delphi-PRAXiS
Seite 6 von 7   « Erste     456 7      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Träume, Wünsche und Wahnvorstellungen... (https://www.delphipraxis.net/160506-traeume-wuensche-und-wahnvorstellungen.html)

geskill 18. Jul 2011 14:18

AW: Träume, Wünsche und Wahnvorstellungen...
 
Zitat:

Zitat von jaenicke (Beitrag 1112376)
Bei mir funktioniert es nur so gut wie ausschließlich bei with nicht. Und wer das nutzt ist eh selbst schuld. An anderen Stellen habe ich das Problem nur äußerst selten.

Stimmt mit dem with hat der Debugger Probleme!
Verstehe aber nicht, warum du die Benutzung so kritisch siehst, ich glaube das ist reine Geschmackssache. Ohne with weiß man zwar ohne groß zu überlegen ganz genau, zu welchem Object etwas gehört, jedoch wird dadurch auch der Code unübersichtlicher und es wirkt aufgebläht. Mit dem with ist Code wesentlich aufgeräumter und man beschränkt sich stärker auf die wesentlichen Teile.
Mir ist schon klar, dass es Probleme geben kann, wenn man die with Anweisungen verschachtelt, da nun einige Methoden überdeckt werden, aber mit geschärftem Blick sieht man dies in der Regel.

Daniel 18. Jul 2011 14:20

AW: Träume, Wünsche und Wahnvorstellungen...
 
Ich bitte darum, die "With-Diskussion" (so sie denn sein muss), in einem separaten Thema zu führen. Hier passt's streng genommen nicht her.

Stevie 18. Jul 2011 14:38

AW: Träume, Wünsche und Wahnvorstellungen...
 
Zitat:

Zitat von jaenicke (Beitrag 1112376)
Zitat:

Zitat von Stevie (Beitrag 1112364)
Sehe ich nicht so, FreeAndNil sollte man nur dann nutzen, wenn man auch an irgendeiner anderen Stelle auf Assigned prüft.

Das ist IMHO Blödsinn, denn es erschwert das Debuggen enorm, wenn aus irgendeinem Grund hinterher noch auf ein freigegebenes Objekt zugegriffen wird. Ja, klar, darf nicht sein, aber es passiert eben doch mal.

Ok, falsche Formulierung meinerseits. Ich korrigiere sie wie folgt: FreeAndNil sollte man nur dann nutzen, wenn man auch an irgendeiner anderen Stelle auf Assigned prüft darauf angewiesen ist, dass die Referenz nil ist.

himitsu 10. Aug 2011 18:41

AW: Träume, Wünsche und Wahnvorstellungen...
 
Das Schönste wäre ja, wenn Emba eine "ältere" Version kostenfrei abgeben würde.

Sobald z.B. XE2 rauskommt, könnte man doch eine "nicht upgradberechtigte", "nicht kommerziell nutzbare" und "leicht abgespeckte Proffessional ohne Quellcodes" freigeben?

Quasi grob mit den Beschränkungen vom Starter
und dafür beim Starter die schlimmsten Beschränkungen "beheben", beim Debuggen und in der Codevervollständigung (welches alles ja selbst im D7 Personal noch ging).


Und nein, nicht für mich ... IMHO ist alles unterhalb einer Prof (also Starter) nicht nutzbar.
(abgesehn von der subjektiv empfundenen IDE-Stabilität war selbst TDE noch um längen besser "nutzbar")

Stevie 10. Aug 2011 18:46

AW: Träume, Wünsche und Wahnvorstellungen...
 
Meine Wahnvorstellung: wenn Emba eine kostenlose Version MIT Quellcodes herausgeben würde - es nervt einfach, wenn Personal, Starter oder was auch immer Benutzer sich eine Masse an Fragen nicht selber beantworten können, weil sie nicht in den Source schauen können.

jaenicke 10. Aug 2011 19:11

AW: Träume, Wünsche und Wahnvorstellungen...
 
Zitat:

Zitat von himitsu (Beitrag 1116081)
Sobald z.B. XE2 rauskommt, könnte man doch eine "nicht upgradberechtigte", "nicht kommerziell nutzbare" und "leicht abgespeckte Proffessional ohne Quellcodes" freigeben?

Es wäre aber immer zusätzlicher Aufwand. Und hatte eben bei Turbo Delphi einen negativen statt eines erhofften positiven Effekts.

Zitat:

Zitat von himitsu (Beitrag 1116081)
und dafür beim Starter die schlimmsten Beschränkungen "beheben", beim Debuggen und in der Codevervollständigung (welches alles ja selbst im D7 Personal noch ging).

Das stimmt nicht. Delphi 7 Personal hatte ähnliche Einschränkungen. Keine Codenavigation, keine Klassenvervollständigung, keine Quelltexte, ...
Bei mir geht auch die Mausoverauswertung im Debugger nicht, aber das mag am virtuellen PC liegen, da ich Delphi 7 natürlich nur noch dort habe.

himitsu 10. Aug 2011 19:26

AW: Träume, Wünsche und Wahnvorstellungen...
 
Sicher daß es keine Codevervollständigung gab?
Ich war mir jetzt sicher, daß wenigstens das noch drin war. :oops:

Aber das mit den Quelltexten war mir wenigstens noch klar.



Aber als richtiger Anfänger nutzt man ja nicht viele Befehle und die findest man in einem ordentlichen Tutorial wieder.
Für die nächste Stufe hat man mit bis zu 1000€ Gewinn den Preis ja auch schnell wieder rein und bei mehr Budget/Gewinn, lohnt sich sowieso eine Prof.

Delphi-Laie 10. Aug 2011 21:25

AW: Träume, Wünsche und Wahnvorstellungen...
 
Zitat:

Zitat von jaenicke (Beitrag 1116087)
Zitat:

Zitat von himitsu (Beitrag 1116081)
Sobald z.B. XE2 rauskommt, könnte man doch eine "nicht upgradberechtigte", "nicht kommerziell nutzbare" und "leicht abgespeckte Proffessional ohne Quellcodes" freigeben?

Es wäre aber immer zusätzlicher Aufwand. Und hatte eben bei Turbo Delphi einen negativen statt eines erhofften positiven Effekts.

Für wen? Codegear/Embarcadero und/oder die Kunden/Nutzer? Und inwiefern?

Florian Hämmerle 10. Aug 2011 21:30

AW: Träume, Wünsche und Wahnvorstellungen...
 
Turbodelphi: War für damals sehr gut, man durfte kommerzielle Anwendungen schreiben, war kostenlos -> viele haben das genommen statt ne kostenpflichtige Vollversion -> Negative Auswirkung auf den Gewinn des Unternehmens. Für uns Programmierer war das ganz was Schöned :D

Namenloser 10. Aug 2011 21:34

AW: Träume, Wünsche und Wahnvorstellungen...
 
Kann ja sein, dass Turbo Delphi etwas zu freizügig war, aber Delphi Starter ist jetzt das andere extrem. Wenn es sowas wie TDE in aktueller Version gäbe für den Preis von Delphi Starter, würde ich es kaufen. Oder wenn das aktuelle Delphi Starter kostenlos wäre, würde ich es eventuell auch mal damit probieren. Aber für den Preis finde ich Starter zu sehr beschnitten.

Florian Hämmerle 10. Aug 2011 21:36

AW: Träume, Wünsche und Wahnvorstellungen...
 
Zitat:

Zitat von NamenLozer (Beitrag 1116117)
Kann ja sein, dass Turbo Delphi etwas zu freizügig war, aber Delphi Starter ist jetzt das andere extrem. Wenn es sowas wie TDE in aktueller Version gäbe für den Preis von Delphi Starter, würde ich es kaufen. Oder wenn das aktuelle Delphi Starter kostenlos wäre, würde ich es eventuell auch mal damit probieren. Aber für den Preis finde ich Starter zu sehr beschnitten.

Ja, wenn ich für die Starter was hätte zahlen müssen, hätte ich sie auch nicht genommen und wäre immer noch bei TDE. Sie müssen eben den Mittelweg finden: angenehm für Hobbyprogrammierer & Einsteiger, umständlich genug für Profis, die ihr Geld damit verdienen.

Viele Grüße,
Florian

himitsu 26. Aug 2011 19:53

AW: Träume, Wünsche und Wahnvorstellungen...
 
Helper für einfache Typen/Interfaces
und Operatoren/Generics für Helper
...
das wäre mal geil

Stevie 27. Aug 2011 12:39

AW: Träume, Wünsche und Wahnvorstellungen...
 
Zitat:

Zitat von himitsu (Beitrag 1119862)
Helper für einfache Typen/Interfaces
und Operatoren/Generics für Helper
...
das wäre mal geil

Hatten wir schon ;)

himitsu 27. Aug 2011 14:57

AW: Träume, Wünsche und Wahnvorstellungen...
 
doppelt geil? :oops:

stahli 7. Apr 2012 11:47

AW: Träume, Wünsche und Wahnvorstellungen...
 
Es wird Zeit, dass mal wieder jemand Wahnvorstellungen äußert: :stupid:

Delphi-Quellcode:
{$IFDEF standard OR professional}
      FormSchedule.ManualDock(TabSheetSchedule, nil, alNone);
      FormSchedule.Align := alClient;
      FormSchedule.Show;
{$ENDIF}
Delphi-Quellcode:
{$IFDEF (NOT standard) AND (NOT professional)}
      FormSchedule.ManualDock(TabSheetSchedule, nil, alNone);
      FormSchedule.Align := alClient;
      FormSchedule.Show;
{$ENDIF}
EDIT: Und Projektgruppen-Bedingungen, die dann für alle Projekte einer Gruppe gelten.

Thom 7. Apr 2012 13:23

AW: Träume, Wünsche und Wahnvorstellungen...
 
Da kann Dir der Osterhase ganz schnell helfen:
Delphi-Quellcode:
const
  Standard = true;
  Professional = false;

  [...]
  {$IF Standard or Professional}
  ShowMessage('Gute Wahl!');
  {$ELSE}
  ShowMessage('Pech gehabt...');
  {$IFEND}

  [...]
  {$IF (NOT standard) AND (NOT professional)}
  ShowMessage('Geizhals!');
  {$IFEND}
Zum zweiten Wunsch:
Weshalb packst Du die Bedingungen nicht in eine zentrale pas- oder was-auch-immer-Datei und lädst sie in jedem Projekt (der Gruppe) per {$INCLUDE ...}-Anweisung?

himitsu 7. Apr 2012 13:52

AW: Träume, Wünsche und Wahnvorstellungen...
 
Gibt es, zumindestens hatte ich sowas mal im D7 gesehn (glaub ich).
Ich find's nur nicht mehr. :cry:

Das war eine Funktion/Prozedur, welche aus 3 oder 4 DWORD-Werten die Personality bestimmt.
Wurde/wird von Features geprüft, welche für höhere Personalities bestimmt war, also erst bei Nutzung dieses Features, im laufenden Programm.
z.B. man kompiliert irgend ein Datenbankfeature ein, welches erst ab der Enterprise möglich ist, aber man nutzt nur 'ne Personal/Standard.

Eventuell wurde es ja ausgebaut und man löst das nun anders. :gruebel:




constants:
RTLVersion
CompilerVersion
GPL (Programm wurde so kompiliert, daß die DelphiRTL/VCL mit der GPL kompatibel ist ... stammt wohl irgendwie vom Kylix)

compiler switches:
UNICODE
PUREPASCAL
MSWINDOWS
POSIX (MACOSX or LINUX)
MACOSX
LINUX
TRIAL_EDITION (k.A. ob das jetzt auch noch gesetzt wird)



{$IFDEF TRIAL_EDITION} or {$IF Declared(System._Expired)}
_Expired; // show the state of trial licence



[edit]
ups falsch verstanden.

Delphi-Quellcode:
{$DEFINE Standard}

  {$IF Defined(Standard) or Defined(Professional)}
  ShowMessage('Gute Wahl!');
  {$ELSE}
  ShowMessage('Pech gehabt...');
  {$IFEND}

  [...]
  {$IF NOT Defined(Standard) AND NOT Defined(Professional)}
  ShowMessage('Geizhals!');
  {$IFEND}
Es gibt auch noch Declared, für Variablen, Konstanten, Typen und Funktionen/Prozeduren.

Delphi-Quellcode:
{$IF not Declared(MyProc)}
procedure MyProc;
begin
end;
{$IFEND}

Delphi-Laie 7. Apr 2012 13:58

AW: Träume, Wünsche und Wahnvorstellungen...
 
Sagt mal, liebe Leute, gibt es eigentlich inzwischen in Delphi ein {$IFDEF}DelphiXUp{$ENDIF}, das Delphi direkt unterstützt?

Dieses DelphiXUp ist nach meiner Beobachtung immer eine "zurechtgebastelte" Variable, die mit jeder neuen Delphiversion immer wieder aktualisiert werden muß (mit dem Hinzufügen eines neuen, weiteren VERXXX).

Schön wäre es (gewesen), wenn jedes Delphi von sich aus erkennen würde, ob die Version(snummer) des Compilers für den Quelltext ausreicht, anhand einer Variablen, die die Mindestvoraussetzung (ab welcher Versionsnummer) des Compilers beinhaltet.

Vielleicht gibt es das alles auch schon längst, keine Ahnung.

stahli 7. Apr 2012 14:07

AW: Träume, Wünsche und Wahnvorstellungen...
 
Oh, ich wusste nicht, dass man auch Konstanten auswerten kann...
Thom hat mir schon alle meine Träume erfüllt. :thumb:

Delphi-Quellcode:
const // global definiert, aber gut praktikabel so
  CompileModeFree = 0;
  CompileModeLight = 1;
  CompileModeStandard = 2;
  CompileModeProfessional = 3;
  CompileMode = CompileModeLight;

...

procedure TdmlStahliSport.MIPlayerStatistcsClick(Sender: TObject);
{$IF CompileMode > CompileModeFree}
var
  PanelPlayer: TodPanelPlayer;
{$IFEND}
begin
{$IF CompileMode > CompileModeFree}
  if PopupMenuPlayer.PopupComponent is TodPanelPlayer then
    begin
      PanelPlayer := PopupMenuPlayer.PopupComponent as TodPanelPlayer;
      PanelPlayer.odPlayer.Person.ExportVPEGamesOpen;
      PanelPlayer.odPlayer.Person.ExportVPEGames;
      PanelPlayer.odPlayer.Person.ExportVPEGamesClose;
    end;
{$IFEND}
end;

Thom 7. Apr 2012 15:04

AW: Träume, Wünsche und Wahnvorstellungen...
 
@Delphi-Laie:

Na ja - das "Erkennen", ob ein Feature zur Verfügung steht, besteht ja darin, daß der Compiler anfängt, mehr oder weniger lange Fehlerlisten zu produzieren. Viel schlimmer ist meines Erachtens der Umstand, daß manche Dinge bei älteren Compilerversionen anders oder (noch) fehlerhalft implementiert ist. Das betrifft zum Beispiel die richtige Auswahl überladenen Methoden oder die Behandlung von Variant-Werten. Will (oder muß) man abwärtskompatibel sein, führt meiner Meinung nach nichts am exzessiven Gebrauch von Compilerschaltern vorbei, wobei ja leider nicht alle älteren Versionen die Variable CompilerVersion unterstützen. Damit wäre es dann einfach, Delphi XE4 schon jetzt zu erkennen:
Delphi-Quellcode:
  {$IF CompilerVersion=25.0}
  ShowMessage('Jetzt habe ich es endlich!');
  {$IFEND}

@stahli:

Das freut mich! :-D

himitsu 7. Apr 2012 16:12

AW: Träume, Wünsche und Wahnvorstellungen...
 
Die Konstante CompilerVersion ist bestimmt schon recht lange vorhanden,
aber die Conditional-Expressions (
Delphi-Quellcode:
{$IF ...}
) gibt es nicht überall. (in D4 noch nicht, in D7 schon ... aber alles Ältere als D7 wird einfach ignoriert)

Ich würde mir ein
Delphi-Quellcode:
{$IFOPT ...}
für längere Schalternamen wünschen. (nicht nur für die Einbuchstabigen mit + oder -)

schöni 15. Apr 2012 17:44

AW: Träume, Wünsche und Wahnvorstellungen...
 
Was ich mir wünschen würde und was für mich ein Kaufargument wäre:

- aussagekräftigere integrierte Hilfe mit viiiieeeel mehr Beispielprogrammen zum Hilfethema.

- kommentierte Demoprogramme

- mehr Projektvorlagen zu gängigen Softwareproblemklassen

- Schlankere IDE, die dann schneller startet und Komponenten dann nachlädt, wenn ich sie auf dem Formular platziere, um die IDE schlank zu halten

- güntigeren Preis .)

schöni 15. Apr 2012 18:11

AW: Träume, Wünsche und Wahnvorstellungen...
 
Zitat:

Zitat von Stevie (Beitrag 1116083)
Meine Wahnvorstellung: wenn Emba eine kostenlose Version MIT Quellcodes herausgeben würde - es nervt einfach, wenn Personal, Starter oder was auch immer Benutzer sich eine Masse an Fragen nicht selber beantworten können, weil sie nicht in den Source schauen können.

Woraus der Wunsch resultiert, das die VCL Ouelltexte kommentiert sein mögen. :)

schöni 15. Apr 2012 18:42

AW: Träume, Wünsche und Wahnvorstellungen...
 
Zitat:

Zitat von Ralf Kaiser (Beitrag 1102096)
Noch ne "Wahnvorstellung":

Ich würde gerne beliebige Datenquellen an beliebige Controls zum Darstellen oder bearbeiten binden können.

Unter "Datenquellen" stelle ich mir dabei vor:
  • Datenbanktabellen
  • Queries
  • Informationen aus z.B. XML-Dateien
  • Delphi-Datenstrukturen (Listen, Collections, Arrays usw)

Diese Informationen sollten einfach an beliebige Controls (also nicht DBGrid, sondern einfach nur Grid) zu binden sein.

(Unter .NET geht das ja sehr gut.) In Delphi würde dabei natürlich eine gehörige Dosis RTTI im Hintergrund werkeln müssen.

Interessanter Gedanke. Aber da könnte man dann auch weiter an DBGrid binden, aber als Datenquelle auch Listen, Collections, Arrays zulassen. Das wäre glaub ich der geringste Aufwand, da ja nur paar weitere Datenquellenkomponenten zu entwickeln wären, für eben Listen, Collections, Arrays u.a.

mkinzler 15. Apr 2012 18:44

AW: Träume, Wünsche und Wahnvorstellungen...
 
Man hat das ja mit dem neuen Databinding von XE2 versucht

schöni 15. Apr 2012 18:47

AW: Träume, Wünsche und Wahnvorstellungen...
 
Zitat:

Zitat von Ralf Kaiser (Beitrag 1102125)
Zitat:

Zitat von implementation (Beitrag 1102121)
Quark - es geht darum, dass die Standard-Controls auch die Möglichkeit bekommen, z.B. mit Datenbanktabellen zu interagieren und man dazu keine speziellen DB-Controls mehr braucht.
Kurz gesagt: Mehr Funktionalität für die Standard-Controls, dann können die DB-Controls abgeschafft werden.

Es geht aber nicht nur um DBs - auch andere Datenquellen wie Stringlists, Variablen, Dateistrukturen usw. sollen auch als Datenquelle zu gebrauchen sein.

So verstehe ich das.

Und das verstehst du absolut richtig! :wink:

In .NET kann man z.B. eine Liste von Objekten eines bestimmten Typs erstellen (z.B. eine Liste von TPerson) und diese ganz einfach zur Darstellung an ein Control binden. Ein Grid würde dann für alle enthaltenen Tpersonen jeweils den Namen, Vornamen und das Alter in Spalten anzeigen und das ohne, dass man dafür irgendwelche speziellen Controls benötigt.

Die dazu nötigen Interfaces werden in .NET schon sehr früh in der Klassenhierachie definiert, sodass sich fast alles so darstellen/behandeln lässt-

Und etwas ähnliche würde ich mir für kommende VCL-Versionen wünschen (na ja, hier im Thread waren ja auch "Wünsche" und "Wahnvorstellungen" erlaubt! :wink:)

OK, auch gut, das würde dann aber nur für .NET so relativ einfach sein. Bei VCL gäbe es da meines Erachtens nach ordentlich Arbeit für Emba.

schöni 15. Apr 2012 19:21

AW: Träume, Wünsche und Wahnvorstellungen...
 
Zitat:

Zitat von Codewalker (Beitrag 1101737)
Für Delphi würde ich mir wünschen
  • Vernünftig dokumentierte API um Experten zur schreiben
  • Den Mut bei Embarcadero, mehr Vertrauen und Verantwortung in die Community zu legen. Die automatisch erzeugten Einträge in der Hilfe und der Wiki (XX.YY ist ein Member das Klasse XX) hätte man auch einfach weglassen können. Wäre ehrlicher gewesen und suggeriert nicht "da ist was" obwohl da eigentlich nix ist. Die Community und viele Einzelne haben viel, was Delphi verbessern kann (die JCL, Andreas Hausladen, das DEC .... die Liste ist lang und es gibt sicher nicht wenige in der Community, die mitmachen würden).
  • Die Sprache von der IDE zu lösen. Die Verbindung hat (im Gegensatz zu Java & Co) zur Folge, dass viele neue Features nur wenig genutzt werden, weil sie halt nicht jedem zur Verfügung stehen und nervige Fehler (z.B. der Enumerator bei den Generics) nicht für alle, sondern nur für extra-zahlende gefixt werden. Warum nicht die IDE für Euros anbieten, den Compiler gibt für OpenSource und Freeware gratis (das lockt wieder neue Leute in die Sprache, was wirklich nötig ist) und wer mit Delphi Geld verdienen will, der holt sich halt eine Compilerlizenz (meinethalben mit Laufzeit 1 Jahr, damit regelmäßig Geld in die Kassen kommt). Firmen werden es sowieso machen und werden es befürworten, nicht immer für neue Sprachfeatures gleich die IDE wechseln zu müssen.

Wenn Emba darauf eingeht, wären neue Komponenten aus dem Hause Emba gut, diese dürften billiger kommen als die komplette IDE. Wenn deshalb der Compiler kostenlos, die IDE stattdessen gegen Euros feilgeboten würde, müsste ja der Kommandozeilencompiler in der IDE angemeldet werden, wie bei Lazarus. Neue Komponenten könnten wie jetzt auch, nachträglich installiert werden, nur kämen davon dann einige aus dem Hause Embarcadero.

naja und die Traumliste:
  • Entschlackung und anschließende Standardisierung der Sprache
  • Cross-Compiling für Windows,Linux,Mac (im Smartphone-Markt ist mit einer Delphi-IDE imho nix zu holen)
  • mehr Transparenz seitens Embarcadero (z.B. verbindliche Roadmap (ich sag nur 64-Bit), mehr Präsenz in den Communities)
[/QUOTE]

Ich stimme Punkt 1 und 3 zu. Entschlackung würde die IDE schneller starten lassen. Es könnten auch erst später benötigte Teile erst dann nachgeladen werden, wenn wirklich gebraucht. Für Konsolenanwendung wird der GUI Designer nicht gebraucht.
Ob er gebraucht wird, entscheidet sich so erst nach dem Start und nach meiner Auswahl der Art der zu entwickelnden Anwendung. Analog verhält es sich mit anderen Funktionen der IDE.

delphifan2004 15. Apr 2012 20:18

AW: Träume, Wünsche und Wahnvorstellungen...
 
Zitat:

Zitat von himitsu (Beitrag 1101937)
Zitat:

Geht leider nicht, wenn GExprets installiert ist.
Bei uns geht es auch.
* Eine Delphi-Installation auf dem Server und mehrere Bernutzer eingelogt, geht ohne Probleme.
* Aber mehrmals Starten, bei einem Benutzer, bemängelte GExprets, da es seine Einstellungsdateien nicht ordentlich "sharen" kann.
Solange man aber nichts an den Einstellungen ändern, wörend es mehrfach geöffnet ist, gibt es keine merklichen Probleme.

Klingt interessant. Ich habe schon mal an Untervermietung von Delphi gedacht. Darf ich mit persönlicher Lizenz zwar nicht und ich weiß nicht, ob sich Emba zu einer solchen Lizenz überreden ließe. Aber ich träume von einer Homepage, von der aus ich gegen Entgelt die Nutzung von Delphi ermöglichen würde. Die Ordner könnten mit Steganos verschlüsselt werden, den Schlüssel plus die Nutzungserlaubnis von Delphi, dann immer die aktuelle Version gäbe es gegen Geld. Ist zar ein neues Threadthema, das ich bei Interesse gerne eröffne. Das hängt davon ab, wieviele Euronen Ihr maximal pro Monat für solch eine Nutzungserlaubnis bezahlen würdet und natürlich von Server und Lizenzkosten. Selbstverständlich müsste dann das Delphi Paket shareable sein, um Nutzerspezifische Einstellungen zu ermöglichen. Wenn letzteres noch gar nicht geht, dann steht das auf meiner Wunschliste,

ein Delphi, das sich auf einem Internetserver mit nutzerspezifischen Einstellungen installieren lässt, mit ausdrücklicher Absicht, dieses Produkt dann weiter zu vermieten, indem der Mieter sich auf der Internetseite registriert, das Nutzungsentgelt bezahlt und dann Delphi von der Webseite aus nutzen kann.

Die Frage ist allerdings, wieviele Euronen ein Programmierer bereit wäre, hierfür zu berappen. Immerhin hätte dieser dann immer ein aktuelles Delphi, verschlüsselte Ordner für seine Projekte, weitere Werkzeuge, vielleicht aufgabenabhängig und damit preislich gestaffelt und vieles mehr.

Stevie 17. Apr 2012 08:29

AW: Träume, Wünsche und Wahnvorstellungen...
 
Zitat:

Zitat von mkinzler (Beitrag 1162012)
Man hat das ja mit dem neuen Databinding von XE2 versucht

versucht ist in der Tat das richtige Wort...

himitsu 3. Jul 2012 19:05

AW: Träume, Wünsche und Wahnvorstellungen...
 
Hach, wie schön könnte das Programmiererleben doch sein. *träum*
Delphi-Quellcode:
type
  TMyClass = class interfaced(TInterfacedObject)
  private
    FAbc: Integer;
    procedure SetAbc(Value: Integer);
  public
    procedure Xyz;
    property Abc: Integer read FAbc write SetAbc; // es wird automatisch ein Getter mit Result:=FAbc; angelegt
  end;

Oder wer will es wirklich so schreiben?
Delphi-Quellcode:
type
  IIntMyClass = interface
    function GetAbc: Integer;
    procedure SetAbc(Value: Integer);
  end;
  IMyClass = interface(IIntMyClass)
    procedure Xyz;
    property Abc: Integer read GetAbc write SetAbc;
  end;

  TMyClass = class(TInterfacedObject, IMyClass)
  private
    FAbc: Integer;
    function GetAbc: Integer;
    procedure SetAbc(Value: Integer);
  public
    procedure Xyz;
    property Abc: Integer read GetAbc write SetAbc;
  end;

NickelM 4. Jul 2012 03:07

AW: Träume, Wünsche und Wahnvorstellungen...
 
Hm, ich muss zugeben, ich weis jetzt nicht ob es das schon gibt, zumindest bei nicht D2009. Und bei XE2 glaube ich auch nicht. Folgendes :
- #define "Codeabkürzungen". Wie es in C++ gibt. Beispiel wie sowas aussehen würde.

Delphi-Quellcode:
#define Dll_inport = {stdcall external "mydll.dll";} 

procedure SendHalloText; DllImport;
// "DllImport;" wird durch " stdcall external "mydll.dll"; " ersetzt. Dan würde der Code auch manchmal besser ausehen. Aufruf könnte man ja ändern war nur ein Bespiel. :-D
- "Schlauer-Compiler" : Wenn man eine Unit einbindet, und verwendet von ihr nur eine Klasse oder Prozedur erkennt das der Compiler und "packt" nur diese Prozedur in die Exe. Und nicht alle Funktionen, Klassen etc. die man sowieso nicht verwendet. Da würde das Kompilieren länger dauern aber man hätte ne kleinere Exe. Besonders bei VCL wäre das hilfreich. Dan wären VCL-Anwendungen nicht so groß :-D

- Umschalten von Unicode/Ansi, sodass man auch für Win98 noch schreiben kann und sich general den Mist mit Unicode/Ansi sparen kann (Natürlich nur bei 32bit :-D. Obwohl es denk ich kaum jemand noch gibt, der Win98 auf einen "physischen" Rechner hat.

Gru0 NickelM

jaenicke 4. Jul 2012 05:50

AW: Träume, Wünsche und Wahnvorstellungen...
 
Zitat:

Zitat von himitsu (Beitrag 1173375)
Oder wer will es wirklich so schreiben?

Ich, denn wie könnte man die Interfacedeklaration sonst in eine andere Unit schieben? :wink:
Und zumindest mir ist genau das sehr wichtig.

Stevie 4. Jul 2012 08:13

AW: Träume, Wünsche und Wahnvorstellungen...
 
Zitat:

Zitat von NickelM (Beitrag 1173420)
- "Schlauer-Compiler" : Wenn man eine Unit einbindet, und verwendet von ihr nur eine Klasse oder Prozedur erkennt das der Compiler und "packt" nur diese Prozedur in die Exe. Und nicht alle Funktionen, Klassen etc. die man sowieso nicht verwendet. Da würde das Kompilieren länger dauern aber man hätte ne kleinere Exe. Besonders bei VCL wäre das hilfreich. Dan wären VCL-Anwendungen nicht so groß :-D

Gibt's schon, nennt sich Linker und funktioniert schon seit über einer Dekade. 8-)

Teste es selbst: Schreib dir eine Funktion oder eine Klasse und benutze sie nicht in deinem Programm. Kompiliere das Programm (mit Debug Config). Schaue auf die blauen Pünktchen am linken Rand. Keine Pünktchen in den unbenutzten Teilen, weil der Linker das nicht reingepackt hat. Natürlich kann der nur rauswerfen, was wirklich nie benutzt wird, bzw was er feststellen kann. Daher werden z.B. keine öffentlichen Methoden rausgeworfen, weil die über RTTI angesprochen werden können.

himitsu 4. Jul 2012 10:53

AW: Träume, Wünsche und Wahnvorstellungen...
 
Das Problem ist/war, wenn man diese Klasse über den Initialization-Abschnitt initialisiert, dann wird sie immer "verwendet" (in Initialization), selbst wenn sie sonst nirgendwo verwendet wird.

Darum ist die VCL auch so groß, bzw. einige gehn auf NonVCL und verwenden bestimmte Units garnicht, damit die EXE klein wird.

Aber: Es gibt seit einer Weile den
Delphi-Quellcode:
class constructor
, bzw.
Delphi-Quellcode:
class destructor
... wenn alle dort das machen würde, was sie sonst in "Initialization" machen würden, dann würde vieles wirklich nicht mehr eingebunden, wenn es nicht gebraucht wird.

Was da leider noch fehlt, ist, daß man bei Ressourcen nicht differenzieren kann und es wird immer alles in die EXE gelinkt, was irgendwo im Quellcode gefunden wird, selbst wenn z.B. die Klasse garnicht verwendet/eingelinkt wurde, für welche diese Resource (RES) gedacht war. :cry:


@jaenicke: Das Alte/Normale muß natürlich erhalten bleiben, aber wenn ich nur programmintern mehrere Interfaces brauche, dann muß ich auch immer alle Header/Implementationen doppelt schreiben.
In soeinem Fall wäre es eben schön, wenn man sich aus allen public/published-Eigenschaften ein Interface generieren lassen könnte
Delphi-Quellcode:
type
  TMyClass = class interfaced(TInterfaceObject) // dafür markieren, daß automatisch ein Interface generiert werden kann, bzw. es wird sofort generiert und später nur zugewiesen, beim OF
    ...
  end;
  IMyInterface = interface of TMyClass;


  IMyInterface2 = interface of TMyClass2;; // per Forward?
  TMyClass2 = class(TInterfaceObject)
    ...
  end;


  IMyInterface3 = interface of TMyClass3;; // per Forward und manuell
  TMyClass3 = class(TInterfaceObject, IMyInterface3)
    ...
  end;

stahli 24. Sep 2012 23:26

AW: Träume, Wünsche und Wahnvorstellungen...
 
Liste der Anhänge anzeigen (Anzahl: 1)
[FireMonkey]
Die FM-Controls haben eine Eigenschaft "HitTest", mit der man die Controls einfach "mausdurchlässig" machen kann. :thumb:

Auch gibt es die Eigenschaft "EnableDragHighlight", mit der man den automatischen Rahmen bei DragOver abschalten kann (im Bild das innere Panel).
Optisch ist das nicht schlecht, DragOver und DragDrop wird dennoch behandelt.

Bei verschachtelten Controls (z.B. Styles) wäre es schön, wenn man "HitTestDrop" deaktivieren könnte (z.B. für die SubControls).
Dann würde auf DragOver immer das "MainControl" reagieren, aber auf Mouseover und Klicks könnten ggf. auch die Subcontrols reagieren.

Ich würde das für eine sehr nützliche Funktion halten, die eine sehr viel genauere GUI-Gestaltung ermöglichen würde...
[/FireMonkey]

geskill 3. Okt 2012 23:56

AW: Träume, Wünsche und Wahnvorstellungen...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Gerade bisschen verträumt am Programmieren da passiert doch glatt sowas:

Delphi-Quellcode:
FIcon := TIcon.Create.Handle := GetIconHandle;


Erst als der Compiler meckerte habe ich den Fehler gemerkt. jaja :wink:

stahli 12. Mai 2013 10:53

AW: Träume, Wünsche und Wahnvorstellungen...
 
Es wäre schön, wenn die IDE Methoden im Implementationsabschnitt immer in der gleichen Reihenfolge halten würde, wie sie in den Klassendefinitionen im Interfaceabschnitt definiert werden.
Wenn man dort die Reihenfolge ändert sollte dies auch im Quelltext angepasst werden (optional auf Shortcut).

sx2008 28. Mai 2013 10:34

AW: Träume, Wünsche und Wahnvorstellungen...
 
Ich wünsche mir die If-Funktion:
Delphi-Quellcode:
// fiktive Berechnung als Beispiel
Zinssatz := (if premiumkunde then Basiszins*0.9 else Basiszins+0.75) - rabattzins;
Und natürlich gleich noch die Case-Funktion dazu:
Delphi-Quellcode:
ShowMessage('Sie haben '+
  (case idx of 1:'Nichts' 2:'Grass' 3:'Wasser' 4:'Felsen' else 'unbekannt') + 'angeklickt');
Man beachte dass man immer den Else-Teil schreiben muss; andernfalls wäre es ein Fehler.

Der schöne Günther 28. Mai 2013 11:00

AW: Träume, Wünsche und Wahnvorstellungen...
 
Das erste ist doch genau der ternäre Operator aus C!

Code:
zinssatz = (premiumkunde ? Basiszins*0.9 : Basiszins+0.75) - rabattzins:
Ich habe ihn in den ersten Tagen Delphi auch vermisst, mittlerweile bin ich wirklich froh, den nicht mehr sehen zu müssen. Lieber ein, zwei Zeilen mehr. Dafür erkennt man später in der Hälfte der Zeit, was im Code vor sich geht.

knochen 28. Mai 2013 11:00

AW: Träume, Wünsche und Wahnvorstellungen...
 
Zitat:

Zitat von sx2008 (Beitrag 1216691)
Ich wünsche mir die If-Funktion:
Delphi-Quellcode:
// fiktive Berechnung als Beispiel
Zinssatz := (if premiumkunde then Basiszins*0.9 else Basiszins+0.75) - rabattzins;

Gibt's schon. Such mal nach der IfThen-Funktion. Die existiert in überladener Form gleich in mehreren Units.

Zitat:

Zitat von sx2008 (Beitrag 1216691)
Und natürlich gleich noch die Case-Funktion dazu:
Delphi-Quellcode:
ShowMessage('Sie haben '+
  (case idx of 1:'Nichts' 2:'Grass' 3:'Wasser' 4:'Felsen' else 'unbekannt') + 'angeklickt');
Man beachte dass man immer den Else-Teil schreiben muss; andernfalls wäre es ein Fehler.

Auch das kann man leicht selbst schreiben.
Delphi-Quellcode:
function MyCase(idx: Integer; Values: Array of Integer): Integer;
function MyCase(idx: Integer; Values: Array of String): String; overload;
...etc.
Ggf. kann man noch einen Else-Wert übergeben, wenn gewünscht auch als optionalen Parameter.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:51 Uhr.
Seite 6 von 7   « Erste     456 7      

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