AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Delphi 7 nach Delphi 11 portieren

Ein Thema von AnonyM.E · begonnen am 13. Mai 2022 · letzter Beitrag vom 13. Mai 2022
Antwort Antwort
AnonyM.E

Registriert seit: 26. Apr 2019
11 Beiträge
 
#1

Delphi 7 nach Delphi 11 portieren

  Alt 13. Mai 2022, 10:44
Ich hoffe, dass ich hier die richtige Oberthema erwischt habe.

Fehlermeldung:
[dcc32 Fehler] Suchen.pas(233): E2010 Inkompatible Typen: 'System.TArray<System.Byte>' und 'Pointer'

Dieser betrifft diese Zeile:
frmDat.TblListe.GotoBookmark(Pointer(DBGridListe.S electedList.Items[i]));

TblListe ist eine TDBISAMTable bzw. ein normales Table-Objekt.
GotoBookmark hat als Eingangsparameter 'System.TArray<System.Byte>' und bekommt hier 'Pointer'

Meine Vermutung: Das hat mit der Umstellung auf UniCode zu tun.
Byte ist jetzt was anderes.

Wie löst man dieses Problem ?


M.E.
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
477 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Delphi 7 nach Delphi 11 portieren

  Alt 13. Mai 2022, 11:00
Ohne die Quellen zu haben, kann ich nur vermuten, dass DBGridListe.SelectedList eine TBookmark Liste ist.
Dann könnte das funktionieren:
frmDat.TblListe.GotoBookmark(TBookmark(DBGridListe.S electedList.Items[i]));
Bernd
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
628 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Delphi 7 nach Delphi 11 portieren

  Alt 13. Mai 2022, 17:51
Bookmarks laufen in neuen Unicode Delphis wesentlich anderst als noch bei D7. In D7 war TBookmark ein Pointer und TBookmarkStr ein String, in D11 ist es ein TArray<Byte> oder TBookmarkStr eine AnsiString, aber dieser sollte nicht mehr verwendet werden und Stellen an denen BookmarStr geutzt wird, sollte man nun auf TBookmark umstellen. Darf ich fragen welche Version von DBISAM du nutzt? Nehme mal an V4, weil V3 müsstes du massiv anpassen, weil es davon offiziell nie eine Unicodefahige Version gab. Ich hatte vor Jahren DBISAM 3 Unciode-tauglich gemacht, weil ich da unbedingt noch DBISAM 3 nutzen musste. War keine einfache Sache, aber hier läuft nun DBISAM 3 nun schon seit Jahren in Unicode Delphi's. Da musste ich auch so einiges umstellen, wegen den Bookmars und anderer Stellen des TDataset Interface, die von D7 deutlich verändert wurden (z.B. PChar -> TRecordBuffer). Ich denke aber das ist nicht dein Problem hier, sondern deine Komponenten die du da nutzt und die noch auf dem alten String Bookmark aufsetzen.

Was ist DBGridListe für eine Komponente und was für eine Typ ist das Items[x] da? Ein Cast auf TBookmark, wie BerndS es schreibt, könnte eventuell gehen, aber wenn die DBGridList Komponentne nicht auf die neuen TDataset Tpyen umgestellt ist, könntest du noch andere Probleme bekommen.

Geändert von Rolf Frei (13. Mai 2022 um 18:07 Uhr)
  Mit Zitat antworten Zitat
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 16:21 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