AGB  ·  Datenschutz  ·  Impressum  







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

Problem beim String bearbeiten/ändern

Ein Thema von CG2003 · begonnen am 16. Jun 2007 · letzter Beitrag vom 5. Jul 2007
Antwort Antwort
Seite 1 von 2  1 2      
CG2003

Registriert seit: 8. Nov 2003
Ort: Hamburg
470 Beiträge
 
Delphi 2009 Professional
 
#1

Problem beim String bearbeiten/ändern

  Alt 16. Jun 2007, 00:08
Hallo,

folgendes Szenario:
Ich habe ein synEdit (txtCode), in dem PHP-Quelltext drin steht.
Gelegentlich kommt es vor, dass dort Sachen, wie zum Beispiel

Code:
  <?=_RENDER_('ProjectType','ProjectName','ProjectParam','ProjectValue','ProjectHTML')?>
Nun möchte ich, das wenn ich mit dem Cursor (Textcursor des SynEdits) in eine Zeile mit o.g. Zeileninhalt springe, er mir die
Werte ("Project...") ausliesst und in einen TValueListEditor á la Objektinspektor anzeigt.
Das macht er auch einwandfrei.

Nun möchte ich jedoch, dass wenn ich diese Werte im TValueListEditor (hier heisst er "propTool") eingebe, er die automatisch in die
zeile des SynEdits übernimmt.


Hier der Quellcode, der fürs Einlesen zuständig ist:

Delphi-Quellcode:
procedure TfrmMain.txtCodeKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  curPos: Integer;
begin
  propTool.Strings.Clear;
  TA := Pars.Parse(txtCode.Lines[txtCode.CaretY - 1], False);
  Pars.GetTokenValueFirst(T_IDENT,curPos,'_RENDER_');
  if curPos<>-1 then begin
    Pars.GetTokenValueNext(curPos);
    Pars.GetTokenValueNext(curPos);
    propTool.InsertRow('Type',Pars.GetTokenValueNext(curPos),True);
    Pars.GetTokenValueNext(curPos);
    propTool.InsertRow('Name',Pars.GetTokenValueNext(curPos),True);
    Pars.GetTokenValueNext(curPos);
    propTool.InsertRow('Params',Pars.GetTokenValueNext(curPos),True);
    Pars.GetTokenValueNext(curPos);
    propTool.InsertRow('Value',Pars.GetTokenValueNext(curPos),True);
    Pars.GetTokenValueNext(curPos);
    propTool.InsertRow('HTML',Pars.GetTokenValueNext(curPos),True);
  end;
end;


Hier der Quellcode, der fürs übernehmen der Eingaben zusändig sein soll,
aber nicht funktioniert;

Delphi-Quellcode:
procedure TfrmMain.propToolKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  NewCode, NewLine: String;
  NewType, NewName, NewParams, NewValue, NewHTML: String;
  RowID, CodePos: Integer;
begin
  try
  propTool.FindRow('Type',RowID);
  NewType:=propTool.Cells[1,RowID];
  propTool.FindRow('Name',RowID);
  NewName:=propTool.Cells[1,RowID];
  propTool.FindRow('Params',RowID);
  NewParams:=propTool.Cells[1,RowID];
  propTool.FindRow('Value',RowID);
  NewValue:=propTool.Cells[1,RowID];
  propTool.FindRow('HTML',RowID);
  NewHTML:=propTool.Cells[1,RowID];
  NewCode:='_RENDER_('''+NewType+''','''+NewName+''','''+NewParams+''','''+NewValue+''','''+NewHTML+''');';
  CodePos := txtCode.CaretY;
    txtCode.CaretX := 0;
    txtCode.SelStart := txtCode.CaretX;
    txtCode.SelEnd := Length(txtCode.Lines[txtCode.CaretY]);
    NewLine:=txtCode.Lines[txtCode.CaretY];
    NewLine:=Copy(NewLine,1,CodePos - 1);
    NewLine:=NewLine+NewCode;
    txtCode.Lines[txtCode.CaretY]:='<?='+NewCode+'?>';//NewLine;
    txtCode.Lines[txtCode.SelEnd] := '<?='+NewCode+'?>';
    txtCode.Invalidate;
 except
  end;
Vielleicht habt Ihr ja eine Idee. Vielleicht kann man das Ganze auch vereinfachen.
Ich hoffe jedenfalls, das mir hier irgendjemand dabei helfen kann, denn ich komm echt nicht weiter.

Liebe Grüße!
Sebastian M.
Viele Grüße aus Hamburg


Meine Website: www.sebastian-mundt.com
  Mit Zitat antworten Zitat
CG2003

Registriert seit: 8. Nov 2003
Ort: Hamburg
470 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Problem beim String bearbeiten/ändern

  Alt 17. Jun 2007, 20:24
*push*

Keiner 'ne Idee???
Sebastian M.
Viele Grüße aus Hamburg


Meine Website: www.sebastian-mundt.com
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Problem beim String bearbeiten/ändern

  Alt 17. Jun 2007, 20:27
Wäre interessant zu wissen, was genau nicht geht.
  Mit Zitat antworten Zitat
CG2003

Registriert seit: 8. Nov 2003
Ort: Hamburg
470 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Problem beim String bearbeiten/ändern

  Alt 17. Jun 2007, 21:35
Zitat von Die Muhkuh:
Wäre interessant zu wissen, was genau nicht geht.
Nun ja, sobald ich eine solche Zeile in meinem "Objektinspektor" bearbeiten will, wird im SynEdit eine neue Zeile eingefügt, in der die Werte geändert werden. Das ist aber leider nicht Sinn der Sache.
Sebastian M.
Viele Grüße aus Hamburg


Meine Website: www.sebastian-mundt.com
  Mit Zitat antworten Zitat
17. Jun 2007, 22:03
Dieses Thema wurde von "SirThornberry" von "Sonstige Fragen zu Delphi" nach "VCL / WinForms / Controls" verschoben.
CG2003

Registriert seit: 8. Nov 2003
Ort: Hamburg
470 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Problem beim String bearbeiten/ändern

  Alt 18. Jun 2007, 22:26
Wirklich keiner 'ne Idee?
Vielleicht hat ja sowas in der Art schon mal jemand in seinen HTML Editor/Notepad-Ersatz oder was auch immer eingebaut, und würde mir evtl. Code zur Verfügung stellen?
Es muss ja nicht zwingend meine Prozedur sein.

Hauptsache, es passiert das, was ich (wie oben beschrieben) möchte.

Wäre für Hilfe sehr dankbar!
Sebastian M.
Viele Grüße aus Hamburg


Meine Website: www.sebastian-mundt.com
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Problem beim String bearbeiten/ändern

  Alt 18. Jun 2007, 23:31
Hi,

frag mal den mirage228, der hat sowas, meine ich, in seinem Alpha Code Studio drin.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Problem beim String bearbeiten/ändern

  Alt 19. Jun 2007, 11:07
Hey,

Ich ersetze innerhalb des Ausdrucks (also bei dir zwischen <? und ?>) die entsprechende Eigenschaft durch die neue.
Ich mache das zwar mittels RegEx, aber wenn Du ein Replace('ProjectType_Alt', 'ProjectType_Neu') (oder ggf. auch alle Eigenschaften) durchführst, sollts gehen.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
CG2003

Registriert seit: 8. Nov 2003
Ort: Hamburg
470 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Problem beim String bearbeiten/ändern

  Alt 19. Jun 2007, 11:22
Zitat von mirage228:
Hey,

Ich ersetze innerhalb des Ausdrucks (also bei dir zwischen <? und ?>) die entsprechende Eigenschaft durch die neue.
Ich mache das zwar mittels RegEx, aber wenn Du ein Replace('ProjectType_Alt', 'ProjectType_Neu') (oder ggf. auch alle Eigenschaften) durchführst, sollts gehen.

mfG
mirage228
Ja, so hatte ich das ja auch vor. Nur wie???
Sebastian M.
Viele Grüße aus Hamburg


Meine Website: www.sebastian-mundt.com
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Problem beim String bearbeiten/ändern

  Alt 19. Jun 2007, 11:28
An welcher Stelle genau kommst Du denn nicht weiter?

Anfangs- und Endposition der Ausdrucks (also <? und ?>) hast Du ja und dann weißt du ja den alten Wert und den neuen Wert (bzw. die Werte) und kannst Dann einfach mittels Delphi-Referenz durchsuchenStringReplace oder regulärem Ausdruck ersetzen...

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:18 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