AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Autovervollständigung geht nicht

Ein Thema von Willie1 · begonnen am 15. Dez 2024 · letzter Beitrag vom 18. Dez 2024
Antwort Antwort
Seite 1 von 3  1 23      
Willie1

Registriert seit: 28. Mai 2008
667 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

Autovervollständigung geht nicht

  Alt 15. Dez 2024, 18:49
Hallo Leute,
ich bin's schon wieder.

In meinem (sehr alten) Projekt Fussball funktioniert die Autovervollständigung nicht. Wenn ich es "von Hand" mache, lässt es sich kompilieren und läuft. Ich habe hier im Forum gesucht. Es gibt einen langen Thred zu diesem Thema. Es soll an with liegen, das ich hier sehr intensiv nutze. Meine Type Deklarationen sind sehr umfangreich. Könnt ihr euch das mal im Anhang ansehen. Alle with zu entfernen, wäre extrem mühsam. Wie gesagt, das Programm läuft seit vielen Jahren stabil. Jetzt will ich es verbessern. Danke.

Willie.
Angehängte Dateien
Dateityp: txt DelphiProblem.txt (5,5 KB, 14x aufgerufen)
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Autovervollständigung geht nicht

  Alt 15. Dez 2024, 20:26
Die Codevervollständigung ist leider ein schwieriges Thema, wenn man unsaubere Quelltexte mit Kreuzbeziehungen oder with hat und eine Delphiversion mit dem neuen LSP hat.

In deiner 10.1 Starter Edition hast du aber noch die alte Codevervollständigung ohne LSP. Da sollte die Vervollständigung zumindest aufgehen. Dass sie mit with nicht immer gute Vorschläge machen kann, liegt in der Natur der Sache. Aber abgesehen davon sollte es funktionieren.

Geht denn die Auswahlliste grundsätzlich auf? Sprich was genau passiert?

Davon abgesehen bringt with aber noch weitere Probleme, weshalb man es ohnehin beseitigen sollte:
  • Debuggen funktioniert an den Stellen nicht.
  • Beim Wechsel zu einer neueren Delphiversion kann es plötzlich Fehler beim Kompilieren geben.
  • Oder noch schlimmer: Es kompiliert nach dem Wechsel, tut aber das Falsche, ohne dass man so leicht die Ursache erkennen kann.
  • Der Code ist schlechter lesbar, weil man nicht direkt sieht, wozu Identifier innerhalb des with gehhören.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
667 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

AW: Autovervollständigung geht nicht

  Alt 16. Dez 2024, 17:32
Geht denn die Auswahlliste grundsätzlich auf? Sprich was genau passiert?
Wenn ich den Punkt setze ist kurz der Sanduhr-Kringel zu sehen und dann passiert nichts.

Ich habe viele with Objekt1, Objekt2 do begin end und verschachtelte with .

In Delphi Büchern wurde with empfohlen, um Quelltext zu sparen. Aber jetzt werde ich sie sukzessive entfernen.

Ich denke, dass meine Typ Deklarationen im Vergleich zu einem professionellen Programm sicher nicht aufwändig sind.

Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Autovervollständigung geht nicht

  Alt 16. Dez 2024, 17:46
Dafür, dass WITH mehr Probleme bereitet, als es Quellcode/Speicher einspart, was selbst eine 1-buchstabige lokale Variable besser lösen würde ...

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  R: TRect;
begin
  ...
  with R do begin
    Width := Right - Right;
    Height := Bottom - Top;
  end;
end;
Was denkt du, könnte dieser Code denn machen?

Jeweils in Delphi 7 und in Delphi 10
$2B or not $2B

Geändert von himitsu (16. Dez 2024 um 18:03 Uhr)
  Mit Zitat antworten Zitat
omnibrain

Registriert seit: 11. Nov 2022
73 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Autovervollständigung geht nicht

  Alt 16. Dez 2024, 17:50
Dafür, dass WITH mehr Probleme bereitet, als es Quellcode/Speicher einspart, was selbst eine 1-buchstabige lokale Variable besser lösen würde ...
"with" ist für jemanden der erst spät und von anderen Sprachen zu Delphi kam echt das schlimmste Sprachfeature überhaupt...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Autovervollständigung geht nicht

  Alt 16. Dez 2024, 18:09
inline variables

OK, nicht der perfekte WITH-Ersatz und erst in Delphi 12.2 repariert,
Delphi-Quellcode:
irgendwas.x := 123;

with irgendwas do
  x := 123;

var i := irgendwas;
i.x := 123:


aber für FOR das Perfekteste, weil hier niermand mehr auf die saublöde Idee kommen kann, nach/außerhalb der Schleife nochmal auf i zugreifen zu wollen.
for var i := 1 to 10 do
$2B or not $2B
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
599 Beiträge
 
Delphi XE6 Enterprise
 
#7

AW: Autovervollständigung geht nicht

  Alt 17. Dez 2024, 10:52
aber für FOR das Perfekteste, weil hier niermand mehr auf die saublöde Idee kommen kann, nach/außerhalb der Schleife nochmal auf i zugreifen zu wollen.
for var i := 1 to 10 do
So ist es. Deswegen ist für mich völlig unverständlich, warum man das nicht auch für with gemacht hat.with var x := myImage1.Canvas, y := myImage2.Canvas.Brush do x.CopyRect(...); mit x und y unbekannt außerhalb des Konstruktes.

Geändert von Frickler (17. Dez 2024 um 10:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Autovervollständigung geht nicht

  Alt 17. Dez 2024, 10:56
Delphi-Quellcode:
...
begin
  var x := myImage1.Canvas;
  var y := myImage2.Canvas.Brush;
  x.CopyRect(...);
  ... // x
end;
... // kein x
$2B or not $2B
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
599 Beiträge
 
Delphi XE6 Enterprise
 
#9

AW: Autovervollständigung geht nicht

  Alt 17. Dez 2024, 10:59
Delphi-Quellcode:
begin
  var i: integer;
  for i:=1 to 10 do ...
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Autovervollständigung geht nicht

  Alt 17. Dez 2024, 11:12
Da ist i aber dennoch außerhalb des VAR zugreifbar.

Delphi-Quellcode:
begin
  var i: integer;
  for i := 1 to 10 do begin

  end;

  hier
end;
Delphi-Quellcode:
for var i := 1 to 10 do begin

end;

hier nicht
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      

 

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 15:42 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