AGB  ·  Datenschutz  ·  Impressum  







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

Problem beim String bearbeiten/ändern

Ein Thema von CG2003 · begonnen am 15. Jun 2007 · letzter Beitrag vom 5. Jul 2007
 
CG2003

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

Problem beim String bearbeiten/ändern

  Alt 15. Jun 2007, 23: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
 


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 03:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz