AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Compilerschalter der Autoformat verhindert

Ein Thema von norwegen60 · begonnen am 4. Feb 2021 · letzter Beitrag vom 5. Feb 2021
Antwort Antwort
Seite 1 von 2  1 2   
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
504 Beiträge
 
Delphi 12 Athens
 
#1

Compilerschalter der Autoformat verhindert

  Alt 4. Feb 2021, 16:47
Hallo zusammen,

gibt es eine Möglichkeit einzelne Blöcke gegen Autoformat [CTRL-D] zu schützen

Ich habe hier eine Sortierung einer Objectlist die sähe lesbar so aus

Delphi-Quellcode:
begin
  Sort(TComparer<TStandardName>.Construct(
  function(const Value1, Value2: TStandardName): Integer
  begin
    if (Value1.Nr = 0) then // Verhindern, dass Datensatz 0 sortiert wird
      Result := -1
    else if (Value2.Nr = 0) then // Verhindern, dass Datensatz 0 sortiert wird
      Result := 1
    else if (Value1.Name = Value2.Name) then // Bei gleichen Namen nach Nr sortieren
      Result := Value1.Nr - Value2.Nr
    else if (Value1.Name > Value2.Name) then
      Result := 1
    else
      Result := -1;
  end));
end;
und nach [CTRL-D ] so
Delphi-Quellcode:
begin
  Sort(TComparer<TStandardName>.Construct( function(const Value1, Value2: TStandardName): Integer begin if (Value1.Nr = 0) then
    // Verhindern, dass Datensatz 0 sortiert wird
    Result := -1 else if (Value2.Nr = 0) then // Verhindern, dass Datensatz 0 sortiert wird
    Result := 1 else if (Value1.Name = Value2.Name) then // Bei gleichen Namen nach Nr sortieren
    Result := Value1.Nr - Value2.Nr else if (Value1.Name > Value2.Name) then Result := 1 else Result := -1; end));
end;
Grüße und Danke
Gerd
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
709 Beiträge
 
Delphi XE5 Professional
 
#2

AW: Compilerschalter der Autoformat verhindert

  Alt 4. Feb 2021, 16:56
Bei XE5:
Tools --> Optionen --> Formatierung --> Profile und Status:
dort Kästchen „Formatierung aktivieren“ wegklicken (= deaktivieren)

Gruß, Andreas
PS:
Du kannst darüber hinaus noch Folgendes einstellen, um vorzeitige Zeilenumbrüche zu vermeiden:
Tools --> Optionen --> Anzeige:
Option „Rechter Rand“ auf einen hohen Wert (z.B. 200) setzen.
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)

Geändert von Andreas13 ( 4. Feb 2021 um 17:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.934 Beiträge
 
Delphi 12 Athens
 
#3

AW: Compilerschalter der Autoformat verhindert

  Alt 4. Feb 2021, 17:09
gibt es eine Möglichkeit einzelne Blöcke gegen Autoformat [CTRL-D] zu schützen
Hinter jede Zeile ein // setzen. Mit der Option Zeilenendekommentare ausrichten sieht das dann so aus:
Miniaturansicht angehängter Grafiken
04-02-_2021_17-07-09.png  
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: Compilerschalter der Autoformat verhindert

  Alt 4. Feb 2021, 17:12
Mein Optimizer würde aktuell das draus machen:

Delphi-Quellcode:
begin
  Sort(TComparer<TStandardName>.Construct(
                                  function(const Value1, Value2: TStandardName): Integer
                                  begin
                                    if (Value1.Nr = 0) then // Verhindern, dass Datensatz 0 sortiert wird
                                    Result := -1
                                    else if (Value2.Nr = 0) then // Verhindern, dass Datensatz 0 sortiert wird
                                    Result := 1
                                    else if (Value1.Name = Value2.Name) then // Bei gleichen Namen nach Nr sortieren
                                    Result := Value1.Nr - Value2.Nr
                                    else if (Value1.Name > Value2.Name) then
                                      Result := 1
                                    else
                                      Result := -1;
                                  end));
end;
Auch noch nicht ganz passend, aber an ein paar Stellen könnte man noch drehen.
Aber es wäre dann halt ein kompletter Ersatz des Formatierers und derzeit nur für die aktuellste Delphi-Version möglich.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.058 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Compilerschalter der Autoformat verhindert

  Alt 4. Feb 2021, 17:14
Da hat jemand aber die Einstellung vom Autoformatter kaputtgespielt.
Denn keine der drei Default-Formater_*.config-Dateien in C:\Users\Dein_User_Name\AppData\Roaming\Embarcader o\BDS\Deine_IDE_Nummer formatiert das so um.

Vielleicht die Einstellung zurücksetzen an der ersten von Andreas benannten Stelle (Restore defaults).
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Compilerschalter der Autoformat verhindert

  Alt 4. Feb 2021, 17:19
Da hat jemand ...
Mein Optimizer



Zitat:
Delphi-Quellcode:
    if (Value1.Nr = 0) then // Verhindern, dass Datensatz 0 sortiert wird
      Result := -1
    else if (Value2.Nr = 0) then // Verhindern, dass Datensatz 0 sortiert wird
      Result := 1
"mach nichts" heißt doch eigentlich 0?
Delphi-Quellcode:
    if (Value1.Nr = 0) or (Value2.Nr = 0) then // Verhindern, dass Datensatz 0 sortiert wird
      Result := 0

PS:
Delphi-Quellcode:
  Sort(TComparer<TStandardName>.Construct(
    function(const Value1, Value2: TStandardName): Integer
    begin
      if (Value1.Nr = 0) or (Value2.Nr = 0) then // Verhindern, dass Datensatz 0 sortiert wird
        Result := 0
      else if SameStr(Value1.Name, Value2.Name) then
        Result := CompareValue(Value1.Nr, Value2.Nr)
      else
        Result := CompareStr(Value1.Name, Value2.Name);
    end));

  // der erste Kommentar ist klar, aber der Zweite ist nutzlos.
  // "Bei gleichen Namen" steht lesbar direkt davor, vor allem wenn man IF-SameStr nutzen würde
  // und "nach Nr sortieren" kommt schön sichtbar gleich nach dem THEN

  // bzw.
  Sort(TComparer<TStandardName>.Construct(
    function(const Value1, Value2: TStandardName): Integer
    begin
      if (Value1.Nr = 0) or (Value2.Nr = 0) then
        Exit(0); // Verhindern, dass Datensatz 0 sortiert wird
      Result := CompareStr(Value1.Name, Value2.Name);
      if Result = 0 then
        Result := CompareValue(Value1.Nr, Value2.Nr);
    end));
// Eventuell AnsiCompareStr statt CompareStr ... aber damit man das Schema besser erkennt
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 4. Feb 2021 um 17:37 Uhr)
  Mit Zitat antworten Zitat
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
504 Beiträge
 
Delphi 12 Athens
 
#7

AW: Compilerschalter der Autoformat verhindert

  Alt 4. Feb 2021, 17:36
Danke für die schnellen Rückantworten. Grundsätzlich gilt, dass ich mit der Formatierung weitestgehens einverstanden bin. Das Verhalten tritt nur bei dem Sort auf.
Die Formatierung grundsätzlich zurück zu setzen ist deshalb keine Option

Die Idee mit den Kommantarzeichen hatte ich ja auch. Er hatte es aber trotzdem verschossen (siehe mein Eingangspost)

Jetzt, aber wo ich wirklich hinter jede Zeile eine Kommentar gesetzt hab wird es gut formatiert

Delphi-Quellcode:
 
  Sort(TComparer<TStandardName>.Construct( //
    function(const Value1, Value2: TStandardName): Integer //
  begin //
    if (Value1.Nr = 0) then // Verhindern, dass Datensatz 0 sortiert wird
    Result := -1 //
  else if (Value2.Nr = 0) then // Verhindern, dass Datensatz 0 sortiert wird
    Result := 1 //
  else if (Value1.Name = Value2.Name) then // Bei gleichen Namen nach Nr sortieren
    Result := Value1.Nr - Value2.Nr //
  else if (Value1.Name > Value2.Name) then //
    Result := 1 //
  else //
    Result := -1; //
  end));
Ich muss dazu sagen, dass es Delphi XE war. Vielleicht ist 10 da schon etwas besser.
Und ich hatte gehofft, dass es vielleicht einen Schalter ähnlich den Compilerschaltern gibt, mit dem man AutoFormat Bereichsweise aussparen kann

Danke trotzdem. Für mich ist das Problem gelöst
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.934 Beiträge
 
Delphi 12 Athens
 
#8

AW: Compilerschalter der Autoformat verhindert

  Alt 4. Feb 2021, 17:39
Ich muss dazu sagen, dass es Delphi XE war. Vielleicht ist 10 da schon etwas besser.
Das wäre schon eine wichtige Information gewesen. Und ja, es ist deutlich besser geworden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
504 Beiträge
 
Delphi 12 Athens
 
#9

AW: Compilerschalter der Autoformat verhindert

  Alt 4. Feb 2021, 17:44
Ja, das stimmt
In Wirklichkeit sind die Kommentarzeichen auch noch untereinander. Beim Übertrag hier her ging das aber verloren

Danke
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Compilerschalter der Autoformat verhindert

  Alt 4. Feb 2021, 17:55
Hinter jede Zeile ein // setzen.
Ahh. Cool. Muss ich mir merken.

Schön wäre es, wenn man den Formatter so einstellen könnte, dass nur die Function/Procedure, in der sicher Cursor grade befindet, formatiert wird.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:25 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