procedure TForm1.Button1Click(Sender: TObject); begin AddLineToRichEdit1(Edit1.Text); end;
Som du kan se er hemmeligheden at benytte TRichEdit\'ens SelAttributes property, hvor du desuden kan skifte font, størrelse, bold, understregning mv. I eksemplet benytter jeg en Case for at at kigge på første bogstav i inputlinien. Du skal se\'følig lige ændre dette til at kigge på dine (C)NC koder, idet du sikkert ikke vil have samme font style til fx. alm. \'G0value\' og \'G0 G4\' kommandoer.
Jeg har iøvrigt en tidligere kollega (lytter du med Anold) der har lavet noget CNC optimerings software i Delphi. Hans program er bl.a. istand til at indsætte il-gang\'s koder på steder hvor dette vil speede fræse arbejdet op.
Hej delphi hmm. jeg har fået dit eksempel til at virke,men så er jeg ikke med længer. \'sådan er det med nybegyndere ;-) \'
Som du selv skriver se man kun på første bogstav i linien, men hvad med de næste, typisk starter det med \'G\' derefter x,y osv, de bliver samme farve som \'G\'.
Det er sikkeret et dumt spørgsmål, men jeg er lost
Dit grundlæggende problem, som jeg ser det, er tilsyneladende hvorledes man undersøger en del af en streng.
I mit eksempel undersøger jeg en enkelt position, den første, var at betragte strengen som et array (of Char). Array\'s kan aflæses position for position ved at efterfølge array-navnet med firkantede paraenteser med et index i, e.g.:
Var aStr : String; // Declare aStr as a string ch : Char; // Declare ch as a Char; aArr : Arrray[1..50] Of Char; // Declare a Char array; Index : Integer; Begin aStr := \'Dummy String\'; Ch := aStr[1]; // Ch := \'D\';
For Index := 1 To Length(aStr) Do aArr[Index] := aStr[Index];
If aArr[4] = \'x\' Then ShowMessage(\'Position er lig x\') Else ShowMessage(\'Position er IKKE lig x\'); End;
Som det ses af ovenstående kan parantes metoden benyttes til at undersøge enkelte positioner i et array/streng. Skal du undersøge en delstreng på 2+ karakterers længde, så kan du benytte Copy metoden:
Var aStr : String; DelStr : String; Begin aStr := \'Dette er en test); DelStr := Copy(aStr, 1, 2); // DelStr := 2 chars fra position 1 i aStr.
If DelStr = \'De\' Then MessageBox(\'DelStr er lig \"De\"\') Else If DelStr = \'Xx\' Then MessageBox(\'DelStr er lig \"Xx\"\') Else If DelStr = \'Yy\' Then MessageBox(\'DelStr er lig \"Yy\"\') Else MessageBox(\'DelStr er lig noget helt andet\'); End;
Bemærk at jeg ikke længere kan benytte Case strukturen når du tester på delstrenge, men der imod benytter en stak nestede If-Then-Else kommandoer.
jehaaa tak for hjælpen delphi. også tak til vlamik
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.