AGB  ·  Datenschutz  ·  Impressum  







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

Templates mit TurboDelphi

Ein Thema von newuser01 · begonnen am 6. Sep 2006 · letzter Beitrag vom 16. Sep 2006
Antwort Antwort
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#1

Templates mit TurboDelphi

  Alt 6. Sep 2006, 15:42
Hallo

Neuer Tag neues Problem Ich habe mir gestern TurboDelphi runtergeladen und ich muss sagen die Tamplates haben mich richtig begeistert. Ich bin dabei mir ein Template selber zu basteln also das immer ein hinterlegter Codeschnipses bei Aufruf des Templates
erscheint.

Das Template habe ich so gestaltet:

XML-Code:

<?xml version="1.0" encoding="utf-8" ?>
<codetemplate   xmlns="http://schemas.borland.com/Delphi/2005/codetemplates"
            version="1.0.0">
    <template name="search-string" invoke="manual">

      <point name="search-string">
      <text>search-string</text>
        <hint>suchen nach einen bestimmten string</hint>
      </point>
 
      <point name="Variable oder Wert">
      <text>Variable oder Wert</text>
      <hint>Wert</hint>
      </point>

      <point name="Text der durchsucht werden soll">
      <text>Text der durchsucht werden soll</text>
      <hint>Text</hint>
      </point>

      <point name="gesuchter String">
      <text>gesuchter String</text>
      <hint>Search String</hint>
      </point>

      <point name="slTmp">
      <text>slTmp</text>
      <hint>TStringList</hint>
      </point>

      <point name="sText">
      <text>sText</text>
      <hint>StringVariable</hint>
      </point>

      <point name="sSearch">
      <text>sSearch</text>
      <hint>StringVariable</hint>
      </point>

      <point name="i">
      <text>i</text>
      <hint>IntegerVariable</hint>
      </point>

      <description>string suchen</description>
      <author>newuser</author>

      <script language="Delphi" onenter="true" onleave="true">
      DeclareVariable(|slTmp|,StringList);
      DeclareVariable(|sText|,string);
      DeclareVariable(|sSearch|,string);
      DeclareVariable(|i|,integer);
      </script>

      <code language="Delphi" delimiter="|" ><![CDATA[

|search-string|

  for |i| := 0 to |Variable oder Wert| -1 do
  begin

  |slTmp| := TStringList.Create;
  slTmp.Clear();
  |sText| := '';
  |sText| := |Text der durchsucht werden soll|;
  |sSearch| := |gesuchter String|;

    while pos(sSearch,sText) <> 0 do
    begin
    slTmp.Add(copy(sText,1,pos(sSearch,sText)-1));
    delete(sText,1,pos(sSearch,sText));
    end;

  slTmp.Add(sText);

    if slTmp.Strings[i] = sText Then
    begin
    //
    end
      else
         begin
         MessageDlg('String gefunden',mtInformation, [mbOK], 0);
    end;//if
  end;//for

      ]]>
      </code>
   </template>
</codetemplate>

Wenn ich nun "search-string" eingebe und die Tab-Taste betätige vervollständigt sich dieser Code nur die Variablen "slTmp" und "sSearch" sind falsch deklariert worden eigentlich müsste "slTmp" vom Typ TStringList sein und "sSearch" vom Typ String. Ich hab keine Ahnung woran es liegen könnte denn die Variablen "sText" und "i" werden ja auch richtig Deklariert vielleicht könnt ihr ja weiterhelfen ?

Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
var
  slTmp: TObject; //falsch siehe XML-Code
  sText: string;
  sSearch: TObject; //falsch siehe XML-Code
  i: Integer;
begin

  for i := 0 to Wert -1 do
  begin

  slTmp := TStringList.Create;
  slTmp.Clear();
  sText := '';
  sText := Text der durchsucht werden soll;
  sSearch := gesuchter String;

    while pos(sSearch,sText) <> 0 do
    begin
    slDat.Add(copy(sText,1,pos(sSearch,sText)-1));
    delete(sText,1,pos(sSearch,sText));
    end;

  slTmp.Add(sText);

    if slTmp.Strings[i] = sText Then
    begin
    //
    end
      else
        begin
        MessageDlg('String gefunden',mtInformation, [mbOK], 0);
    end;//if

  end;//for
end;

Gruß
Holger
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#2

Re: Templates mit TurboDelphi

  Alt 16. Sep 2006, 09:16
Oha, dein Template war ja der reinste Horror.
Schonmal überlegt was passiert wenn man andere Variablenbezeichner eingibt?

Hier mal eine überarbeitete Version, klappt wunderbar:
XML-Code:
<?xml version="1.0" encoding="utf-8" ?>
<codetemplate xmlns="http://schemas.borland.com/Delphi/2005/codetemplates"
            version="1.0.0">
   <template name="search-string" invoke="manual">

      <point name="search-string">
      <text>search-string</text>
        <hint>suchen nach einen bestimmten string</hint>
      </point>

      <point name="Variable oder Wert">
      <text>Variable oder Wert</text>
      <hint>Wert</hint>
     </point>

     <point name="TStringList">
     <text>TStringList</text>
      <hint>TStringList</hint>
     </point>

      <point name="Text der durchsucht werden soll">
      <text>Text der durchsucht werden soll</text>
      <hint>Text</hint>
      </point>

      <point name="gesuchter String">
      <text>gesuchter String</text>
      <hint>Search String</hint>
      </point>

      <point name="slTmp">
      <text>slTmp</text>
      <hint>TStringList</hint>
      </point>

      <point name="sText">
      <text>sText</text>
      <hint>StringVariable</hint>
      </point>

      <point name="sSearch">
      <text>sSearch</text>
      <hint>StringVariable</hint>
      </point>

      <point name="i">
      <text>i</text>
      <hint>IntegerVariable</hint>
      </point>

      <description>string suchen</description>
      <author>newuser</author>

      <script language="Delphi" onenter="true" onleave="true">
      DeclareVariable(|slTmp|,|TStringList|);
      DeclareVariable(|sText|,string);
      DeclareVariable(|sSearch|,string);
      DeclareVariable(|i|,integer);
      </script>

      <code language="Delphi" delimiter="|" ><![CDATA[

  for |i| := 0 to |Variable oder Wert| -1 do
  begin
  |slTmp| := |TStringList|.Create;
  |slTmp|.Clear();
  |sText| := '|Text der durchsucht werden soll|';
  |sSearch| := '|gesuchter String|';

   while pos(|sSearch|,|sText|) <> 0 do
   begin
   |slTmp|.Add(copy(|sText|,1,pos(|sSearch|,|sText|)-1));
   delete(|sText|,1,pos(|sSearch|,|sText|));
    end;

  |slTmp|.Add(|sText|);

   if |slTmp|.Strings[i] = |sText| Then
    begin
    //
    end
      else
         begin
         MessageDlg('String gefunden',mtInformation, [mbOK], 0);
    end;//if
  end;//for

      ]]>
      </code>
   </template>
</codetemplate>
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#3

Re: Templates mit TurboDelphi

  Alt 16. Sep 2006, 11:10
Zitat:
Oha, dein Template war ja der reinste Horror.
zustimmt


Danke für deine Hilfe
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: Templates mit TurboDelphi

  Alt 16. Sep 2006, 12:53
[quote]
Delphi-Quellcode:
  slTmp := TStringList.Create;
  slTmp.Clear();
  sText := '';
  sText := Text der durchsucht werden soll;
Was wird denn das? Hat eine gerade neu erstelle Stringliste etwa schon einen Inhalt, den man mit Clear löschen muss? Wenn ich einem String einen neuen Wert zuweise, muss ich da den vorher String mit dem Leerstring vorinitialisieren?
Das mal abgesehen, von den zwei völlig unnötigen Pos() aufrufen, die das ganze nur verlangsamen.
  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 02:45 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