Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Aha Momente (https://www.delphipraxis.net/211519-aha-momente.html)

jaenicke 29. Sep 2022 16:05

AW: Aha Momente
 
Ja, das stimmt. Meine Variante war auch sehr schnell.

Uwe Raabe 29. Sep 2022 16:13

AW: Aha Momente
 
Zitat:

Zitat von dummzeuch (Beitrag 1512694)
DBase ist beim Schreiben um ein Vielfaches langsamer als dieses Format

Das war auch nicht damit gemeint. dBase hat nur einen ähnlichen Dateiaufbau:
Zitat:

Zitat von dummzeuch (Beitrag 1512685)
Das ist ein File of Records, welches zusätzlich einen Header enthält, der den Record beschreibt.


himitsu 1. Okt 2022 14:08

AW: Aha Momente
 
Ein schönes Aha ist toll,
aber es geht auch andersrum. :cry:

https://quality.embarcadero.com/browse/RSP-39576
Je öfter man drauf guckt, um so schlimmer wird es.

Ich guck heute lieber nicht mehr in meine eigenen Codes.

Hatte bestimmt zu oft in der Hilfe abgeguckt. :freak:

Redeemer 5. Okt 2022 16:20

AW: Aha Momente
 
Hatte auch gerade einen Aha-Moment und bin immer noch völlig irritiert, weil man
Delphi-Quellcode:
function Wupp(Di: array of Integer): string;
auch mit einem Integer als Argument aufrufen kann, sofern es sich bei dem Integer nicht um ein Literal handelt.

Delphi-Quellcode:
function Wupp(Di: array of Integer);
begin
  Result := Wupp(Di[0]);
end;
Kompiliert (und führt zu einem Stapelüberlauf, sofern keine überladene Version für
Delphi-Quellcode:
Di: Integer
existiert).

Welchen Sinn hat das?

Uwe Raabe 5. Okt 2022 16:27

AW: Aha Momente
 
Über den Sinn zu diskutieren ist müßig.

Zumindest ist es dokumentiert:
Zitat:

Instead of an array, you can pass a variable of the open array parameter's base type. It will be treated as an array of length 1.

Redeemer 5. Okt 2022 17:01

AW: Aha Momente
 
Danke, den Artikel der Hilfe hatte ich irgendwie nicht gefunden. Hatte nach "Argumente" und nach "Methoden" gesucht.

himitsu 5. Okt 2022 17:09

AW: Aha Momente
 
Ich finde es nur nervig, wenn der Compiler immer wieder ein [1,2,3,...] als Enum interpretiert, obwohl er merken müsste, dass links vom := oder als Zieltyp des Parameters oder Operators ein Array vorgegeben ist.
Bzw. das er bei zu großen oder kleinen (negativen) Werten nicht von selber auf die Idee kommt es mal mit einem Array statt Enum zu versuchen, wo er Einem ja nur noch ein "out of range" um die Ohren werfen kann/tut.

Dass man das [] beim Aufruf weglassen kann ... Ohhh, wusste ich noch garnicht. machte mir immer die Mühe und schereibe die [ ] drumrum und verschwendete so bisher massenhafft Festplattenspeicher. :cry:

Redeemer 5. Okt 2022 17:15

AW: Aha Momente
 
Mich stört im Zusammenhang mit Enums eher, dass wie oben erwähnt Bezeichner in offene Arrays konvertiert werden, Enums aber nicht in Sets. Zum einen als Methodenparameter, zum andere beim Plus-Operator: Set + Enum geht nicht, es muss Set + Set heißen.

himitsu 5. Okt 2022 17:24

AW: Aha Momente
 
Ja, da hätte man den Operator überladen können, mit SET und ENUM.
Im Gegenzug kann man beim Include nur Einen aber nicht mehrere ENUMs verwenden. :stupid::lol:

Ich weiß nicht, ob man einen Record-Helper auch um Operatoren erweitern kann, um es selber zu machen.

Beim Array machen sie die [ implizit drum,
warum dann nicht auch bei + :?:



Ich wollte noch einen Feature-Request machen, dass der Compiler Type/Enum-Namespaces implizit einbezieht/bevorzugt.
Wenn der Compiler und CodeCompletion in einer Zuweisung := oder als Zieltyp für Paramerter und Property einen Enum/Set erkennt, warum kann er dann nicht diesen Typ als erstes in der Suchreihenfolge haben, auch implizit für ScopedEnums ... bzw. eigentlich für alle Typen, nicht nur Enums.

Amateurprofi 6. Okt 2022 18:29

AW: Aha Momente
 
Hatte kürzlich in einer (dynamisch erzeugten Form) ein THeaderControl eingefügt mit
Delphi-Quellcode:
fHeaderControl := THeaderControl.Create(Self);
Als ich dann das HeaderControl an eine bestimmte Position stellen wollte
Delphi-Quellcode:
fHeaderControl.SetBounds(L, T, W, H)
funktionierte das nicht.
Die Höhe wurde gesetzt, Left, Top, Width blieben unverändert.
Auch der Versuch, alle Parameter separat zu setzen, brachten das gleiche Resultat.
Hab dann einen längeren Thread verfasst, um Hilfe zu kriegen.
Gerade als ich "Thema erstellen" klicken wollte, erinnerte ich mich daran, dass ich mich immer geärgert hatte, wenn ich in der IDE ein HeaderControl in ein Formular eingefügt hatte, dieses am oberen Rand der Form erschien, weil Align defaultmäßig auf alTop gesetzt wird.
Ein
Delphi-Quellcode:
Align := alNone;
löste das Problem.
"Aha Moment".


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 Uhr.
Seite 3 von 5     123 45      

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