n° 219
Novembre 2017
Dicembre 14, 2017, 12:47:05 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Label (Delphi XE)  (Letto 20437 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
camaleonteplus
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 149


Bello Delphi!

mrcamarium@yahoo.it mrcamarium@yahoo.it
Mostra profilo WWW
« inserita:: Dicembre 06, 2014, 10:29:41 »

Io ho un programma che realizzai con delphi 7 adesso sono passato a delphi XE, ma stranamente una funzione del programma non va come prima. In pratica quando A era maggiore di B mi attivava il contenuto del Label4. Adesso indipendetemente dal valore di A attiva sempre il Label4. Segue codice:
Codice:
procedure TForm3.Button2Click(Sender: TObject);
var
Z:INTEGER;
A, B, C: Double;
begin
Label4.Visible := False;
   if(A > B) then
Label4.Visible := True;
  B := StrToFloatDef(VZ.text, 0);
  C := StrToFloatDef(Watt.text, 0);
  A := StrToFloatDef(Volt.text, 0);
  A := ((A - B) / C) * 1000;
  Label21.Caption := FloatToStr(Round(A));
  B := StrToFloatDef(VZ.text, 0);
  C := StrToFloatDef(Watt.text, 0);
  A := StrToFloatDef(Volt.text, 0);
  A := ((A - B) * C) / 1000;
  Label23.Caption := FormatFloat('#0.##', A);
end;
Come posso risolvere il codice?
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #1 inserita:: Dicembre 07, 2014, 02:11:34 »

Le variabili A e B dove/come vengono passate? In sostanza, chi le imposta/dove vengono impostate?
Registrato
camaleonteplus
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 149


Bello Delphi!

mrcamarium@yahoo.it mrcamarium@yahoo.it
Mostra profilo WWW
« Risposta #2 inserita:: Dicembre 07, 2014, 09:09:32 »

A è questa riga:
A := StrToFloatDef(Volt.text, 0);
e B è:
B := StrToFloatDef(VZ.text, 0);

Codice:
procedure TForm3.Button2Click(Sender: TObject);
var
Z:INTEGER;
A, B, C: Double;
begin
Label4.Visible := False;
   if(B > A) then
Label4.Visible := True;
  A := StrToFloatDef(Volt.text, 0);
  B := StrToFloatDef(VZ.text, 0);
  C := StrToFloatDef(Watt.text, 0);
  A := ((A - B) / C) * 1000;
  Label21.Caption := FloatToStr(Round(A));
  B := StrToFloatDef(VZ.text, 0);
  C := StrToFloatDef(Watt.text, 0);
  A := StrToFloatDef(Volt.text, 0);
  A := ((A - B) * C) / 1000;
  Label23.Caption := FormatFloat('#0.##', A);
end;
Mi ero accorto che avevo sbagliato con l'ordine adesso ho fatto  if(B > A) then. Comunque non va il label non si attiva.
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #3 inserita:: Dicembre 07, 2014, 12:47:13 »

Sicuro che questa porzione di codice:

Citazione
Label4.Visible := False;
   if(B > A) then
Label4.Visible := True;
   A := StrToFloatDef(Volt.text, 0);
   [...]

sia giusta? L'indentazione del codice è cambiata da 7 a XE?

http://edn.embarcadero.com/article/10280#4.3

Lo chiedo perché ad esempio in Python è d'obbligo rispettare tutte le indentazioni (di fatto è parte del linguaggio), altrimenti viene restituito un errore.
Registrato
camaleonteplus
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 149


Bello Delphi!

mrcamarium@yahoo.it mrcamarium@yahoo.it
Mostra profilo WWW
« Risposta #4 inserita:: Dicembre 08, 2014, 10:19:49 »

è uguale a come era prima.
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #5 inserita:: Dicembre 08, 2014, 08:26:37 »

Mentre se provi lo stesso codice (con le medesime indentazioni) tutto funziona regolarmente e la Label si attiva, giusto?  Che?!?
Registrato
camaleonteplus
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 149


Bello Delphi!

mrcamarium@yahoo.it mrcamarium@yahoo.it
Mostra profilo WWW
« Risposta #6 inserita:: Dicembre 09, 2014, 12:19:11 »

Si. non mi da errori.
Registrato
camaleonteplus
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 149


Bello Delphi!

mrcamarium@yahoo.it mrcamarium@yahoo.it
Mostra profilo WWW
« Risposta #7 inserita:: Dicembre 09, 2014, 11:35:08 »

Codice:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  StdCtrls, ExtCtrls, MATH, ComCtrls, jpeg, Menus, ActnList, Buttons, INIFILES;

type
  TForm3 = class(TForm)
    Image1: TImage;
    Volt: TEdit;
    VZ: TComboBox;
    Button2: TButton;
    GroupBox2: TGroupBox;
    Label15: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    Label23: TLabel;
    GroupBox4: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    GroupBox5: TGroupBox;
    Label5: TLabel;
    Label6: TLabel;
    GroupBox6: TGroupBox;
    Label4: TLabel;
    Watt: TComboBox;
    Label7: TLabel;
    Label8: TLabel;
    procedure Button2Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button2Click(Sender: TObject);
var
Z:INTEGER;
A, B, C: Double;
begin
   if(B > A) then
Label4.Visible := True;
  A := StrToFloatDef(Volt.text, 0);
  B := StrToFloatDef(VZ.text, 0);
  C := StrToFloatDef(Watt.text, 0);
  A := ((A - B) / C) * 1000;
  Label21.Caption := FloatToStr(Round(A));
  B := StrToFloatDef(VZ.text, 0);
  C := StrToFloatDef(Watt.text, 0);
  A := StrToFloatDef(Volt.text, 0);
  A := ((A - B) * C) / 1000;
  Label23.Caption := FormatFloat('#0.##', A);
end;
end.
te lo posto completo.
Registrato
michele.p
Administrator
Full Member
*****

Karma: +9/-2
Scollegato Scollegato

Messaggi: 586


Mostra profilo
« Risposta #8 inserita:: Dicembre 09, 2014, 12:06:42 »

E già noto una differenza. Nella "prima versione" che hai riportato si ha:

Citazione
Label4.Visible := False;
   if(B > A) then
Label4.Visible := True;

mentre nella versione completa la riga:

Citazione
Label4.Visible := False;

non è presente.  Occhi al cielo

Curiosità: ma questo sorgente serve a prelevare dati dall'uscita di uno strumento?  Sorriso
Registrato
camaleonteplus
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 149


Bello Delphi!

mrcamarium@yahoo.it mrcamarium@yahoo.it
Mostra profilo WWW
« Risposta #9 inserita:: Dicembre 10, 2014, 12:21:50 »

avevo visto che la riga prima di if era inutile. No non è collegato ad uno strumento. è unprogramma di calcolo per una resistenza di carico per zener.
Registrato
Max.Riservo
Global Moderator
Sr. Member
*****

Karma: +24/-0
Scollegato Scollegato

Messaggi: 850



Mostra profilo
« Risposta #10 inserita:: Dicembre 10, 2014, 12:47:24 »

CAMALEONTE .... il crossposting è vietato dal regolamento (sia Ioprogrammo che MD).

Questa discussione viene chiusa .....
Registrato

I Moderatori invitano tutti gli Utilizzatori del forum a prendere visione del REGOLAMENTO e a rispettarlo.
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines