Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi D7ComboBoxStringsGetPatch, leerer Comboboxeintrag (https://www.delphipraxis.net/140344-d7comboboxstringsgetpatch-leerer-comboboxeintrag.html)

buchsbaum 16. Sep 2009 11:30


D7ComboBoxStringsGetPatch, leerer Comboboxeintrag
 
Hallo

Ich habe ein Problem bezüglich es einfügens eines leeren Feldes in eine ComboBox. Habe jetzt schon herausgefunden, dass dieses Probelm mit Delphi 7 bereits bekannt ist und auch ein offizieller Patch (D7ComboBoxStringsGetPatch.pas) herausgebracht wurde.

Leider konnte ich das Problem bisher nicht beheben. ich habe den patch ins Programm eingefügt:
über Datei -> Neu -> Unit
Unit-Code mit dem PatchCode überschrieben, gespeichert.
in der Unit in der sich die ComboBox befindet unter

implementation
uses Unit7;

eingefügt.

Leider besteht das Problem weiterhin. Immer wenn ein leerer ComboBox Eintrag ausgewählt wird, erscheint eine Fehlermeldung.

Ich weiß nicht ob ich nur die Unit nicht richtig eingebunden habe oder ob das Problem woanders liegt. Vielleicht hatte ja jemand das gleiche Problem oder ne' schlaue Idee.

Achso, das Problem tritt auch bekannterweise nur bei Windows XP und 2000 SP4 auf. Unter Vista ist der Fehler nicht aufgetreten.

Kann mir evtl. jemand weiterhelfen?

Mit freundlichem Gruß
Buchsbaum




Nachtrag:

Hier habe ich einmal die ersten Zeilen des Patches eingefügt:

unit D7ComboBoxStringsGetPatch;

// The patch fixes TCustomComboBoxStrings.Get method for empty string item in Delphi 7.

{$I rpconf.inc}

interface



Die dritte Zeile "{$I rpconf.inc}" kann nicht gefunden werden. Fehlermeldung erscheint:
"[Fataler Fehler] D7ComboBoxStringsGetPatch.pas(5): Datei nicht gefunden: 'rpconf.inc'"

Kann das vielleicht auch die Ursache sein?


--- Delphi 7 used ---

buchsbaum 21. Sep 2009 07:40

Re: D7ComboBoxStringsGetPatch, leerer Comboboxeintrag
 
Oh mann ... ich weiß es ist kein einfaches Problem, würde mich aber über kreative Anregungen sehr freuen!


Mfg
Buchsbaum

hoika 21. Sep 2009 07:42

Re: D7ComboBoxStringsGetPatch, leerer Comboboxeintrag
 
Hallo,

ich kenne den Patch nicht, aber besteht der wirklich nur aus einer (Pas-)Datei ?

#Update:*
Was passiert, wenn du das {$I rpconf.inc} einfach ausklammerst ?
Scheint was von JEDI zu sein.

Hänge doch mal ein Minimal-Beispiel an, wo es nicht klappt.


Heiko

mirage228 21. Sep 2009 07:42

Re: D7ComboBoxStringsGetPatch, leerer Comboboxeintrag
 
Geht es auch nicht, wenn Du statt eines komplett leeren Eintrages evtl. ein Leerzeichen (#32) speicherst oder kommt das nicht in Frage?

buchsbaum 21. Sep 2009 08:05

Re: D7ComboBoxStringsGetPatch, leerer Comboboxeintrag
 
Also erst einmal vielen Dank für die Antworten! Hab schon ne' weile drauf gewartet :-)

zu Hoika:
ja, der patch besteht nur aus einer .pas Datei.

Das {$I rpconf.inc} kann ich einfach ausklammern, dann passiert nix weiter. Aber ich dachte das evtl. das nicht-funktionieren des patches darauf zurückzuführen ist ...

Was für ein Beispiel soll ich anfügen? Wenn man Delphi 7 benutzt und dazu noch Windows 2000 ab SP3 dann einfach im Programm schreiben:

ComBox.items.add('');

wenn dann das Prog ausgeführt wird und dieser geaddete Eintrag gewählt wird dann gibt's nen Fehler. Manchmal auch bei XP SP3, aber nicht immer wie ich vor ein paar Minuten gerade herausgefunden habe ...



zu mirage:
das würde gehen, ich könnte einfach ein leerzeichen einfügen, dann gäbe es die Fehlermeldung nichtl, da der ComboBox Eintrag dann ja nicht leer ist. Das ist aber leider kein Lösungsansatz für das eigentliche Problem, denn mit den ausgewählten Einträgen in der ComboBox soll später weiter gearbeitet werden, und da brauch ich die Funktionalität, dass der Eintrag komplett leer ist ...

Sir Rufo 21. Sep 2009 08:14

Re: D7ComboBoxStringsGetPatch, leerer Comboboxeintrag
 
Zitat:

Zitat von buchsbaum
das würde gehen, ich könnte einfach ein leerzeichen einfügen, dann gäbe es die Fehlermeldung nichtl, da der ComboBox Eintrag dann ja nicht leer ist. Das ist aber leider kein Lösungsansatz für das eigentliche Problem, denn mit den ausgewählten Einträgen in der ComboBox soll später weiter gearbeitet werden, und da brauch ich die Funktionalität, dass der Eintrag komplett leer ist ...

Delphi-Quellcode:
Trim( ComboBox.Text )

hoika 21. Sep 2009 08:37

Re: D7ComboBoxStringsGetPatch, leerer Comboboxeintrag
 
Hallo,

Zitat:

Ich weiß nicht ob ich nur die Unit nicht richtig eingebunden habe oder ob das Problem woanders liegt. Vielleicht hatte ja jemand das gleiche Problem oder ne' schlaue Idee.
Deshalb ja der Hinweise mit dem Projekt-Anhängen.

Steht die Unit Unit7 ?? (Warum zum Teufel heiist die Unit nicht
D7ComboBoxStringsGetPatch.pas)

denn in der dpr oder sonst wo im Projekt ?


Heiko

buchsbaum 21. Sep 2009 08:50

Re: D7ComboBoxStringsGetPatch, leerer Comboboxeintrag
 
Codeauszug:


Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, comobj, ExtCtrls, Menus, ComCtrls, ShellApi,
  Printers, Gauges, jpeg;

type
  TF_main = class(TForm)
    Button1: TButton;
    gridinarbeit: TStringGrid;
    ...
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
    SL : TStringlist;
  public
    { Public-Deklarationen }
    StringlistTabellen, Stringlist, Stringlist2 : Tstringlist;
    StringlistTemp : TStringlist;
  end;

procedure set_status(Anzeigetext : String; Hinttext : String);
procedure update_files_to_stringlist;
procedure load_tree_view;

var
  F_main: TF_main;
  global_param : String;

  farbliste : TStringlist; //ComboBox-Einträge die zu färben sind

implementation
uses Unit2, Unit3, Unit4, Unit5, Unit6, D7ComboBoxStringsGetPatch;

{$R *.dfm}
{TreeView laden und anzeigen}
procedure load_tree_view;

Die Unit1 ist die Unit, in der sich die ComboBox befindet um die es geht.

Die Unit hieß Unit7, weil ich über Datei->Neu->Unit eine neue Unit eingefügt habe, dann den Text mit dem aus der D7ComboBoxStringsGetPatch.pas Datei ersetzt habe und dann gespeichert hab. Nun heißt die Unit7 aber D7ComboBoxStringsGetPatch.

wenn ich auf ansicht->Units... gehe dann steht dort auch die D7ComboBoxStringsGetPatch gelistet.

Wie würde ich denn richtig eine Unit in eine andere einbinden?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 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