AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TStringAlignGrid Andreas Hörstemeier/Delphi2009 oder 2010
Thema durchsuchen
Ansicht
Themen-Optionen

TStringAlignGrid Andreas Hörstemeier/Delphi2009 oder 2010

Ein Thema von gullatrulla · begonnen am 29. Sep 2009 · letzter Beitrag vom 13. Jun 2013
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
gullatrulla

Registriert seit: 11. Mai 2004
Ort: Malans (Schweiz)
43 Beiträge
 
Delphi 11 Alexandria
 
#1

TStringAlignGrid Andreas Hörstemeier/Delphi2009 oder 2010

  Alt 29. Sep 2009, 16:25
Hi Delphi-Folks

Ich benutze seit Jahren die Komponente TStringAlignGrid von Andreas Hörstemeier.
Leider wird diese Komponente laut Andreas nicht mehr weiterentwickelt.
Die aktuelle Version ist aus dem Jahre 2001(!) und hat bis Delphi 2007 einwandfrei
funktioniert.

Nun überlege ich mir von Delphi 2007 auf Delphi 2010. Doch nun scheitere ich bei
Delphi 2010 an der Kompilierung dieser Komponente.

Es wären dutzende Projekte welche ich ändern müsste, wenn ich ein neues
StringGrid mit ähnlichen Funktionen benutzen müsste. (z.B. TAdvStringGrid)

Zudem... wenn ich mir die TAdvStringGrid von TMS anschaue wird mir schwarz vor Augen.
Das Projekt wird um mehr als 1.5 MBbyte grösser nur wegen dieser Komponente.
Ich brauche beileibe nicht alle diese Funktionen.

Hat irgend jemand die Komponente TStringAlignGrid unter Delphi 2009 oder
Delphi 2010 noch in Gebrauch?

Herzlichen Dank zum voraus
Roland
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: TStringAlignGrid Andreas Hörstemeier/Delphi2009 oder 201

  Alt 29. Sep 2009, 16:58
Hast du mal Testweise alle String durch AnsiString und Char durch AnsiChar ersetzt?
Markus Kinzler
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: TStringAlignGrid Andreas Hörstemeier/Delphi2009 oder 201

  Alt 29. Sep 2009, 17:17
was wird denn dringend davon gebraucht ?
Gruß
Hansa
  Mit Zitat antworten Zitat
gullatrulla

Registriert seit: 11. Mai 2004
Ort: Malans (Schweiz)
43 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: TStringAlignGrid Andreas Hörstemeier/Delphi2009 oder 201

  Alt 29. Sep 2009, 17:36
Vielleicht kurz vorab...

In der Komponentenentwicklung bin ich nicht sonderlich gut bewandert.
Ich beschäftige mich grösstenteils mit Datenbankprogrammierung.

Ich nehme an dass die Probleme vorallem mit der Einführung von Unicode
in Delphi 2009 zu tun haben.


Es sind z.Teil "veraltete" Befehle wie z.B NewString... siehe unten...

Delphi-Quellcode:
procedure TStringAlignGrid.SetHintCell(ACol,ARow: longint; const Value: string);
var v:pstring;
begin
  FSaveHint:=true;
  v:=NewStr(value);
  v:=SetItemCell(ACol,ARow, FHintCell, v);
  if v<>NIL then
    DisposeStr(v);
end;
Ich habe die Zeilen wie folgt abgeändert...
Delphi-Quellcode:
procedure TStringAlignGrid.SetHintCell(ACol,ARow: longint; const Value: string);
var v:pstring;
begin
  FSaveHint:=true;
  v:=SetItemCell(ACol,ARow, FHintCell, PChar(v));
  if v<>NIL then
    StrDispose(PChar(v));
end;
Dies funktioniert nun... aber leider sind buchstäblich dutzende andere Funktionen vorhanden
welche ähnliche Probleme beinhalten.

Ich habe es schon geschafft, dass ich die Komponente komplett kompilieren kann.
Jedoch spätestens beim Einfügen der Komponente in eine Form hängt sich die
IDE mit einer Zugriffsverletzung auf. Irgendwo scheine ich einen Fehler gemacht zu haben.

Evtl. hat jemand die Komponente auf Delphi2009/Delphi2010 angehoben und würde mir die
Source zur Verfügung stellen.

Herzliche Grüsse
Roland

[edit=mkinzler]Delphi-Tags eingefügt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
Chris.R

Registriert seit: 8. Sep 2009
Ort: Nürnberg
68 Beiträge
 
Delphi 2010 Professional
 
#5

Re: TStringAlignGrid Andreas Hörstemeier/Delphi2009 oder 201

  Alt 29. Sep 2009, 19:31
Hallo,

mit deiner Vermutung, dass es an der Unicode Unterstützung liegt, bist du ganz richtig.

Delphi-Quellcode:
procedure TStringAlignGrid.SetHintCell(ACol,ARow: longint; const Value: string);
var v:pstring;
begin
  FSaveHint:=true;
  v:=NewStr(value);
  v:=SetItemCell(ACol,ARow, FHintCell, v);
  if v<>NIL then
    DisposeStr(v);
end;
Die Funktion kann nicht kompilieren, da NewStr als Rückgabe PAnsiChar hat und unter Delphi 2009 ist PChar, PString und string ein Unicode String, also inkompatibel.

Du müsstest also alle Vorkommen von PChar, PString und string durch PAnsiChar, PAnsiString und AnsiString ersetzen.

Oder du probierst folgendes:

Delphi-Quellcode:
procedure TStringAlignGrid.SetHintCell(ACol,ARow: longint; const Value: string);
var v:pstring;
begin
  FSaveHint:=true;
  v:=SetItemCell(ACol,ARow, FHintCell, PChar(Value));// <- Value statt v als Parameter
  if v<>NIL then
    StrDispose(PChar(v));
end;
Allerdings weiß ich nicht was in der Funktion SetItemCell gemacht wird, kann also sein, das es trotzdem kracht,
weil z.B. mit festen Längen von Zeichen gerechnet wird (also 1 Byte pro Zeichen statt wie bei Unicode mit 2 Zeichen).

Die Version mit dem Ersetzen von String durch AnsiString sollte auf jedenfall funktionieren.
Solltest nur keine vergessen

Ciao Chris
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: TStringAlignGrid Andreas Hörstemeier/Delphi2009 oder 201

  Alt 29. Sep 2009, 20:20
bin noch nicht ganz durch, aber bevor ich mich noch weiter beschäftige ... geht es denn so?

ab D2009 sollte es nun Unicode sein und davor Ansi ... wie bei String halt so üblich


[edit]
ach ja, die ganze Delphi 1-Unterstützung und vieles bis Delphi 3 ist nebenbei rausgeflogen ... nicht daß sich wer wundert.
Angehängte Dateien
Dateityp: 7z grid21_147.7z (72,1 KB, 61x aufgerufen)
$2B or not $2B
  Mit Zitat antworten Zitat
Chris.R

Registriert seit: 8. Sep 2009
Ort: Nürnberg
68 Beiträge
 
Delphi 2010 Professional
 
#7

Re: TStringAlignGrid Andreas Hörstemeier/Delphi2009 oder 201

  Alt 29. Sep 2009, 21:03
Hallo,

@himitsu: meinst du die Funktion NewStr??

Die gibt bei mir in Delphi 2009 PAnsiString zurück.

Ciao Chris
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: TStringAlignGrid Andreas Hörstemeier/Delphi2009 oder 201

  Alt 29. Sep 2009, 21:11
NewStr hab ich ganz rausgenommen und laß Delphi die PString's verwalten
$2B or not $2B
  Mit Zitat antworten Zitat
gullatrulla

Registriert seit: 11. Mai 2004
Ort: Malans (Schweiz)
43 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: TStringAlignGrid Andreas Hörstemeier/Delphi2009 oder 201

  Alt 29. Sep 2009, 21:41
Hallo himitsu

Ich probiers Morgen mal aus.
Herzlichen Dank für Deine super Arbeit.

Gruss
Roland
  Mit Zitat antworten Zitat
gullatrulla

Registriert seit: 11. Mai 2004
Ort: Malans (Schweiz)
43 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: TStringAlignGrid Andreas Hörstemeier/Delphi2009 od. 2010

  Alt 30. Sep 2009, 07:54
Hallo himitsu

Habe es ausprobiert!

- Kompilierung läuft ohne Fehlermeldung durch.
- Komponente kann danach ebenfalls ohne Fehlermeldung auf das Formular gesetzt werden.

ABER... sobald ein Doppelklick auf dem Grid durchgeführt wird erscheint wieder eine
Zugriffsverletzung:
--------------------------------------------------------------------
Zugriffsverletzung bei Adresse 50000D11E in Modul 'rtl140.bpl'. Schreiben von Adresse 00000000.
--------------------------------------------------------------------

Herzliche Grüsse
Roland


Ps. Die Kompilierung erfolgte unter Delphi2010 Professional.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 22:19 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