AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Unit zu bestimmter Funktion herausfinden?
Thema durchsuchen
Ansicht
Themen-Optionen

Unit zu bestimmter Funktion herausfinden?

Ein Thema von Kasmus · begonnen am 25. Apr 2004 · letzter Beitrag vom 26. Apr 2004
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu

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

Re: Unit zu bestimmter Funktion herausfinden?

  Alt 26. Apr 2004, 00:41
Diese Funktionen gibt es noch in D7, aber man kann sie eben nicht so einfach verwenden.
Es steht ja in der Hilfe, dass man diese Funktion nur in abgeleiteten Klassen verwenden kann.
Zitat von CompareStrings:
In TStrings wird CompareStrings intern verwendet, um ...
Zitat von protected:
Ein protected-Element ist innerhalb des Moduls mit der Klassendeklaration und in allen abgeleiteten Klassen (unabhängig davon, in welchem Modul sie deklariert sind) sichtbar. Auf ein protected-Element können alle Methoden einer Klasse zugreifen, die von der Klasse mit der Elementdeklaration abgeleitet ist. Mit diesem Sichtbarkeitsattribut werden also Elemente deklariert, die nur in den Implementierungen abgeleiteter Klassen verwendet werden sollen.
Dort hat sich CompareStrings versteckt:
Delphi-Quellcode:
TStrings = Class(TPersistent)
  Protected
    Function CompareStrings(Const S1, S2: String): Integer; virtual;
  End;

TStringList = Class(TStrings)
  Protected
    Function CompareStrings(Const S1, S2: String): Integer; override;
  End;
Hier die Funktionen dazu:
Delphi-Quellcode:
Function TStrings.CompareStrings(Const S1, S2: String): Integer;
  Begin
    Result := AnsiCompareText(S1, S2);
  End;

Function TStringList.CompareStrings(Const S1, S2: String): Integer;
  Begin
    If CaseSensitive Then Result := AnsiCompareStr(S1, S2)
    Else Result := AnsiCompareText(S1, S2);
  End;
Und wie ihr seht, braucht man CompareStrings auch nicht zu verwenden, denn diese machen den Vergleich eh nicht selber.
Also greift do lieber auf die verfügbaren Funktionen zurück
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
  Begin
    If AnsiCompareText('Hallo', 'Halloho') ...
    If AnsiCompareStr('Hallo', 'Halloho') ...
  End;


Und wer glaubt dort ist es zu ende mit dem Weiterleiten, der Irrt total ...
Delphi-Quellcode:
Function CompareString; external Kernel32 Name 'CompareStringA';

Function AnsiCompareText(Const S1, S2: String): Integer;
  Begin
    Result := CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE,
      PChar(S1), Length(S1), PChar(S2), Length(S2)) - 2;
  End;

Function AnsiCompareStr(Const S1, S2: String): Integer;
  Begin
    Result := CompareString(LOCALE_USER_DEFAULT, 0,
      PChar(S1), Length(S1), PChar(S2), Length(S2)) - 2;
  End;

// CompareStrings > AnsiCompareStr > CompareString (Windows)
// CompareStrings > AnsiCompareText > CompareString (Windows)

[EDIT]
ich hätte mich wohl nicht nebenbei 'nen Film gucken sollen
fast zwei Stunden für 'nen Beitrag ist schon fast Weltrecord
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#12

Re: Unit zu bestimmter Funktion herausfinden?

  Alt 26. Apr 2004, 03:43
Zitat von himitsu:
ich hätte mich wohl nicht nebenbei 'nen Film gucken sollen
fast zwei Stunden für 'nen Beitrag ist schon fast Weltrecord
Film und Delphi, der perfekte Abend ber zwei stunden für einen Beitrag, das scheint mir lang zu sein
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Kasmus

Registriert seit: 25. Apr 2004
4 Beiträge
 
#13

Re: Unit zu bestimmter Funktion herausfinden?

  Alt 26. Apr 2004, 18:56
Danke euch allen!

Ich benutze übrigens auch Delphi 7 Personal.


Gruß,
Kasmus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 07:28 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