Button Schriftfarbe verändern?

Antworten
ErnstVolker
Beiträge: 327
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Button Schriftfarbe verändern?

Beitrag von ErnstVolker »

Hallo,

ich habe mal folgendes probiert:

procedure TForm1.FormCreate(Sender: TObject);
begin
button1.Caption:='&Start';
button1.Font.Color:=clred;
button1.Color:=clblue;
end;

Da passiert zunächst nichts. Wenn ich die "Alt"-Taste drücke, erscheint der Unterstrich unter dem "S" von Start und der Button lässt sich über die Tastatur ansprechen.
Die Schriftfarbe bleibt schwarz und die Farbe des Button grau. Im Objekinspektor Veränderungen vornehmen geht auch nicht.

Lazarus Bug?

Gruß

Volker

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Button Schriftfarbe verändern?

Beitrag von theo »

ErnstVolker hat geschrieben:Lazarus Bug?


Das ging auch mit Delphi nicht von Haus aus (siehe z.B. http://delphi.about.com/od/vclwriteenha ... 61104a.htm ).
Ich würde auch von solchem Farb-Zeug eher abraten (v.a. Cross-Platform). Lass die Themes das erledigen.

Teekeks
Beiträge: 359
Registriert: Mi 27. Mai 2009, 20:54
OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
CPU-Target: x86
Wohnort: Cottbus

Re: Button Schriftfarbe verändern?

Beitrag von Teekeks »

Setze den Font (oder die Fontcolor) und die eigentliche Farbe bevor du die Caption setzt.
Dann sollte es gehen (frag mich nicht warum)

Ach ich sehe gerade das dies hier gar nicht das Linux-Unterforum ist :)
Vl. geht es ja trotzdem...

ErnstVolker
Beiträge: 327
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Button Schriftfarbe verändern?

Beitrag von ErnstVolker »

Hallo zusammen,

das mit dem Vertauschen der Befehlszeilen bringt nix.
Das es in Delphi_7 bei mir auch nicht funzte war mir aufgefallen, aber ich habe es nicht weiter beachtet. Selbst in Python (TCL/Tk) ging das. Lass ich halt die Finger davon, denn
die Unit ColorButton.pas, konvertiert nach Lazarus funzt auch nicht. Egal, Schwamm drüber. Ich dachte man müsste einfach im Objekt-Inspektor etwas umstellen, worauf ein normal Sterblicher wie ich nicht kommt.

Meine SafeArrayCreate Probleme ärgern mich viel mehr...

Wie initialisiere ich Array's vom Typ "TVarArrayBoundArray" bzw. "PVarArrayCoorArray" ? SetLength geht nicht. Meldung Type mismatch.

Im Buch Free Pascal 2 wird auf Seite 372 die Prozedur "VarCast" erklärt. Hierbei wird über einen LongInt VarType eingestellt. Weiter im Text wird erklärt, VarType sei eine vordefinierte VarNNN-Konstante. Leider Finde ich keine weitere Erklärung welcher LongInt zu welcher VarNNN-Konstante gehört, bzw. wa VarNNN_Konstanten sind. Wer weiß da Rat?

Danke

Volker

Benutzeravatar
theo
Beiträge: 10468
Registriert: Mo 11. Sep 2006, 19:01

Re: Button Schriftfarbe verändern?

Beitrag von theo »

ErnstVolker hat geschrieben:Wie initialisiere ich Array's vom Typ "TVarArrayBoundArray" bzw. "PVarArrayCoorArray" ? SetLength geht nicht. Meldung Type mismatch.


Ich habe keine Ahnung und bin auch nicht auf Windows. Aber wenn ich kurz die Quelle von variants.pp anschaue, dann sehe ich sowas:

Code: Alles auswählen

var 
p,newarray : pvararray;
boundsarray : pvararrayboundarray
...
getmem(boundsarray,p^.DimCount*sizeof(TVarArrayBound));


Hilft das?

ErnstVolker
Beiträge: 327
Registriert: Di 17. Feb 2009, 10:44
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit

Re: Button Schriftfarbe verändern?

Beitrag von ErnstVolker »

@theo:

Vielen Dank, aber es hilft nicht.
Ich habe eben im Lazarusbuch geschmökert und bin mit einer traurigen Meldung zu meinem Problem ernüchtert worden.
Auf den Seiten 523/524 bzw. nur auf Seite 524 oben steht:

-Auf in Delphi eingebundene ActiveX-Controls muß man verzichten.

Leider Beruht meine DesignCAD-Fernsteuerung auf besagten ActiveX-Controls. Es wird die ActiveX-Unit verwendet. Die enthält die SafeArrayCreate Methoden. In Lazarus steckt das in VarUtils. Und die Funktion SafeArrayCreate liefert in Delphi PSafeArray und in Lazarus PVarArray. Es passt einfach nicht zusammen. Das TypeCasting funzt hier zwar aber ich bekomme Access Violation.

Was ich da eigentlich ausgetüftelt hatte ist folgendes (grob):

Ich Berechne die Differentialgleichung des "Linearen Einspurmodelles", ein Begriff aus der Kraftfahrzeugtechnik. Man erhält Gier und Schwimmwinkel des Fahrzeuges, zunächst in lokalen Fahrzeugkoordinaten. Mit dem Gierwinkel berechne ich eine Koordinatentransformation auf ein Ortsfestes System. Damit kann ich die Fahrlinie des Pkw als Spline Abbilden.
Den Spline lass ich mit DesignCad in eine Skizze Zeichnen. Dann nehme ich in DesignCad die Draufsicht eines Kfz-Modelles im Schwerpunkt, setze es an den Anfang des Splines und kopiere es darüber. Abstand der Kopien frei wählbar. Der Gierwinkel wird dann genutzt um an der entsprechenden Position die Rotation vorzunehmen. So kann man je nach Reifenverhältnissen an Vorder- und Hinterachse einen Schleudervorgang oder auch Ausweichlenken vor einem Hindernis darstellen. Als Lenkwinkelvorgabe kann man Sinuslenken, J-Turn, oder eine Freie Funktion, die man mit OpenOffice-Calc generiert hat vorgeben. Wobei die Übernahme aus Calc noch nicht ferngesteuert wurde, sondern den Umweg über eine Textdatei (CSV) genommen hat. Ganz zu Anfang in Lazarus hab' ich meine Ergebnisse in einer Textdatei gespeichert und bin dann mit DesignCad's "BasicCad-Programmiersprache" - ein einfaches Basic- an die Datei ran, hab ausgelesen und so das Kopieren und Bewegen des Fahrzeugmodelles dargestellt. Aber umständlich, wenn man variiert immer den Umweg über die Textdatei. Also das Ganze nach Delphi umgesetzt und mit AxtiveX die Steuerung (Splinepunkte und Kurve Zeichnen, Fahrzeug kopieren) direkt vorgenommen.
Insgesamt 6 Units mit Forms und Plotpanel zur Vorschau von Fahrlinie, Lenkwinkel und Querbeschleunigung...

Ach jetzt hab' ich Euch genug gelangweilt.

Ich wünsche allen Teilnehmern des Lazarusforums ein frohes Osterfest,
besonders denjenigen, die mir immer hilfreich Auskunft gaben.

Gruß aus Gießen

Volker

wbeppler
Beiträge: 131
Registriert: So 20. Jul 2014, 10:27
OS, Lazarus, FPC: kubuntu, raspbian, laz 1.2 / 0.9 microcontroller
CPU-Target: 8-64 bit
Wohnort: bodensee
Kontaktdaten:

Re: Button Schriftfarbe verändern?

Beitrag von wbeppler »

sehr altes thema..

.. aber weil ich es selber brauchte und mich wund gegoogelt hab und auch hier war und nix gefunden hab meine loesung:

anstelle TButton TBitBtn nehmen (uses button) denn der kanns, soweit ich das richtig verstanden habe wurde die eigenschaft color und uach die des fontes beii btton nicht zugreifbar gemacht, warum auch immer und woh auch nicht unter delphi

gruss
w

ps: die bitbuttons sind etwas lansamer als die button

Antworten