AGB  ·  Datenschutz  ·  Impressum  







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

Nochmal Komponenten und Delphi 12

Ein Thema von Willie1 · begonnen am 21. Jun 2025 · letzter Beitrag vom 24. Jun 2025
Antwort Antwort
Willie1

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

Nochmal Komponenten und Delphi 12

  Alt 21. Jun 2025, 19:11
Hallo Freunde/innen,

ich wollte in meinem Programm noch schnell zwei RadioGroups durch zwei ComboBoxen ersetzen. Sieht besser aus und ist funktionaler. Aber mit schnell ist nicht.

Sobald ich ComboBox auf der Hauptseite einfüge, crasht es hier in einem anderen Fenster:
Delphi-Quellcode:
  TEg = string[3];
  TErgeb = record
                  Ergeb: TEg;
                  SptNr: Byte;
                  WoTag: Byte; {Spieltag in der Woche unbekannt=0 1=Fr, 2=Sa ...7=Do}
                end;
Delphi-Quellcode:
type
  TErgebEing = class
    Erg: TErgeb;//<-----------------------
  private
    procedure SetErgebn(Zei,Spa: Integer; Eg: TErgeb);
  public
    property Setzen[Z,S: Integer]: TErgeb write SetErgebn; default;
  end;
Ich habe es gerade bei Delphi 10 ausprobiert. Da kann ich ohne Problem RadioBox durch ComboBox ersetzen. Ich kann auch überhaupt nicht den Zusammenhang sehen.

Nur zur Nachlese: Ich habe mit Delphi 10 und eingeschalteter Bereichsüberprüfung erfolgreich kompilieren können. Aber Das Fass ist für mich zu.

Es bestehen offensichtlich doch große Unterschiede zw. D10 und d12.

Gruß Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
GueAck

Registriert seit: 12. Jun 2009
11 Beiträge
 
Delphi 12 Athens
 
#2

AW: Nochmal Komponenten und Delphi 12

  Alt 21. Jun 2025, 22:01
Hallo,

"Crash" verstehe ich so, dass zur Laufzeit ein Abbruch passiert. Die Komponente Combobox arbeitet wahrscheinlich sehr, sehr korrekt. Ich schätze, es gibt in Deinem Programm noch Bezüge auf die gelöschten Radioboxen und vermutlich sind diese auch noch irgendwo deklariert, auch wenn sie von dem Form weg sind. Ich hatte ähnliche Probleme mit einer älteren Delphi-Version auch mal nach einer umfangreichen Löscherei.

Suche mal (mit einem externen Tool!) in allen (ja, allen) Dateien im Projekt nach den Namen der gelöschten Radiogroups.

Gruß
GuaAck

Hallo Freunde/innen,

ich wollte in meinem Programm noch schnell zwei RadioGroups durch zwei ComboBoxen ersetzen. Sieht besser aus und ist funktionaler. Aber mit schnell ist nicht.

Sobald ich ComboBox auf der Hauptseite einfüge, crasht es hier in einem anderen Fenster:
Delphi-Quellcode:
  TEg = string[3];
  TErgeb = record
                  Ergeb: TEg;
                  SptNr: Byte;
                  WoTag: Byte; {Spieltag in der Woche unbekannt=0 1=Fr, 2=Sa ...7=Do}
                end;
Delphi-Quellcode:
type
  TErgebEing = class
    Erg: TErgeb;//<-----------------------
  private
    procedure SetErgebn(Zei,Spa: Integer; Eg: TErgeb);
  public
    property Setzen[Z,S: Integer]: TErgeb write SetErgebn; default;
  end;
Ich habe es gerade bei Delphi 10 ausprobiert. Da kann ich ohne Problem RadioBox durch ComboBox ersetzen. Ich kann auch überhaupt nicht den Zusammenhang sehen.

Nur zur Nachlese: Ich habe mit Delphi 10 und eingeschalteter Bereichsüberprüfung erfolgreich kompilieren können. Aber Das Fass ist für mich zu.

Es bestehen offensichtlich doch große Unterschiede zw. D10 und d12.

Gruß Willie.
  Mit Zitat antworten Zitat
Willie1

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

AW: Nochmal Komponenten und Delphi 12

  Alt 22. Jun 2025, 10:54
Guten Morgen,

Zitat:
[dcc32 Fehler] Fussball_Ergeb.pas(11): E2217 Published-Feld 'Erg' ist weder vom Typ class noch interface
ich war noch die Fehlermeldung schuldig. Ich habe mich missverständlich ausgedrückt. Nein das Projekt lässt sich nicht kompilieren. Ich habe eine ComboBox abgelegt und die Items benannt. Sie hat noch keine Funktionalität.

Ich habe es:
Delphi-Quellcode:
type
  TErgebEing = class
  private
    Erg: TErgeb;
    procedure SetErgebn(Zei,Spa: Integer; Eg: TErgeb);
  public
    property Setzen[Z,S: Integer]: TErgeb write SetErgebn; default;
  end;
So ist es richtig! Der D10 Compiler hat es akzeptiert, D12 nicht. Aber warum es erst ging und dann plötzlich nicht, weiß ich allerdings nicht. Vielleicht wurde es erst jetzt neu kompiliert.

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

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
703 Beiträge
 
Delphi 12 Athens
 
#4

AW: Nochmal Komponenten und Delphi 12

  Alt 22. Jun 2025, 12:59
Erg: TErg; ist schlicht am falschen Ort deklariert, dies sollte auch in D10 nicht funktioniert haben.
Delphi-Quellcode:
type
  TErgebEing = class
    Erg: TErgeb;//<-----------------------
  private
    procedure SetErgebn(Zei,Spa: Integer; Eg: TErgeb);
  public
    property Setzen[Z,S: Integer]: TErgeb write SetErgebn; default;
  end;
So ist es korrekt.
Delphi-Quellcode:
type
  TErgebEing = class
  private
    Erg: TErgeb;
    procedure SetErgebn(Zei,Spa: Integer; Eg: TErgeb);
  public
    property Setzen[Z,S: Integer]: TErgeb write SetErgebn; default;
  end;
Roland
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Nochmal Komponenten und Delphi 12

  Alt 22. Jun 2025, 17:03
Und jemand hat auch noch am {$M} bzw. {$TYPEINFO} rumgepfuscht.

Normal ist die Standard-Sichbarkeit PUBLIC,
es sei denn jemand aktiviert das vorher und sie ändert sich zu PUBLISHED.

Und für PUBLISHED sind nunmal gewisse höhere Typen "verboten", da dort standardmäßig keine Serialisierung für vorhanden ist.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (22. Jun 2025 um 17:08 Uhr)
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
733 Beiträge
 
Delphi 10.1 Berlin Starter
 
#6

AW: Nochmal Komponenten und Delphi 12

  Alt Gestern, 09:08
Und jemand hat auch noch am {$M} bzw. {$TYPEINFO} rumgepfuscht.
Wenn überhaupt, dann unbewusst. Vielleicht hatte D10 eine andere Standart-Einstellung.
Irgentwas class
Wenn ich hier was rein schreibe, knallt es jetzt.
Bei Delphi 10 hat es funktioniert.
private
...
public
...
end;

Es fällt mir auf, dass das Programm sich hetzt auch mit Bereichscjeck kompilieren lässt. Die kleine Komponente ClrGrid, deren Quelltext ich offen gelegt hatte, macht keine Probleme mehr, wenn ich hinter class vor private nichts mehr hinein schreibe.

Willie.

Eigentlich soll man es NICHT machen:[dcc32 Warnung] Fussball_ErgebRueckr.pas(732): W1050 WideChar in Set-Ausdrücken auf ByteChar verkürzt. Ziehen Sie die Verwendung der Funktion 'CharInSet' aus der Unit 'SysUtilsin Betracht. Ich meine, in einem früheren Thread gelesen zu haben, dass man diese Warnung getrost ignorieren kann?!
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.

Geändert von Willie1 (Gestern um 09:19 Uhr) Grund: Nachsatz
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz