AGB  ·  Datenschutz  ·  Impressum  







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

Anfängerprobleme

Ein Thema von .niklas · begonnen am 6. Jul 2009 · letzter Beitrag vom 6. Jul 2009
Thema geschlossen
.niklas

Registriert seit: 6. Jul 2009
5 Beiträge
 
#1

Anfängerprobleme

  Alt 6. Jul 2009, 15:34
hi jungs

ich wollte mit meinen sehr beschränkten delphi-kenntnissen versuchen ein programm zu schreiben was über verschiedene buttons und ein edit-feld wörter zusammenstellen kann. auf den buttons liegt die abkürzung für eine farbe (zb '^1' -> rote farbe für alle nachfolgenden buchstaben oder zahlen.) Die ausgabe soll in einem label oder so stattfinden und auch schon das richtige farbschema enthalten. Also '^1Hallo^2Leute' würde im label als '{rotes}Hallo{und grünes}Leute' angezeigt(die farbkürzel sollen dabei im label verschwinden). Außerdem soll die länge des im editfeld eingegebenen wortes überprüft werden und bei einer gewissen anzahl von zeichen verschieden gestaffelte labels von grün auf rot springen lassen.(zb mehr als 18 zeichen: label_1.color:= clRed

allerdings hab ich außer dem interface und den farb-buttons die die kürzel in das editfeld einfügen noch kein script und auch die aktualisierung der zeichenanzahl mit den rot/grünen labels funktioniert nicht so wie ich mit das vorstelle. (xD)

ich bräuchte etwas grundlagenhilfe da ich nicht genau weiß wie ich eigene prozeduren schreibe die zb eine getimte aktualisierung ermöglichen.. (zb alle 0,5 sekunden oder so die anzahl der im editfeld eingegebenen zeichen überprüft und die labelfarbe dementsprechend setzt...)

danke im voraus
 
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Anfängerprobleme

  Alt 6. Jul 2009, 15:38
Also die Länge eines Editfelds einhälts du über Edit1.Text.Length.
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
 
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Aussagekräftiger Titel

  Alt 6. Jul 2009, 15:44
Bitte gib deinem Beitrag einen aussagekräftigen Titel. Der jetzige Titel lässt nicht erkennen, um was für ein Problem oder Frage es sich handelt. Um den Titel zu ändern, editiere einfach deinen ersten Beitrag. Damit erleichters du das Auffinden deines Beitrages mit der Suche und ersparst anderen Mitglieder ein unnötiges Öffnen deines Beitrages.
Michael
Ein Teil meines Codes würde euch verunsichern.
 
Benutzerbild von Die Muhkuh
Die Muhkuh

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

Re: Anfängerprobleme

  Alt 6. Jul 2009, 16:07
Zitat von Larsi:
Also die Länge eines Editfelds einhälts du über Edit1.Text.Length.
Coole Syntax, kenn ich noch gar nicht...

Delphi-Quellcode:
var
  cnt: Integer;
begin
  cnt := Length(Edit1.Text);
end;
 
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Anfängerprobleme

  Alt 6. Jul 2009, 16:17
Zitat von Larsi:
Also die Länge eines Editfelds einhälts du über Edit1.Text.Length.
Vielleicht mit .NET Version....
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
 
qwertz543221
(Gast)

n/a Beiträge
 
#6

Re: Anfängerprobleme

  Alt 6. Jul 2009, 16:34
fürs timing gibt es eine komponente ttimer mit intervallangabe etc.

in dessen procedure kannst du abläufe in regelmäßigen abständen laufen lassen


zb
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);

//hier kannst du auch eigene procedure oder function definieren

   procedure machwas;
   function machwasneues:string;


  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  i:integer;
implementation

{$R *.dfm}


procedure tform1.machwas;
begin
showmessage('habe etwas gemacht');
end;

function tform1.machwasneues:string;
begin
showmessage('habe etwas neues gemacht');
result:='fertig';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
timer1.Enabled:=false;
timer1.Interval:=10;
i:=0;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
i:=0;
timer1.Enabled:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
machwas;
memo1.lines.add(machwasneues);
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
if i<=20
  then
  begin
  memo1.Lines.add(inttostr(i)); //inttostr für ganze zahlen - Ausgabe
                               //floattostr für kommazahlen - ausgabe
  i:=i+1;
  end
    else timer1.Enabled:=false;
end;

end.

so ich habe dir noch zwei beispiele für funktionen(mit rückgabewert) und prozeduren(ohne rückgabewert) gegeben, sie werden alle nach dem selben schema benutzt (deklariert und aufgerufen).

wie du siehst zeigen die punkte hinter bezeichnern weitere optionen an.

bsp komponente: timer1
weiterer befehl: enabled
verbindung der beiden: timer1.enabled:=true;//oder false;
 
.niklas

Registriert seit: 6. Jul 2009
5 Beiträge
 
#7

Re: Anfängerprobleme

  Alt 6. Jul 2009, 20:06
cool danke das klappt soweit. aber jetzt hänge ich den der darstellung des farbigen namens in dem label. ich habe keinen wirklich ansatz . vielleicht könntet ihr mir nochmal helfen )
 
hadschi92

Registriert seit: 25. Okt 2006
83 Beiträge
 
Delphi XE3 Professional
 
#8

Re: Anfängerprobleme

  Alt 6. Jul 2009, 22:40
Du kannst deinen neuen Text einfach mit einer Schleife durchsuchen und dann sobald ein ^ auftritt die nachfolgende Zahl herausfinden und dann den Rest des Textes bis zu einem ^ mit der vordefinierten Farbe färben. Achtung: Soviel ich weiß, wird die Schriftfarbe in einem Label oder Editfeld immer für das gesamte Feld gesetzt, du kannst also nicht zwei verschiedene Farben dort drin haben. Bei einem Memo geht das glaube ich auch nicht und bei einem RichEditFeld?

Bisschen Code zur Anregung:

Delphi-Quellcode:
var Farbe: TColor;
begin
Farbe := clBlack; //Standartfarbe
for I := 0 to Length(Edit1) do
  if Edit1.Text[I] = '^then begin
    if Edit1.Text [I+1] = '1then begin
      Farbe := clBack;
    if Edit1.Text [I+1] = '2then
      Farbe := clRed;
  end
  else
    Edit1.Text[I].Color := Farbe;
end;
So in etwa könnte man das machen. Natürlich muss dann noch in den Quelltext rein, dass das Hochzeichen und die darauf folgende Zahl gelöscht wird. Und du musst mit irgendeiner Komponente arbeiten, in der man verschiedenfarbigen Text darstellen kann. Obiger Code ist natürlich nur ein Beispiel, du musst in noch auf die Komponente anpassen.
 
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Anfängerprobleme

  Alt 6. Jul 2009, 23:30
Zitat von .niklas:
cool danke das klappt soweit. aber jetzt hänge ich den der darstellung des farbigen namens in dem label. ich habe keinen wirklich ansatz . vielleicht könntet ihr mir nochmal helfen )
Wie viele Themen besprechen wir denn mittlerweile in einem Thread? Und den titel geändert, hast du auch nicht. Bitte erstell für ein neues Problem auch einen neuen Thread mit einem aussagekräftigen Titel. Ich schliesse dann mal hier.
Michael
Ein Teil meines Codes würde euch verunsichern.
 
Thema geschlossen


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 06:47 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