Autor Beitrag
BumBum
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mi 11.03.09 18:21 
Hallo,

ich habe hier ein Auto vor ... so gezeichnet :

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:
constructor TAuto.Create();
begin
     SetLength(StdForm, 20);
     SetLength(Form, 20);

     StdForm[0] := Point(-5,-10);
     StdForm[1] := Point(0,-9);
     StdForm[2] := Point(+5,-10);
     StdForm[3] := Point(+5,-5);
     StdForm[4] := Point(+8,-5);
     StdForm[5] := Point(+8,-2);
     StdForm[6] := Point(+5,-2);
     StdForm[7] := Point(+5,+6);
     StdForm[8] := Point(+8,+6);
     StdForm[9] := Point(+8,+9);
     StdForm[10] := Point(+5,+9);
     StdForm[11] := Point(0,+14);
     StdForm[12] := Point(-5,+9);
     StdForm[13] := Point(-8,+9);
     StdForm[14] := Point(-8,+6);
     StdForm[15] := Point(-5,+6);
     StdForm[16] := Point(-5,-6);
     StdForm[17] := Point(-8,-6);
     StdForm[18] := Point(-8,-3);
     StdForm[19] := Point(-5,-3);
     StdForm[20] := Point(-5,-3);



     PbSpeed := TProgressBar.Create(nil);
     PbSpeed.Smooth := true;
     PbSpeed.Step := 1;
     PbSpeed.Parent := Form1.SgData;

     PbThrottle := TProgressBar.Create(nil);
     PbThrottle.Smooth := true;
     PbThrottle.Step := 1;
     PbThrottle.parent := Form1.SgData;
end;


wie kann ich nun machen das man diesem gezeichneten durch die Colorbox seine Farbe gibt ? oder geht das überhaupt ? ich hab das jetzt so verstanden mit der ColorBox dass man da eine Farbe im gestarteten Programm auswählen kann in der dann mein Auto erscheinen soll??

Wäre nett von euch wenn ihr mir dabei helft Danke im Vorraus!
AScomp
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 162


Delphi 5, Delphi 7, Delphi 2007, Delphi 2009, Delphi XE, Delphi 10 Seattle
BeitragVerfasst: Mi 11.03.09 18:51 
Wo zeichnest du denn das Auto, über TCanvas? Dort kannst du im Normalfall die Farbe des Pinsels ändern.
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mi 11.03.09 20:24 
user profile iconBumBum hat folgendes geschrieben Zum zitierten Posting springen:
wie kann ich nun machen das man diesem gezeichneten durch die Colorbox seine Farbe gibt ?

In diesem Code steckt keine einzige Zeichenroutine, du füllst lediglich ein array of TPoint und initialisierst einige VCL-Komponenten. Zeig uns doch mal die eigentlichen Zeichenroutinen :idea:
BumBum Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mi 11.03.09 21:57 
oh sry dachte das wäre das


das ?? könntet ihr mir diesen Teil vll erklären ? also dh was definiert was ?

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:
58:
59:
60:
61:
62:
63:
64:
65:
66:
procedure TForm1.FormCreate(Sender: TObject);
var
   Ini: TIniFile;
   i: Integer;
begin
     //Autos
     ini:=TIniFile.create(ExtractFilePath(ParamStr(0)) + 'Auto.ini');
     i := 0;
     while ini.SectionExists('Auto' + inttostr(i)) do
     begin
           inc(i)
     end;

     SetLength(Auto, i);

     for i := 0 to i - 1 do
     begin
          Auto[i] :=  TAuto.Create;
          Auto[i].Loc.x := ini.ReadInteger('Auto' + inttostr(i), 'loc_x'0);
          Auto[i].Loc.y := ini.ReadInteger('Auto' + inttostr(i), 'loc_y'0);
          Auto[i].Color := htmltocolor(ini.ReadString('Auto' + inttostr(i), 'color''#FFFFFF'));
          Auto[i].Dir := ini.ReadInteger('Auto' + inttostr(i), 'dir'90);
          Auto[i].Name := ini.ReadString('Auto' + inttostr(i), 'name''Auto ' + inttostr(i + 1));
          Auto[i].KeyUp := ini.ReadInteger('Auto' + inttostr(i), 'key_up'0);
          Auto[i].KeyDown := ini.ReadInteger('Auto' + inttostr(i), 'key_down'0);
          Auto[i].KeyLeft := ini.ReadInteger('Auto' + inttostr(i), 'key_left'0);
          Auto[i].KeyRight := ini.ReadInteger('Auto' + inttostr(i), 'key_right'0);

          Auto[i].Masse := ini.ReadFloat('Auto' + inttostr(i), 'Masse', ini.ReadFloat('general''Masse'1000));
          Auto[i].FRoll := ini.ReadFloat('Auto' + inttostr(i), 'FRoll', ini.ReadFloat('general''FRoll'80));
          Auto[i].RLuft := ini.ReadFloat('Auto' + inttostr(i), 'RLuft', ini.ReadFloat('general''RLuft'2.5));
          Auto[i].FMax := ini.ReadFloat('Auto' + inttostr(i), 'FMax', ini.ReadFloat('general''FMax'3000));

          Auto[i].PedalInc := ini.ReadFloat('Auto' + inttostr(i), 'PedalInc', ini.ReadFloat('general''PedalInc'0.2));
          Auto[i].PedalDec := ini.ReadFloat('Auto' + inttostr(i), 'PedalDec', ini.ReadFloat('general''PedalDec'0.8));
          Auto[i].SteerInc := ini.ReadFloat('Auto' + inttostr(i), 'SteerInc', ini.ReadFloat('general''SteerInc'5));
          Auto[i].SteerDec := ini.ReadFloat('Auto' + inttostr(i), 'SteerDec', ini.ReadFloat('general''SteerDec'0.9));
          Auto[i].RSpeedMax := ini.ReadFloat('Auto' + inttostr(i), 'RSpeedMax', ini.ReadFloat('general''RSpeedMax', -10));
          Auto[i].RSpeedCollission := ini.ReadFloat('Auto' + inttostr(i), 'RSpeedCollission', ini.ReadFloat('general''RSpeedCollission'0.4));
     end;

     Rnds :=  ini.ReadInteger('general''rnds'10);

     Doublebuffered := true;
     Background := TBitmap.Create;
     Background.LoadFromFile(Ini.ReadString('general''map'''));

     Real := TBitmap.Create;
     Real.Width := Background.Width;
     Real.Height := Background.Height;

     Shadow := TBitmap.Create;
     Shadow.Width := Background.Width;
     Shadow.Height := Background.Height;
     Shadow.LoadFromFile(Ini.ReadString('general''shmap'''));

     ClientWidth := Background.Width;
     ClientHeight := Background.Height + SgData.RowCount * SgData.DefaultRowHeight;

     SgData.RowCount := High(Auto) + 2;

     for i:= 0 to SgData.ColCount - 1 do
         SgData.Cells[i,0] := ini.ReadString('general''col' + inttostr(i), '');

     ini.free;
end;
BumBum Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Do 12.03.09 16:28 
oder das


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TAuto.Draw(Ground: TBitmap; loc: TPoint; dir: Double);
begin
      Ground.Canvas.Pen.color := color;
      Ground.Canvas.Brush.Color := color;
      Ground.Canvas.Polygon(form);
end;
koegi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18

Win 7 64 bit
Delphi 2009 Professional
BeitragVerfasst: Sa 14.03.09 15:14 
user profile iconBumBum hat folgendes geschrieben Zum zitierten Posting springen:
oder das


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TAuto.Draw(Ground: TBitmap; loc: TPoint; dir: Double);
begin
      Ground.Canvas.Pen.color := color;
      Ground.Canvas.Brush.Color := color;
      Ground.Canvas.Polygon(form);
end;


Hallo, BumBum!

Du musst nur den Color-Wert der Colorbox in obiger Prozedur übergeben:
Nach Aufruf der ColorDialogBox enthält color die zuletzt ausgewählte Farbe. Die könntest Du dann in obiger Prozedur übergeben:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TAuto.Draw(Ground: TBitmap; loc: TPoint; dir: Double);
begin
      { die ColorDialogbox heißt ColorDialog1 und Du hast sie zuvor aufgerufen, z.B. ColorDialog1.Execute }
      Ground.Canvas.Pen.color := ColorDialog1.color;
      Ground.Canvas.Brush.Color := ColorDialog1.color;
      Ground.Canvas.Polygon(form);
end;


Das war's!

Beantwortet das deine Frage?

Gruß

Thomas
BumBum Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: So 15.03.09 16:03 
ja danke die antwrot war sehr hilfreich vielen dank
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: So 15.03.09 16:44 
Wo hast du den Code denn her, wenn du nicht mal weist wo was steht?

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
BumBum Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: So 15.03.09 23:19 
hab so ein Programm + Quellcode zum download gefunden