Autor Beitrag
Bastian25
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38

Win XP
D7 Pers
BeitragVerfasst: So 16.01.05 18:15 
Hallo!

Ich habe eine Hausarbeit bekommen, die ich aber nicht lösen kann!
Habe versucht sie mit Hilfe des Doberenz/Kowalski zu lösen, aber es ist leider fehlgeschalgen!
Habe auch überhaupt keine Ahnung, wie ich das machen soll!

Hier ist die Aufgabe!

Es soll eine neue Komponente erstellt werden:

Laufschrift-Komponente

Leiten Sie die Komponente von Tlabel ab. Benutzen Sie einen Timer zur Geschwindigkeitseinstellung
Eigenschaften
Laufschrift_ein (boolean)
LString1 (die Laufschrift)
Lstring2 (neuer String, der während der 1. Schriftzug eingeben wird, weiterläuft)
NeuStart (boolean, aktiviert den neuen String, neue Nachrichteneingabe ist im Hintergrund wieder möglich)
Geschwindigkeit (Zeichen / s)

Ich würde mich sehr über Hilfestellungen freuen!

Gruß Bastian
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 16.01.05 18:32 
Zeig doch mal den Code her, den du bisher hast.
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: So 16.01.05 18:41 
Bastian25 hat folgendes geschrieben:
...Doberenz/Kowalski ...

Wer oder was soll das denn sein, kann das kochen ??? :twisted:

Gruß

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
Bastian25 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38

Win XP
D7 Pers
BeitragVerfasst: So 16.01.05 18:41 
Habe noch keinen Code!
Weiß gar nicht womit ich anfangen soll!
:(
wunsiedler
ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 506
Erhaltene Danke: 4

Win7

BeitragVerfasst: So 16.01.05 19:23 
Nimm ein Label und füll es mit einem Text, einen Timer und folgenden Code für den Timer:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Timer1Timer(Sender: TObject);
var text : string;
begin
text := Label1.Caption;
text := concat(copy(text,2,length(text)),copy(text,1,1));
Label1.Caption := text;
end;
Bastian25 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38

Win XP
D7 Pers
BeitragVerfasst: So 16.01.05 19:29 
Danke für die Hilfestellung!
Den eigentlich Quellcode für den Laufstring habe ich eigentlich schon gehabt, die Frage ist nur, wie ich das ganze jetzt in eine neue Komponente packen kann, mit den gegeben eigenschaften!

Gruß Bastian
wunsiedler
ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 506
Erhaltene Danke: 4

Win7

BeitragVerfasst: So 16.01.05 19:33 
wie erstellt man komponenten:

www.dsdt.info/tutorials/tswitch/
Bastian25 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38

Win XP
D7 Pers
BeitragVerfasst: So 16.01.05 19:37 
Danke für den Link! Habe auch schon versucht das im Doberenz/Kowalsk nachzulesen, aber irgendwie verstehe ich das nicht!
Bastian25 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38

Win XP
D7 Pers
BeitragVerfasst: Di 18.01.05 15:50 
So, habe versucht die Vorschläge umzusetzen, leider nicht mit soviel Erfolg!
Bekomme den String einfach nicht zum Laufen!

Wisst ihr wo der Fehler steckt?

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
unit LString;

interface

uses
  SysUtils, Classes, Controls, StdCtrls,ExtCrtls,Dialogs;

type
  TLString = class(TLabel)
  FTimer: TTimer;

  private
    fAn: Boolean;
    procedure SetAn(const Value: Boolean);
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
    constructor create(aOwner: TComponent); override;
  public
    { Public-Deklarationen }
  published
    { Published-Deklarationen }
    property An: Boolean read fAn write SetAn;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [TLString]);
end;

{ TLString }

constructor TLString.create(aOwner: TComponent);
begin
  inherited;
  FTimer := TTimer.Create(Nil);
  fTimer.Enabled := False;
end;

procedure TLString.SetAn(const Value: Boolean);
begin
  fAn := Value;
  fTimer.Enabled := True;

end;

end.
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 18.01.05 16:07 
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
unit LString;

interface

uses
  SysUtils, Classes, Controls, StdCtrls,ExtCrtls,Dialogs;

type
  TLString = class(TLabel)
  FTimer: TTimer;

  private
    fAn: Boolean;
    procedure SetAn(const Value: Boolean);
    procedure Timer(sender: TObject);
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
    constructor create(aOwner: TComponent); override;
  public
    { Public-Deklarationen }
  published
    { Published-Deklarationen }
    property An: Boolean read fAn write SetAn;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [TLString]);
end;

{ TLString }

constructor TLString.create(aOwner: TComponent);
begin
  inherited;
  FTimer := TTimer.Create(Nil);
  fTimer.Enabled := False;
  fTimer.OnTimer := Timer;
end;

procedure TLString.SetAn(const Value: Boolean);
begin
  fAn := Value;
  fTimer.Enabled := True;
end;

procedure TLString.Timer(sender: TObject);
begin
 Left := Left - 4; // halt deine Laufschrift-Routine
end;

end.
[/quote]
timfinn
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 18.01.05 16:39 
wtf ist doberenz/kowalsk.

also ganz n00b style würd ich sagen:
mach ein grosses label mit vielen leerzeichen,
setz einen timer, der dann jeweils die schrift dadrauf versetzt
durch runterzählen der leerzeichen.
Handycommander
ontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1054

Windows XP Pro, Vista
Visual Studio 2008
BeitragVerfasst: Fr 21.01.05 18:23 
so würds ich nicht machen. mach es so, wie es Elite beschrieben hat!!
GSE
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 740

Win 2k, Win XP Pro
D5 Prof, D6 Ent, D2k5 PE
BeitragVerfasst: Fr 21.01.05 18:44 
du könntest auch an den textstring noch einmal soviele Leerzeichen anhängen wie noch platz im label ist und dann immer nur das vorderste zeichen hinten rankopieren (auch wenn buchstabenweises scrollen nicht besonders schön aussieht, jetzt mal allgemein, aber du solltets das ja von tlabel ableiten)

mfg
GSE

_________________
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs
and the universe trying to produce bigger and better idiots. So far, the universe is winning. (Richard Cook)